Back to blog

Open WebUI YouTube transcript not working: each error and its fix

What each Open WebUI YouTube error means, why the Youtube Proxy URL can be silently ignored, and how to get transcripts through an MCP tool server instead. Tested on Open WebUI 0.13.0.

TL;DR: Open WebUI fetches YouTube transcripts from your server's own address, using the youtube-transcript-api library. On a VPS or cloud host, YouTube often refuses that address. Read the exact error below first, because three of the five have nothing to do with blocking. If you are blocked, you can set a residential proxy under Admin Settings, Web Search, Youtube Proxy URL, or connect a transcript MCP server so your server stops fetching from YouTube at all.

We installed Open WebUI 0.13.0, which ships youtube-transcript-api 1.2.4, and ran its own YouTube loader against real videos. We ran it from a home connection, so YouTube did not block us. The blocked message below comes from Open WebUI's source code, and everything else on this page is what we saw.

Troubleshooting

What each error means

The error saysWhat it meansWhat to do
YouTube blocked the transcript request for VIDEO from this serverYouTube refused your server's addressUse a proxy or an MCP server, below
No transcript found for the YouTube video VIDEO in these languages: en.The video has captions, just not in the languages you asked forChange Youtube Language
Transcripts are disabled for the YouTube video VIDEO.The video has no captions at allNothing to fix in Open WebUI: it needs speech to text
The YouTube video VIDEO is unavailable.Wrong ID, or a private or removed videoCheck the link
Could not retrieve a transcript for the YouTube video VIDEO.Anything else, including a broken proxyTest the proxy, below

Older versions were less clear. Issue #28361 reports a blocked transcript surfacing as [ERROR: Error querying knowledge base], and the server log said YouTube is blocking requests from your IP. That issue was closed in August 2026, so if you see the knowledge base message, update first and read the new error.

Troubleshooting

Check whether your server is blocked

Run the library directly inside the container. The name open-webui is the one the install docs use, so change it if yours differs.

bash
docker exec open-webui python -c "from youtube_transcript_api import YouTubeTranscriptApi as Y; print([t.language_code for t in Y().list('dQw4w9WgXcQ')])"

On an unblocked connection this printed a list that started ['en', 'de-DE', 'ja', 'pt-BR', 'es-419']. If it raises RequestBlocked or IpBlocked instead, the address is the problem. Our RequestBlocked guide covers that exception in more depth.

Troubleshooting

Fix the language error

Open WebUI asks only for the languages in Admin Settings, Web Search, Youtube Language, and it always adds English to the list. It does not fall back to whatever the video has.

We tested a video whose only track is automatic Korean captions. With the default en it failed with No transcript found. With ko it returned the transcript. The setting takes a comma separated list, such as ko,en, and YOUTUBE_LOADER_LANGUAGE is the environment variable.

Troubleshooting

Fix the block with a proxy

The setting is Admin Settings, Web Search, Youtube Proxy URL, or YOUTUBE_LOADER_PROXY_URL in the environment. It takes a URL like http://user:password@host:port. Three things can catch you out.

HTTP_PROXY and HTTPS_PROXY silently win. This one is not in the docs. We pointed Youtube Proxy URL at a local proxy that logs every connection, then ran the loader:

Container environmentConnections our proxy sawResult
HTTPS_PROXY set0Worked, through the other proxy
HTTPS_PROXY set, plus NO_PROXY=www.youtube.com1Used the YouTube proxy
No proxy variables1Used the YouTube proxy

If your container sits behind a corporate or general proxy, your Youtube Proxy URL may never be used, and nothing tells you. Add NO_PROXY=www.youtube.com. The Trust Proxy Environment switch on the same page does not help, because the YouTube loader never reads it.

A broken proxy gives a vague error. When our test proxy refused the connection, the message was the generic Could not retrieve a transcript, with no mention of the proxy. If that appears right after you add a proxy, suspect the proxy.

A datacenter proxy rarely helps. The address has to look like a person's connection, so you need a residential one, and those vary. In our test of 800 residential exits, one provider had 20.5% of its addresses blocked and the other 4.5%. The yt-dlp bot check guide has the full numbers. Residential proxies are also billed by the gigabyte, and you own the upkeep.

Troubleshooting

Fix the block with an MCP tool server

There is another way out: stop fetching from your server. Open WebUI has connected to remote MCP servers natively since v0.6.31, over Streamable HTTP. With a transcript MCP server, the model calls a tool and the fetch happens from that server's network, so your address no longer matters.

TranscriptFetch runs one, which is our product, so weigh this section with that in mind. We tested this part on 0.13.0 too:

  1. Go to Admin Settings, Integrations, External Tool Servers, and add a connection.
  2. Set the type to MCP (Streamable HTTP).
  3. For a test with no account, use the URL https://transcriptfetch.com/mcp/try with Auth set to None.
  4. Save, then enable the tools for your chat.

Open WebUI's connection check returned the tools on our install, including get_transcript and search_videos, and a direct call to get_transcript on that URL returned the transcript. We did not run a full chat with a model, and the model you use has to support tool calls.

The trial URL gives you 10 calls a day and captions only. For regular use, connect https://transcriptfetch.com/mcp with Auth set to Bearer and an API key in the Key field. That adds channels and playlists, and AI transcription for videos with no captions, which also answers the Transcripts are disabled error. You start with 50 free credits with no card, a caption transcript costs 1 credit, and failed requests are free. The MCP docs list every tool.

Two notes from Open WebUI's docs: only admins can add these servers, and selecting Bearer with an empty key sends a blank header that many servers reject.

FAQ

YouTube refused the request because of the address your server sends from. Cloud and datacenter addresses are the usual case. The same video often works from a home connection. Open WebUI is reporting the block, not causing it.