﻿# my blog was hiding in six-hour videos.

Russian conference recordings, GigaAM on my RTX 3090, and a few posts I had apparently already talked through.

Author: Vlad Kostoglodov. Language: en. Format: project.
Published: 2026-10-14.
Status: ready.
[Profile and technical work JSON](https://vk0st.com/facts.json): public profile, concrete work and source references.
[Human-readable article](https://vk0st.com/writing/gigaam-content-workflow/).

I wanted a few posts for this blog. Some of the material was already there — in conference recordings that happened to be several hours long. A slightly inconvenient file format for a blog post.

So I downloaded the videos from VK and picked the relevant bits. For Avito, that meant 81 minutes out of a much longer recording: the task explanation, the solution walkthrough, and the questions afterwards.

I used [GigaAM](https://github.com/salute-developers/GigaAM). The talks were in Russian, I already had an RTX 3090, and its end-to-end checkpoint gave me punctuation and normalized text. Word timestamps were the other useful bit: find something in the transcript, then jump back to the recording to check it.

Rather than feed it the whole recording, I used [Silero VAD](https://github.com/snakers4/silero-vad) to find speech and split it into short chunks. Each finished chunk was saved, so an interrupted run could pick up where it left off. The timestamps still pointed into the original video. No subtracting the cropped section's start in my head.

Next came diarization — the part that tries to work out who's speaking. GigaAM supplied the words; [pyannote Community-1](https://huggingface.co/pyannote/speaker-diarization-community-1) supplied the speaker turns. Its exclusive timeline helped line those turns up with the word timestamps.

That still didn't give me names. A label like `SPEAKER_06` doesn't introduce itself. Short replies needed checking, and model names occasionally came back as entirely new inventions.

Then I summarized the transcripts and pulled out material for the posts. Alongside the technical explanations, there were little detours that hadn't made it onto the slides.

For example, my attempt to buy RAM on Avito during the Avito competition. The seller had already sold it. At least I generated a contact event.

![Amber etched interpretation of the Avito walkthrough, with my remote video on the left and Grigory presenting on the right.](https://vk0st.com/media/talks/avito-ml-cup-amber-v1.webp)

One of the recordings that became material for this blog. An artistic interpretation; the Avito recording ↗ .

[Original image](https://vk0st.com/media/talks/avito-ml-cup.webp)

This became material for the [Avito](/writing/avito-ml-cup/), [VK](/writing/competition-rabbit-holes/), and [agents](/writing/same-agents-different-scores/) posts. Some explanations, a few stories, and an unsuccessful shopping trip.

Apparently, I had material for the blog already. It was just in a very inconvenient format.
