YouTube Transcript Distiller Update V1.5.7

Version 1.5.7 of the YouTube Transcript Distiller is live on addons.mozilla.org. It repairs the response language setting, which quietly did nothing on most foreign-language videos, and it translates the mood and style lists in the settings. If the add-on is new to you, the introduction post covers the basics.

The Transcript Distiller button in the YouTube action bar, next to the subscribe button

What’s new

  • The response language setting works again. Until now, a German video summarized with the response language set to English came back in German. The same happened with French, and it happened the other way around too: the language of the transcript won, whatever the setting said. Version 1.5.7 fixes this for all eleven languages. Nothing to change on your side, Firefox updates the add-on on its own.
  • The mood and style lists in the settings are no longer German for everyone. They now follow your browser language, like the default prompt does. Anyone running Firefox in English used to find “neugierig, begeistert, nachdenklich” in the mood field, and those words went straight into the prompt.
  • One rough edge remains. If your browser language and your response language differ, the opening word of the summary can still slip through in the wrong language, and once in a while a whole run drifts. Japanese and Hindi are the weakest here. Running the Distiller again on the same video fixes it, since every run words the text differently.

How it’s done

  • Two defects, both in the code since version 1.3. The first: the language instruction was a single line appended to the prompt, Respond exclusively in English. One line has to compete with a transcript of several thousand words in another language, and it loses.
  • The second one is the kind of bug you only see once you look at the actual request. The language name came from the label of the dropdown in the settings, and that label is translated. So a German browser sent Respond exclusively in Englisch. An English sentence with a German word in it, asking for a language the model has to guess at.
  • Finding a wording that holds took a test harness that rebuilds the request outside the browser and calls the Gemini API directly, plus a language detector over the answers: Unicode script ratios for Arabic, Hindi, Russian, Korean, Japanese and Chinese, stopword ratios for the Latin-script languages. Same video, same settings, one variant per run.
  • The result was not what I expected. Where the instruction sits makes no difference at all. In front of the transcript, behind it, on both sides: all of them failed the same way. Only the wording moved anything.
  • A detailed English instruction, naming every part of the answer that has to be in the target language, held English, French, Arabic, German, Hindi, Japanese and Spanish. Chinese, Korean and Russian still answered in German, and Portuguese answered in Spanish. What fixed the remaining four was repeating the same instruction in the target language itself. Eleven out of eleven since.
  • Those instructions live in the code, not in the translation files. The wording depends on the language you want the answer in, not on the language of your browser, and those two are the same only by accident. It also means the fix applies to custom prompts, which never contained a language rule to begin with.
  • The mood and style lists moved the other way, into the translation files, since they are settings text and belong to the browser language. Two new keys in eleven locales.
  • Testing this meant seeing the add-on the way a Chinese or Russian user sees it, not just switching a setting. So: one Firefox profile per language, the matching Mozilla language pack for each, and the whole flow in a browser that speaks nothing but the target language. The switch for the interface language is the intl.locale.requested preference in the profile, by the way. The language list in the preferences dialog looks like it does the job and does not.
  • One thing that setup surfaced can’t be fixed from here: on the add-on details page, Firefox always shows the description from the default locale, English, even though the translated description ships with the add-on and everything else on that page is translated. Only the listing on addons.mozilla.org can carry translations.

What’s next

  • Unchanged from last time: prompt profiles, a preview before posting, and a length check against YouTube’s 10,000-character comment limit.

Changelog and source: github.com/michaelruck/yt-transcript-distiller. Install: addons.mozilla.org/addon/youtube-transcript-distiller.

YouTube Transcript Distiller Update V1.5.6

Version 1.5.6 of the YouTube Transcript Distiller is live on addons.mozilla.org. It fixes a one-day outage that Google caused on July 21. It also bundles version 1.5.5 from July 12, which cleans up the typography of the summaries. If the add-on is new to you, the introduction post covers the basics.

The Transcript Distiller button in the YouTube action bar, next to the subscribe button

What’s new

  • On July 21, every summary attempt failed. The error read: “Gemini API Fehler: Request contains an invalid argument.” Video and settings made no difference, because Google had moved its model aliases to a new Gemini generation overnight. Version 1.5.6 repairs the request, so there is nothing to change on your side. Firefox updates the add-on on its own.
  • Error messages now name the culprit. Some failures you can’t fix in the settings: an API rejection like the one above, or a Google server error. Until now, the message left you guessing. Now it says so and also points to the add-on page, where the update shows up. An invalid API key still gets its own message and reopens the key input.
  • Since 1.5.5, summaries only contain characters you could type yourself. No em dashes, no curly quotes, no single-character ellipsis. A comment should look hand-typed, but these characters betray the machine.
  • One more tip: if you dislike a summary, run the Distiller again on the same video. The add-on generates with temperature 0.4, so every run words the text a little differently. Each run costs one request of the daily free quota, though.

How it’s done

  • The default model is the alias ID gemini-flash-lite-latest. Version 1.5.1 picked it so the add-on survives model retirements. On July 21 the alias started resolving to gemini-3.5-flash-lite. The 3.5/3.6 generation rejects thinkingBudget: 0, the parameter the add-on sent to switch off model reasoning. Older generations accepted or ignored it. The new ones instead answer HTTP 400 and name neither field nor reason.
  • Diagnosis took two minimal requests: one with the parameter, one without. 400 versus 200. Then the modelVersion field of the successful response named the model behind the alias. That’s how the generation change surfaced.
  • The fix drops thinkingConfig entirely. Lite models don’t reason without it anyway; their responses carry no thoughtsTokenCount. The other models now follow their own defaults. Alias IDs trade one failure mode for another: the model never disappears, but a new generation can reject a parameter overnight. That trade is also why the new error hint exists.
  • The blame check is narrower than it looks, because Google reports an invalid API key as HTTP 400 too. So the add-on inspects the error details (API_KEY_INVALID) before it declares a failure unfixable.
  • The typography cleanup in 1.5.5 works on two layers. First, a character rule in the default prompt of all eleven languages. Second, a sanitizer for every Gemini response, because models mirror the style of their prompt and custom prompts don’t contain the rule.

What’s next

  • Unchanged from last time: prompt profiles, a preview before posting, and a length check against YouTube’s 10,000-character comment limit.

Changelog and source: github.com/michaelruck/yt-transcript-distiller. Install: addons.mozilla.org/addon/youtube-transcript-distiller.

YouTube Transcript Distiller Update V1.5.1

Version 1.5.1 of the YouTube Transcript Distiller is live on addons.mozilla.org. It bundles two releases from July 10: a new transcript engine, first support for Firefox on Android, and a selectable Gemini model. What the add-on does is covered in the introduction post.

The Transcript Distiller button in the YouTube action bar, next to the subscribe button

What’s new

  • The Distiller button now shows up in Firefox on Android. About two thirds of daily users are on Android and never saw the button before. Update, July 11: the device test found the path from button to posted comment broken in two places; versions 1.5.3 and 1.5.4 fixed transcript fetching and comment posting on Android, verified end to end on a physical device.
  • Distilling no longer opens the transcript panel or the video description. The add-on reads the transcript in the background; the page stays as it is.
  • The Gemini model is selectable in the settings: Flash-Lite (the new default), Flash, Pro, or any model ID typed in by hand – for experiments, or for anyone bringing a paid account.
  • When Google’s servers are overloaded or the daily free quota is used up, the error message now says what to do: pick a different model in the settings. In all eleven languages.

How it’s done

  • Transcript: the content script asks the player object for the caption track URL, waits up to eight seconds until the player has attached the proof-of-origin token (without it, the caption endpoint answers HTTP 200 with an empty body), then fetches the track as JSON. The old panel scraper stays in as a fallback. I found the technique while reading the source of the Dualsub add-on.
  • Title, channel name and description come from the player data as well (getPlayerResponse().videoDetails, getVideoData()) instead of DOM selectors.
  • Android: m.youtube.com added to manifest and content script, injection targets for the ytm-* DOM, a separate mobile comment flow.
  • The default model is now the alias ID gemini-flash-lite-latest. Alias IDs follow the newest version of a model line. The previous pinned default answered 404, “no longer available”, in early July and reappeared days later – a pinned model version is a liability either way.
  • There is no automatic fallback, on purpose: from the Lite model, a fallback could only escalate to the busier, tighter-limited models (free tier on the flash model: 20 requests per day). Instead, a 404, 429 or 503 from the API appends one line to the error message: switch the model in the settings.

What’s next

Most of this list shipped later the same day, in versions 1.5.2 to 1.5.4: a fix for a quiet bug where saving the settings froze the then-current default prompt forever (unchanged old defaults are migrated silently, customized prompts get a dismissible notice), a prompt section that carries numbers, data and study references from the video into the summary and makes the summary say so when a claim comes without them, and the Android repairs above. The comment box on Android also grows to a reviewable size after insertion, and if insertion ever fails, the finished summary lands in the clipboard instead of being lost.

  • Further out: prompt profiles, a preview before the comment is posted, and a length check against YouTube’s 10,000-character comment limit.

Changelog and source: github.com/michaelruck/yt-transcript-distiller. Install: addons.mozilla.org/addon/youtube-transcript-distiller.

YouTube Transcript Distiller – A Firefox Add-On That Reads So You Don’t Have To

drowning in media

You open a video. Twelve minutes. You watch. You wait. The one insight you came for arrives at minute nine — buried under filler, recaps, and sponsor breaks.

I built this add-on because I got tired of it.

What it does

YouTube Transcript Distiller fetches the full transcript of any YouTube video, sends it to Google Gemini AI with a customizable prompt, and posts the result directly into the YouTube comment field — formatted and ready to publish.

One click. The important points, right where other viewers can see them.

Why post it as a comment?

A good summary helps everyone. The more users share what a video is actually about, the less time we all waste on clickbait and padded content. YouTube’s own algorithm rewards watch time — this add-on rewards substance.

How to get it

  1. Install the add-on from Firefox Add-Ons
  2. Get a free Gemini API key at aistudio.google.com/app/apikey
  3. Enter the key under add-on settings (gear icon next to the button)
  4. Open any YouTube video with subtitles and click Transcript Distiller

That’s it.

Features

  • AI-powered summary via Google Gemini (free API key required)
  • Posts directly into the YouTube comment field
  • Prompt fully customizable — change the instruction to anything you want
  • Supports 11 languages: Arabic, Chinese, English, French, German, Hindi, Japanese, Korean, Portuguese, Russian, Spanish
  • UI adapts to your browser language automatically
  • Your API key stays in your browser — no tracking, no data collection

Usage statistics

616
summaries created  ·  last used 10 hours ago

Response languages

LanguageCount
DE 474
EN 104
FR 16
ZH 8
RU 6
HI 3
ES 2
AR 1

Source code

The full source is on GitHub: github.com/michaelruck/yt-transcript-distiller

Built at

marsgasse.com — Just another Basement Lab