Downloading subtitle no longer works for any Youtube video - WARNING: Unable to download subtitle: unknown url type:, now regression from #30710 #27028

Open
opened 2026-02-21 14:36:20 -05:00 by deekerman · 15 comments
Owner

Originally created by @heavenhunter on GitHub (Jan 3, 2025).

Checklist

  • I'm reporting a broken site support
  • I've verified that I'm running youtube-dl version 2025.01.01
  • I've checked that all provided URLs are alive and playable in a browser
  • I've checked that all URLs and arguments with special characters are properly quoted or escaped
  • I've searched the bugtracker for similar issues including closed ones

Verbose log

[debug] System config: []
[debug] User config: []
[debug] Custom config: []
[debug] Command-line args: ['--ignore-config', '-v', '--skip-download', '--write-sub', '--all-subs', 'https://www.youtube.com/watch?v=Z8CV-d_fYb8']
[debug] Encodings: locale cp1252, fs utf-8, out utf-8, pref cp1252
[debug] youtube-dl version 2025.01.01 [176fc2cb0]
[debug] ** This version was built from the latest master code at https://github.com/ytdl-org/youtube-dl.
[debug] ** For support, visit the main site.
[debug] Python 3.9.2 (CPython AMD64 64bit) - Windows-10-10.0.19041-SP0 - OpenSSL 1.1.1i  8 Dec 2020
[debug] exe versions: ffmpeg 4.3.1, ffprobe 4.3.1, phantomjs 2.1.1
[debug] Proxy map: {}
[youtube] Z8CV-d_fYb8: Downloading webpage
[youtube] Z8CV-d_fYb8: Downloading API JSON
[debug] [youtube] Decrypted nsig 6ftmofEWFduToWC6- => mZaRqiK3m7r8rA
[debug] [youtube] Decrypted nsig f1i0ZwuVRzwvA2RHW => 5GnAXA82_gb58g
[debug] Default format spec: bestvideo+bestaudio/best
[info] Writing video subtitles to: How to find Creative Commons Videos on YouTube (without copyrights claim)-Z8CV-d_fYb8.en.vtt
WARNING: Unable to download subtitle for "en": unknown url type: '/api/timedtext?v=Z8CV-d_fYb8&ei=-a54Z4f_Fc7BssUPperpqQ8&caps=asr&opi=112496729&xoaf=5&hl=en&ip=0.0.0.0&ipbits=0&expire=1735987561&sparams=ip%2Cipbits%2Cexpire%2Cv%2Cei%2Ccaps%2Copi%2Cxoaf&signature=598FDC77A3FE2FA972CD474EDC7A37B931C1482E.6747BA7531C1291708DD03624CE08CAB3CC382CA&key=yt8&lang=en&fmt=vtt'

Description

Downloading subtitle no longer works for any Youtube video. Example =

youtube-dl --ignore-config -v --skip-download --write-sub --all-subs https://www.youtube.com/watch?v=Z8CV-d_fYb8

The last time I saw this worked correctly was on 26 November 2024.
After that, on 22 December 2024, I updated youtube-dl to version 2024.12.17 and started to see this error.
Today, tried updating to version 2025.01.01 but the error still occurs.

Originally created by @heavenhunter on GitHub (Jan 3, 2025). <!-- ###################################################################### WARNING! IGNORING THE FOLLOWING TEMPLATE WILL RESULT IN ISSUE CLOSED AS INCOMPLETE ###################################################################### --> ## Checklist <!-- Carefully read and work through this check list in order to prevent the most common mistakes and misuse of youtube-dl: - First of, make sure you are using the latest version of youtube-dl. Run `youtube-dl --version` and ensure your version is 2021.12.17. If it's not, see https://yt-dl.org/update on how to update. Issues with outdated version will be REJECTED. - Make sure that all provided video/audio/playlist URLs (if any) are alive and playable in a browser. - Make sure that all URLs and arguments with special characters are properly quoted or escaped as explained in http://yt-dl.org/escape. - Search the bugtracker for similar issues: http://yt-dl.org/search-issues. DO NOT post duplicates. - Finally, put x into all relevant boxes (like this [x]) --> - [x] I'm reporting a broken site support - [x] I've verified that I'm running youtube-dl version **2025.01.01** - [x] I've checked that all provided URLs are alive and playable in a browser - [x] I've checked that all URLs and arguments with special characters are properly quoted or escaped - [x] I've searched the bugtracker for similar issues including closed ones ## Verbose log <!-- Provide the complete verbose output of youtube-dl that clearly demonstrates the problem. Add the `-v` flag to your command line you run youtube-dl with (`youtube-dl -v <your command line>`), copy the WHOLE output and insert it below. It should look similar to this: [debug] System config: [] [debug] User config: [] [debug] Command-line args: [u'-v', u'http://www.youtube.com/watch?v=BaW_jenozKcj'] [debug] Encodings: locale cp1251, fs mbcs, out cp866, pref cp1251 [debug] youtube-dl version 2021.12.17 [debug] Python version 2.7.11 - Windows-2003Server-5.2.3790-SP2 [debug] exe versions: ffmpeg N-75573-g1d0487f, ffprobe N-75573-g1d0487f, rtmpdump 2.4 [debug] Proxy map: {} <more lines> --> ``` [debug] System config: [] [debug] User config: [] [debug] Custom config: [] [debug] Command-line args: ['--ignore-config', '-v', '--skip-download', '--write-sub', '--all-subs', 'https://www.youtube.com/watch?v=Z8CV-d_fYb8'] [debug] Encodings: locale cp1252, fs utf-8, out utf-8, pref cp1252 [debug] youtube-dl version 2025.01.01 [176fc2cb0] [debug] ** This version was built from the latest master code at https://github.com/ytdl-org/youtube-dl. [debug] ** For support, visit the main site. [debug] Python 3.9.2 (CPython AMD64 64bit) - Windows-10-10.0.19041-SP0 - OpenSSL 1.1.1i 8 Dec 2020 [debug] exe versions: ffmpeg 4.3.1, ffprobe 4.3.1, phantomjs 2.1.1 [debug] Proxy map: {} [youtube] Z8CV-d_fYb8: Downloading webpage [youtube] Z8CV-d_fYb8: Downloading API JSON [debug] [youtube] Decrypted nsig 6ftmofEWFduToWC6- => mZaRqiK3m7r8rA [debug] [youtube] Decrypted nsig f1i0ZwuVRzwvA2RHW => 5GnAXA82_gb58g [debug] Default format spec: bestvideo+bestaudio/best [info] Writing video subtitles to: How to find Creative Commons Videos on YouTube (without copyrights claim)-Z8CV-d_fYb8.en.vtt WARNING: Unable to download subtitle for "en": unknown url type: '/api/timedtext?v=Z8CV-d_fYb8&ei=-a54Z4f_Fc7BssUPperpqQ8&caps=asr&opi=112496729&xoaf=5&hl=en&ip=0.0.0.0&ipbits=0&expire=1735987561&sparams=ip%2Cipbits%2Cexpire%2Cv%2Cei%2Ccaps%2Copi%2Cxoaf&signature=598FDC77A3FE2FA972CD474EDC7A37B931C1482E.6747BA7531C1291708DD03624CE08CAB3CC382CA&key=yt8&lang=en&fmt=vtt' ``` ## Description <!-- Provide an explanation of your issue in an arbitrary form. Provide any additional information, suggested solution and as much context and examples as possible. If work on your issue requires account credentials please provide them or explain how one can obtain them. --> Downloading subtitle no longer works for any Youtube video. Example = ``` youtube-dl --ignore-config -v --skip-download --write-sub --all-subs https://www.youtube.com/watch?v=Z8CV-d_fYb8 ``` The last time I saw this worked correctly was on 26 November 2024. After that, on 22 December 2024, I updated youtube-dl to version `2024.12.17` and started to see this error. Today, tried updating to version `2025.01.01` but the error still occurs.
Author
Owner

@dirkf commented on GitHub (Jan 4, 2025):

I expect this is a side-effect of the emergency switch to the MWEB API, where the subtitles might be found in a different place or maybe not supplied. Let's see if we can find them again.

@dirkf commented on GitHub (Jan 4, 2025): I expect this is a side-effect of the emergency switch to the MWEB API, where the subtitles might be found in a different place or maybe not supplied. Let's see if we can find them again.
Author
Owner

@dirkf commented on GitHub (Jan 4, 2025):

Although the subtitle data is where it was expected, the URLs are just paths that need to be completed with scheme://host (which wasn't the case with the previous source). Then, with the problem video, we get the one non-automatic subtitle:

$ python -m youtube_dl -v --skip-download --write-sub --all-subs 'https://www.youtube.com/watch?v=Z8CV-d_fYb8'
[debug] System config: [u'--prefer-ffmpeg']
[debug] User config: []
[debug] Custom config: []
[debug] Command-line args: [u'-v', u'--skip-download', u'--write-sub', u'--all-subs', u'https://www.youtube.com/watch?v=Z8CV-d_fYb8']
[debug] Encodings: locale UTF-8, fs UTF-8, out UTF-8, pref UTF-8
[debug] youtube-dl version 2021.12.17
[debug] Git HEAD: 176fc2cb0
[debug] Python 2.7.18 (CPython i686 32bit) - Linux-4.4.0-210-generic-i686-with-Ubuntu-16.04-xenial - OpenSSL 1.1.1w  11 Sep 2023 - glibc 2.15
[debug] exe versions: avconv 4.3, avprobe 4.3, ffmpeg 4.3, ffprobe 4.3
[debug] Proxy map: {}
[youtube] Z8CV-d_fYb8: Downloading webpage
[youtube] Z8CV-d_fYb8: Downloading API JSON
[debug] [youtube] Decrypted nsig 5BrwAiPglXFWk1PRG => X09r8mo0vTdhCA
[debug] [youtube] Decrypted nsig U-fxiwVl1eHFyt6CP => c4MgdYO16CoNuA
[debug] Default format spec: bestvideo+bestaudio/best
[info] Writing video subtitles to: How to find Creative Commons Videos on YouTube (without copyrights claim)-Z8CV-d_fYb8.en.vtt
$
@dirkf commented on GitHub (Jan 4, 2025): Although the subtitle data is where it was expected, the URLs are just paths that need to be completed with scheme://host (which wasn't the case with the previous source). Then, with the problem video, we get the one non-automatic subtitle: ```console $ python -m youtube_dl -v --skip-download --write-sub --all-subs 'https://www.youtube.com/watch?v=Z8CV-d_fYb8' [debug] System config: [u'--prefer-ffmpeg'] [debug] User config: [] [debug] Custom config: [] [debug] Command-line args: [u'-v', u'--skip-download', u'--write-sub', u'--all-subs', u'https://www.youtube.com/watch?v=Z8CV-d_fYb8'] [debug] Encodings: locale UTF-8, fs UTF-8, out UTF-8, pref UTF-8 [debug] youtube-dl version 2021.12.17 [debug] Git HEAD: 176fc2cb0 [debug] Python 2.7.18 (CPython i686 32bit) - Linux-4.4.0-210-generic-i686-with-Ubuntu-16.04-xenial - OpenSSL 1.1.1w 11 Sep 2023 - glibc 2.15 [debug] exe versions: avconv 4.3, avprobe 4.3, ffmpeg 4.3, ffprobe 4.3 [debug] Proxy map: {} [youtube] Z8CV-d_fYb8: Downloading webpage [youtube] Z8CV-d_fYb8: Downloading API JSON [debug] [youtube] Decrypted nsig 5BrwAiPglXFWk1PRG => X09r8mo0vTdhCA [debug] [youtube] Decrypted nsig U-fxiwVl1eHFyt6CP => c4MgdYO16CoNuA [debug] Default format spec: bestvideo+bestaudio/best [info] Writing video subtitles to: How to find Creative Commons Videos on YouTube (without copyrights claim)-Z8CV-d_fYb8.en.vtt $ ```
Author
Owner

@antivirtel commented on GitHub (Mar 23, 2025):

Hi @dirkf, thank you for fixing the previous issue with the subtitles. I see a similar issue as mentioned above, now with the latest TVHTML5 YouTube IE. (Please let me know if it needs a new ticket).

Example: https://youtu.be/zpTVIeUh04E - it definitely has English auto generated subtitles, but I get the error:

$ youtube-dl --write-auto-sub https://youtu.be/zpTVIeUh04E
[youtube] zpTVIeUh04E: Downloading webpage
[youtube] zpTVIeUh04E: Downloading TVHTML5 API JSON
WARNING: en subtitles not available for zpTVIeUh04E
[youtube] zpTVIeUh04E: Downloading thumbnail ...
[youtube] zpTVIeUh04E: Writing thumbnail to: 20210727-Heat Geek-Why NOT to ZONE your heating!!.. (SHOCKING RESULTS!!).webp
WARNING: Requested formats are incompatible for merge and will be merged into mkv.
[download] 20210727-Heat Geek-Why NOT to ZONE your heating!!.. (SHOCKING RESULTS!!).mkv has already been downloaded and merged

I'm using the very latest ydl version from master as of today (23rd Mar). Can you please check & fix it?

I'm not familiar with the code, but are there test cases for subtitle downloads (or test cases at all)?

Thank you very much!

@antivirtel commented on GitHub (Mar 23, 2025): Hi @dirkf, thank you for fixing the previous issue with the subtitles. I see a similar issue as mentioned above, now with the latest TVHTML5 YouTube IE. (Please let me know if it needs a new ticket). Example: https://youtu.be/zpTVIeUh04E - it definitely has English auto generated subtitles, but I get the error: ```logtalk $ youtube-dl --write-auto-sub https://youtu.be/zpTVIeUh04E [youtube] zpTVIeUh04E: Downloading webpage [youtube] zpTVIeUh04E: Downloading TVHTML5 API JSON WARNING: en subtitles not available for zpTVIeUh04E [youtube] zpTVIeUh04E: Downloading thumbnail ... [youtube] zpTVIeUh04E: Writing thumbnail to: 20210727-Heat Geek-Why NOT to ZONE your heating!!.. (SHOCKING RESULTS!!).webp WARNING: Requested formats are incompatible for merge and will be merged into mkv. [download] 20210727-Heat Geek-Why NOT to ZONE your heating!!.. (SHOCKING RESULTS!!).mkv has already been downloaded and merged ``` I'm using the very latest ydl version from master as of today (23rd Mar). Can you please check & fix it? I'm not familiar with the code, but are there test cases for subtitle downloads (or test cases at all)? Thank you very much!
Author
Owner

@dirkf commented on GitHub (Mar 24, 2025):

Consider letting the program know which subtitles/automatic captions you want, by specifying --all-subs or --sub-lang .... But don't ask for en because there aren't any:

$ python3 -m youtube_dl --list-subs zpTVIeUh04E
[youtube] zpTVIeUh04E: Downloading webpage
[youtube] zpTVIeUh04E: Downloading TVHTML5 API JSON
Available automatic captions for zpTVIeUh04E:
Language formats
ar       vtt, ttml, srv3, srv2, srv1, json3
zh-Hant  vtt, ttml, srv3, srv2, srv1, json3
nl       vtt, ttml, srv3, srv2, srv1, json3
fr       vtt, ttml, srv3, srv2, srv1, json3
de       vtt, ttml, srv3, srv2, srv1, json3
hi       vtt, ttml, srv3, srv2, srv1, json3
id       vtt, ttml, srv3, srv2, srv1, json3
it       vtt, ttml, srv3, srv2, srv1, json3
ja       vtt, ttml, srv3, srv2, srv1, json3
ko       vtt, ttml, srv3, srv2, srv1, json3
pt       vtt, ttml, srv3, srv2, srv1, json3
ru       vtt, ttml, srv3, srv2, srv1, json3
es       vtt, ttml, srv3, srv2, srv1, json3
th       vtt, ttml, srv3, srv2, srv1, json3
uk       vtt, ttml, srv3, srv2, srv1, json3
vi       vtt, ttml, srv3, srv2, srv1, json3
zpTVIeUh04E has no subtitles
$ 
@dirkf commented on GitHub (Mar 24, 2025): Consider letting the program know which subtitles/automatic captions you want, by specifying `--all-subs` or `--sub-lang ...`. But don't ask for `en` because there aren't any: ```console $ python3 -m youtube_dl --list-subs zpTVIeUh04E [youtube] zpTVIeUh04E: Downloading webpage [youtube] zpTVIeUh04E: Downloading TVHTML5 API JSON Available automatic captions for zpTVIeUh04E: Language formats ar vtt, ttml, srv3, srv2, srv1, json3 zh-Hant vtt, ttml, srv3, srv2, srv1, json3 nl vtt, ttml, srv3, srv2, srv1, json3 fr vtt, ttml, srv3, srv2, srv1, json3 de vtt, ttml, srv3, srv2, srv1, json3 hi vtt, ttml, srv3, srv2, srv1, json3 id vtt, ttml, srv3, srv2, srv1, json3 it vtt, ttml, srv3, srv2, srv1, json3 ja vtt, ttml, srv3, srv2, srv1, json3 ko vtt, ttml, srv3, srv2, srv1, json3 pt vtt, ttml, srv3, srv2, srv1, json3 ru vtt, ttml, srv3, srv2, srv1, json3 es vtt, ttml, srv3, srv2, srv1, json3 th vtt, ttml, srv3, srv2, srv1, json3 uk vtt, ttml, srv3, srv2, srv1, json3 vi vtt, ttml, srv3, srv2, srv1, json3 zpTVIeUh04E has no subtitles $ ```
Author
Owner

@dirkf commented on GitHub (Mar 24, 2025):

BTW, any extractor must have valid test-cases declared in the extractor class, which may include subtitles in the expected results, and there is also a dedicated test script for subtitle processing that has to pass on each change.

@dirkf commented on GitHub (Mar 24, 2025): BTW, any extractor must have valid test-cases declared in the extractor class, which may include subtitles in the expected results, and there is also a dedicated test script for subtitle processing that has to pass on each change.
Author
Owner

@antivirtel commented on GitHub (Mar 24, 2025):

Well, the problem I have is that on Android and on my LG TV it says it has English auto generated subtitle for https://youtu.be/zpTVIeUh04E

Is TVHTML5 not the same as what the LG TV app would use, so ydl can't access it?

Screenshot_20250324-224356_YouTube~2.png

I've used the exact same command line arguments before to fetch auto generated English subtitles, so that's what I see the problem is.

I see uk listed, isn't it the same as en? Can't it consider any variants of English under one name en?

@antivirtel commented on GitHub (Mar 24, 2025): Well, the problem I have is that on Android and on my LG TV it says it has English auto generated subtitle for https://youtu.be/zpTVIeUh04E Is TVHTML5 not the same as what the LG TV app would use, so ydl can't access it? ![Screenshot_20250324-224356_YouTube~2.png](https://github.com/user-attachments/assets/522fdba1-4092-4eab-b3c2-8dae0d3934f5) I've used the exact same command line arguments before to fetch auto generated English subtitles, so that's what I see the problem is. I see `uk` listed, isn't it the same as `en`? Can't it consider any variants of English under one name `en`?
Author
Owner

@dirkf commented on GitHub (Mar 25, 2025):

These codes are ISO 639-2, so uk will be Ukrainian. I don't know if that will be much use to you. In ISO 3166, used for geo-restriction options and DNS, Ukraine is UA and UK is GB: the .uk domain was added after people had been using it by mistake instead of .gb, which is basically not used now.

yt-dlp gets the subtitles/auto-captions from more clients and its list is about 7x the list that we get, but the list with only the tvhtml5 client is almost as long and both get these:

en-orig  English (Original)    vtt, ttml, srv3, srv2, srv1, json3
en       English               vtt, ttml, srv3, srv2, srv1, json3

Apparently we need to get the subtitles from the webpage response and then add any more from the API response.

Also, the code assumes (what may once have been true) that translated automatic captions are derived from an actual subtitle and not an asr automatic caption, so the en automatic caption is skipped.

When we fix those issues:

Available automatic captions for zpTVIeUh04E:
Language formats
en       vtt, ttml, srv3, srv2, srv1, json3
ab       vtt, ttml, srv3, srv2, srv1, json3
aa       vtt, ttml, srv3, srv2, srv1, json3
af       vtt, ttml, srv3, srv2, srv1, json3
ak       vtt, ttml, srv3, srv2, srv1, json3
sq       vtt, ttml, srv3, srv2, srv1, json3
am       vtt, ttml, srv3, srv2, srv1, json3
ar       vtt, ttml, srv3, srv2, srv1, json3
hy       vtt, ttml, srv3, srv2, srv1, json3
as       vtt, ttml, srv3, srv2, srv1, json3
ay       vtt, ttml, srv3, srv2, srv1, json3
az       vtt, ttml, srv3, srv2, srv1, json3
bn       vtt, ttml, srv3, srv2, srv1, json3
ba       vtt, ttml, srv3, srv2, srv1, json3
eu       vtt, ttml, srv3, srv2, srv1, json3
be       vtt, ttml, srv3, srv2, srv1, json3
bho      vtt, ttml, srv3, srv2, srv1, json3
bs       vtt, ttml, srv3, srv2, srv1, json3
br       vtt, ttml, srv3, srv2, srv1, json3
bg       vtt, ttml, srv3, srv2, srv1, json3
my       vtt, ttml, srv3, srv2, srv1, json3
ca       vtt, ttml, srv3, srv2, srv1, json3
ceb      vtt, ttml, srv3, srv2, srv1, json3
zh-Hans  vtt, ttml, srv3, srv2, srv1, json3
zh-Hant  vtt, ttml, srv3, srv2, srv1, json3
co       vtt, ttml, srv3, srv2, srv1, json3
hr       vtt, ttml, srv3, srv2, srv1, json3
cs       vtt, ttml, srv3, srv2, srv1, json3
da       vtt, ttml, srv3, srv2, srv1, json3
dv       vtt, ttml, srv3, srv2, srv1, json3
nl       vtt, ttml, srv3, srv2, srv1, json3
dz       vtt, ttml, srv3, srv2, srv1, json3
eo       vtt, ttml, srv3, srv2, srv1, json3
et       vtt, ttml, srv3, srv2, srv1, json3
ee       vtt, ttml, srv3, srv2, srv1, json3
fo       vtt, ttml, srv3, srv2, srv1, json3
fj       vtt, ttml, srv3, srv2, srv1, json3
fil      vtt, ttml, srv3, srv2, srv1, json3
fi       vtt, ttml, srv3, srv2, srv1, json3
fr       vtt, ttml, srv3, srv2, srv1, json3
gaa      vtt, ttml, srv3, srv2, srv1, json3
gl       vtt, ttml, srv3, srv2, srv1, json3
lg       vtt, ttml, srv3, srv2, srv1, json3
ka       vtt, ttml, srv3, srv2, srv1, json3
de       vtt, ttml, srv3, srv2, srv1, json3
el       vtt, ttml, srv3, srv2, srv1, json3
gn       vtt, ttml, srv3, srv2, srv1, json3
gu       vtt, ttml, srv3, srv2, srv1, json3
ht       vtt, ttml, srv3, srv2, srv1, json3
ha       vtt, ttml, srv3, srv2, srv1, json3
haw      vtt, ttml, srv3, srv2, srv1, json3
iw       vtt, ttml, srv3, srv2, srv1, json3
hi       vtt, ttml, srv3, srv2, srv1, json3
hmn      vtt, ttml, srv3, srv2, srv1, json3
hu       vtt, ttml, srv3, srv2, srv1, json3
is       vtt, ttml, srv3, srv2, srv1, json3
ig       vtt, ttml, srv3, srv2, srv1, json3
id       vtt, ttml, srv3, srv2, srv1, json3
iu       vtt, ttml, srv3, srv2, srv1, json3
ga       vtt, ttml, srv3, srv2, srv1, json3
it       vtt, ttml, srv3, srv2, srv1, json3
ja       vtt, ttml, srv3, srv2, srv1, json3
jv       vtt, ttml, srv3, srv2, srv1, json3
kl       vtt, ttml, srv3, srv2, srv1, json3
kn       vtt, ttml, srv3, srv2, srv1, json3
kk       vtt, ttml, srv3, srv2, srv1, json3
kha      vtt, ttml, srv3, srv2, srv1, json3
km       vtt, ttml, srv3, srv2, srv1, json3
rw       vtt, ttml, srv3, srv2, srv1, json3
ko       vtt, ttml, srv3, srv2, srv1, json3
kri      vtt, ttml, srv3, srv2, srv1, json3
ku       vtt, ttml, srv3, srv2, srv1, json3
ky       vtt, ttml, srv3, srv2, srv1, json3
lo       vtt, ttml, srv3, srv2, srv1, json3
la       vtt, ttml, srv3, srv2, srv1, json3
lv       vtt, ttml, srv3, srv2, srv1, json3
ln       vtt, ttml, srv3, srv2, srv1, json3
lt       vtt, ttml, srv3, srv2, srv1, json3
lua      vtt, ttml, srv3, srv2, srv1, json3
luo      vtt, ttml, srv3, srv2, srv1, json3
lb       vtt, ttml, srv3, srv2, srv1, json3
mk       vtt, ttml, srv3, srv2, srv1, json3
mg       vtt, ttml, srv3, srv2, srv1, json3
ms       vtt, ttml, srv3, srv2, srv1, json3
ml       vtt, ttml, srv3, srv2, srv1, json3
mt       vtt, ttml, srv3, srv2, srv1, json3
gv       vtt, ttml, srv3, srv2, srv1, json3
mi       vtt, ttml, srv3, srv2, srv1, json3
mr       vtt, ttml, srv3, srv2, srv1, json3
mn       vtt, ttml, srv3, srv2, srv1, json3
mfe      vtt, ttml, srv3, srv2, srv1, json3
ne       vtt, ttml, srv3, srv2, srv1, json3
new      vtt, ttml, srv3, srv2, srv1, json3
nso      vtt, ttml, srv3, srv2, srv1, json3
no       vtt, ttml, srv3, srv2, srv1, json3
ny       vtt, ttml, srv3, srv2, srv1, json3
oc       vtt, ttml, srv3, srv2, srv1, json3
or       vtt, ttml, srv3, srv2, srv1, json3
om       vtt, ttml, srv3, srv2, srv1, json3
os       vtt, ttml, srv3, srv2, srv1, json3
pam      vtt, ttml, srv3, srv2, srv1, json3
ps       vtt, ttml, srv3, srv2, srv1, json3
fa       vtt, ttml, srv3, srv2, srv1, json3
pl       vtt, ttml, srv3, srv2, srv1, json3
pt       vtt, ttml, srv3, srv2, srv1, json3
pt-PT    vtt, ttml, srv3, srv2, srv1, json3
pa       vtt, ttml, srv3, srv2, srv1, json3
qu       vtt, ttml, srv3, srv2, srv1, json3
ro       vtt, ttml, srv3, srv2, srv1, json3
rn       vtt, ttml, srv3, srv2, srv1, json3
ru       vtt, ttml, srv3, srv2, srv1, json3
sm       vtt, ttml, srv3, srv2, srv1, json3
sg       vtt, ttml, srv3, srv2, srv1, json3
sa       vtt, ttml, srv3, srv2, srv1, json3
gd       vtt, ttml, srv3, srv2, srv1, json3
sr       vtt, ttml, srv3, srv2, srv1, json3
crs      vtt, ttml, srv3, srv2, srv1, json3
sn       vtt, ttml, srv3, srv2, srv1, json3
sd       vtt, ttml, srv3, srv2, srv1, json3
si       vtt, ttml, srv3, srv2, srv1, json3
sk       vtt, ttml, srv3, srv2, srv1, json3
sl       vtt, ttml, srv3, srv2, srv1, json3
so       vtt, ttml, srv3, srv2, srv1, json3
st       vtt, ttml, srv3, srv2, srv1, json3
es       vtt, ttml, srv3, srv2, srv1, json3
su       vtt, ttml, srv3, srv2, srv1, json3
sw       vtt, ttml, srv3, srv2, srv1, json3
ss       vtt, ttml, srv3, srv2, srv1, json3
sv       vtt, ttml, srv3, srv2, srv1, json3
tg       vtt, ttml, srv3, srv2, srv1, json3
ta       vtt, ttml, srv3, srv2, srv1, json3
tt       vtt, ttml, srv3, srv2, srv1, json3
te       vtt, ttml, srv3, srv2, srv1, json3
th       vtt, ttml, srv3, srv2, srv1, json3
bo       vtt, ttml, srv3, srv2, srv1, json3
ti       vtt, ttml, srv3, srv2, srv1, json3
to       vtt, ttml, srv3, srv2, srv1, json3
ts       vtt, ttml, srv3, srv2, srv1, json3
tn       vtt, ttml, srv3, srv2, srv1, json3
tum      vtt, ttml, srv3, srv2, srv1, json3
tr       vtt, ttml, srv3, srv2, srv1, json3
tk       vtt, ttml, srv3, srv2, srv1, json3
uk       vtt, ttml, srv3, srv2, srv1, json3
ur       vtt, ttml, srv3, srv2, srv1, json3
ug       vtt, ttml, srv3, srv2, srv1, json3
uz       vtt, ttml, srv3, srv2, srv1, json3
ve       vtt, ttml, srv3, srv2, srv1, json3
vi       vtt, ttml, srv3, srv2, srv1, json3
war      vtt, ttml, srv3, srv2, srv1, json3
cy       vtt, ttml, srv3, srv2, srv1, json3
fy       vtt, ttml, srv3, srv2, srv1, json3
wo       vtt, ttml, srv3, srv2, srv1, json3
xh       vtt, ttml, srv3, srv2, srv1, json3
yi       vtt, ttml, srv3, srv2, srv1, json3
yo       vtt, ttml, srv3, srv2, srv1, json3
zu       vtt, ttml, srv3, srv2, srv1, json3
zpTVIeUh04E has no subtitles

No doubt this update will be included in the next nightly release once a pending nsig issue has been resolved.

@dirkf commented on GitHub (Mar 25, 2025): These codes are ISO 639-2, so `uk` will be Ukrainian. I don't know if that will be much use to you. In ISO 3166, used for geo-restriction options and DNS, Ukraine is `UA` and UK is `GB`: the `.uk` domain was added after people had been using it by mistake instead of `.gb`, which is basically not used now. _yt-dlp_ gets the subtitles/auto-captions from more clients and its list is about 7x the list that we get, but the list with only the `tvhtml5` client is almost as long and both get these: ``` en-orig English (Original) vtt, ttml, srv3, srv2, srv1, json3 en English vtt, ttml, srv3, srv2, srv1, json3 ``` Apparently we need to get the subtitles from the webpage response and then add any more from the API response. Also, the code assumes (what may once have been true) that translated automatic captions are derived from an actual subtitle and not an `asr` automatic caption, so the `en` automatic caption is skipped. When we fix those issues: ``` Available automatic captions for zpTVIeUh04E: Language formats en vtt, ttml, srv3, srv2, srv1, json3 ab vtt, ttml, srv3, srv2, srv1, json3 aa vtt, ttml, srv3, srv2, srv1, json3 af vtt, ttml, srv3, srv2, srv1, json3 ak vtt, ttml, srv3, srv2, srv1, json3 sq vtt, ttml, srv3, srv2, srv1, json3 am vtt, ttml, srv3, srv2, srv1, json3 ar vtt, ttml, srv3, srv2, srv1, json3 hy vtt, ttml, srv3, srv2, srv1, json3 as vtt, ttml, srv3, srv2, srv1, json3 ay vtt, ttml, srv3, srv2, srv1, json3 az vtt, ttml, srv3, srv2, srv1, json3 bn vtt, ttml, srv3, srv2, srv1, json3 ba vtt, ttml, srv3, srv2, srv1, json3 eu vtt, ttml, srv3, srv2, srv1, json3 be vtt, ttml, srv3, srv2, srv1, json3 bho vtt, ttml, srv3, srv2, srv1, json3 bs vtt, ttml, srv3, srv2, srv1, json3 br vtt, ttml, srv3, srv2, srv1, json3 bg vtt, ttml, srv3, srv2, srv1, json3 my vtt, ttml, srv3, srv2, srv1, json3 ca vtt, ttml, srv3, srv2, srv1, json3 ceb vtt, ttml, srv3, srv2, srv1, json3 zh-Hans vtt, ttml, srv3, srv2, srv1, json3 zh-Hant vtt, ttml, srv3, srv2, srv1, json3 co vtt, ttml, srv3, srv2, srv1, json3 hr vtt, ttml, srv3, srv2, srv1, json3 cs vtt, ttml, srv3, srv2, srv1, json3 da vtt, ttml, srv3, srv2, srv1, json3 dv vtt, ttml, srv3, srv2, srv1, json3 nl vtt, ttml, srv3, srv2, srv1, json3 dz vtt, ttml, srv3, srv2, srv1, json3 eo vtt, ttml, srv3, srv2, srv1, json3 et vtt, ttml, srv3, srv2, srv1, json3 ee vtt, ttml, srv3, srv2, srv1, json3 fo vtt, ttml, srv3, srv2, srv1, json3 fj vtt, ttml, srv3, srv2, srv1, json3 fil vtt, ttml, srv3, srv2, srv1, json3 fi vtt, ttml, srv3, srv2, srv1, json3 fr vtt, ttml, srv3, srv2, srv1, json3 gaa vtt, ttml, srv3, srv2, srv1, json3 gl vtt, ttml, srv3, srv2, srv1, json3 lg vtt, ttml, srv3, srv2, srv1, json3 ka vtt, ttml, srv3, srv2, srv1, json3 de vtt, ttml, srv3, srv2, srv1, json3 el vtt, ttml, srv3, srv2, srv1, json3 gn vtt, ttml, srv3, srv2, srv1, json3 gu vtt, ttml, srv3, srv2, srv1, json3 ht vtt, ttml, srv3, srv2, srv1, json3 ha vtt, ttml, srv3, srv2, srv1, json3 haw vtt, ttml, srv3, srv2, srv1, json3 iw vtt, ttml, srv3, srv2, srv1, json3 hi vtt, ttml, srv3, srv2, srv1, json3 hmn vtt, ttml, srv3, srv2, srv1, json3 hu vtt, ttml, srv3, srv2, srv1, json3 is vtt, ttml, srv3, srv2, srv1, json3 ig vtt, ttml, srv3, srv2, srv1, json3 id vtt, ttml, srv3, srv2, srv1, json3 iu vtt, ttml, srv3, srv2, srv1, json3 ga vtt, ttml, srv3, srv2, srv1, json3 it vtt, ttml, srv3, srv2, srv1, json3 ja vtt, ttml, srv3, srv2, srv1, json3 jv vtt, ttml, srv3, srv2, srv1, json3 kl vtt, ttml, srv3, srv2, srv1, json3 kn vtt, ttml, srv3, srv2, srv1, json3 kk vtt, ttml, srv3, srv2, srv1, json3 kha vtt, ttml, srv3, srv2, srv1, json3 km vtt, ttml, srv3, srv2, srv1, json3 rw vtt, ttml, srv3, srv2, srv1, json3 ko vtt, ttml, srv3, srv2, srv1, json3 kri vtt, ttml, srv3, srv2, srv1, json3 ku vtt, ttml, srv3, srv2, srv1, json3 ky vtt, ttml, srv3, srv2, srv1, json3 lo vtt, ttml, srv3, srv2, srv1, json3 la vtt, ttml, srv3, srv2, srv1, json3 lv vtt, ttml, srv3, srv2, srv1, json3 ln vtt, ttml, srv3, srv2, srv1, json3 lt vtt, ttml, srv3, srv2, srv1, json3 lua vtt, ttml, srv3, srv2, srv1, json3 luo vtt, ttml, srv3, srv2, srv1, json3 lb vtt, ttml, srv3, srv2, srv1, json3 mk vtt, ttml, srv3, srv2, srv1, json3 mg vtt, ttml, srv3, srv2, srv1, json3 ms vtt, ttml, srv3, srv2, srv1, json3 ml vtt, ttml, srv3, srv2, srv1, json3 mt vtt, ttml, srv3, srv2, srv1, json3 gv vtt, ttml, srv3, srv2, srv1, json3 mi vtt, ttml, srv3, srv2, srv1, json3 mr vtt, ttml, srv3, srv2, srv1, json3 mn vtt, ttml, srv3, srv2, srv1, json3 mfe vtt, ttml, srv3, srv2, srv1, json3 ne vtt, ttml, srv3, srv2, srv1, json3 new vtt, ttml, srv3, srv2, srv1, json3 nso vtt, ttml, srv3, srv2, srv1, json3 no vtt, ttml, srv3, srv2, srv1, json3 ny vtt, ttml, srv3, srv2, srv1, json3 oc vtt, ttml, srv3, srv2, srv1, json3 or vtt, ttml, srv3, srv2, srv1, json3 om vtt, ttml, srv3, srv2, srv1, json3 os vtt, ttml, srv3, srv2, srv1, json3 pam vtt, ttml, srv3, srv2, srv1, json3 ps vtt, ttml, srv3, srv2, srv1, json3 fa vtt, ttml, srv3, srv2, srv1, json3 pl vtt, ttml, srv3, srv2, srv1, json3 pt vtt, ttml, srv3, srv2, srv1, json3 pt-PT vtt, ttml, srv3, srv2, srv1, json3 pa vtt, ttml, srv3, srv2, srv1, json3 qu vtt, ttml, srv3, srv2, srv1, json3 ro vtt, ttml, srv3, srv2, srv1, json3 rn vtt, ttml, srv3, srv2, srv1, json3 ru vtt, ttml, srv3, srv2, srv1, json3 sm vtt, ttml, srv3, srv2, srv1, json3 sg vtt, ttml, srv3, srv2, srv1, json3 sa vtt, ttml, srv3, srv2, srv1, json3 gd vtt, ttml, srv3, srv2, srv1, json3 sr vtt, ttml, srv3, srv2, srv1, json3 crs vtt, ttml, srv3, srv2, srv1, json3 sn vtt, ttml, srv3, srv2, srv1, json3 sd vtt, ttml, srv3, srv2, srv1, json3 si vtt, ttml, srv3, srv2, srv1, json3 sk vtt, ttml, srv3, srv2, srv1, json3 sl vtt, ttml, srv3, srv2, srv1, json3 so vtt, ttml, srv3, srv2, srv1, json3 st vtt, ttml, srv3, srv2, srv1, json3 es vtt, ttml, srv3, srv2, srv1, json3 su vtt, ttml, srv3, srv2, srv1, json3 sw vtt, ttml, srv3, srv2, srv1, json3 ss vtt, ttml, srv3, srv2, srv1, json3 sv vtt, ttml, srv3, srv2, srv1, json3 tg vtt, ttml, srv3, srv2, srv1, json3 ta vtt, ttml, srv3, srv2, srv1, json3 tt vtt, ttml, srv3, srv2, srv1, json3 te vtt, ttml, srv3, srv2, srv1, json3 th vtt, ttml, srv3, srv2, srv1, json3 bo vtt, ttml, srv3, srv2, srv1, json3 ti vtt, ttml, srv3, srv2, srv1, json3 to vtt, ttml, srv3, srv2, srv1, json3 ts vtt, ttml, srv3, srv2, srv1, json3 tn vtt, ttml, srv3, srv2, srv1, json3 tum vtt, ttml, srv3, srv2, srv1, json3 tr vtt, ttml, srv3, srv2, srv1, json3 tk vtt, ttml, srv3, srv2, srv1, json3 uk vtt, ttml, srv3, srv2, srv1, json3 ur vtt, ttml, srv3, srv2, srv1, json3 ug vtt, ttml, srv3, srv2, srv1, json3 uz vtt, ttml, srv3, srv2, srv1, json3 ve vtt, ttml, srv3, srv2, srv1, json3 vi vtt, ttml, srv3, srv2, srv1, json3 war vtt, ttml, srv3, srv2, srv1, json3 cy vtt, ttml, srv3, srv2, srv1, json3 fy vtt, ttml, srv3, srv2, srv1, json3 wo vtt, ttml, srv3, srv2, srv1, json3 xh vtt, ttml, srv3, srv2, srv1, json3 yi vtt, ttml, srv3, srv2, srv1, json3 yo vtt, ttml, srv3, srv2, srv1, json3 zu vtt, ttml, srv3, srv2, srv1, json3 zpTVIeUh04E has no subtitles ``` No doubt this update will be included in the next nightly release once a pending nsig issue has been resolved.
Author
Owner

@antivirtel commented on GitHub (Mar 26, 2025):

Thank you, latest version from the master works now.

@antivirtel commented on GitHub (Mar 26, 2025): Thank you, latest version from the master works now.
Author
Owner

@antivirtel commented on GitHub (Mar 27, 2025):

Sorry @dirkf, spoke too soon. The VTT file has all the subtitles dumped into the first 2 timecodes, so technically we have it, but it's useless in this form. See below. Can you please check it?

VTT subtitles
$ head -20 20210727-Heat\ Geek-Why\ NOT\ to\ ZONE\ your\ heating\!\!..\ \(SHOCKING\ RESULTS\!\!\).en.vtt
WEBVTT
Kind: captions
Language: en

00:00:00.160 --> 00:00:02.230 align:start position:0%

hi guys this is a part of one of our  modules from our heat geek  online heating design training course  please bear in mind this is from  very much the advanced section all the  trainees that would have got to this  part  would have done all the math necessary  to understand exactly what's going on  here  however i'm just going to watch this  with you and just pause it every once in  a while again to explain what's going on  [Music]  restricting the room temperature with a  stat or trv prematurely  is like breaking and accelerating at the  same time  if using room compensation and the trv  or room stack closes down prematurely  due to being out of sync with this room  sensor which can happen over time  the room influence controller will  increase the target flow temperature at  the heat source  to compensate and the two conflicting  temperature controls will fight  this is the reason for setting up more  as a temperature limiter than a control  with pure open loop weather compensation  it's more about keeping the flow rates  up and allowing the self-regulation  effect  trvs are slightly better than room stats  as these operate in a control band  these slowly close down as they reach  target temperature  they don't just close down immediately  and can sit in a semi-closed position  and still allow flow through this first  section essentially just says that we  want to use  modulating controls for our heat sources  that's a control that varies the flow  temperature from the heat source  not just switches it on or off these  dramatically increase the efficiency of  heat pumps  and a bit in boilers for more  information on smart stats  have a look at our smart stat video we  wouldn't necessarily advise using trvs  or room stats to turn down  unused rooms or spare rooms either  turning unused rooms right down  or micro zoning gives a particularly  high risk of losing efficiency for heat  pumps  creating too many zones in our system  restricts the system volume  and increases cycles but most  importantly  it increases the flow temperature  required okay this is a key  point to understand throughout the whole  of this video  the lower the flow temperatures inside  your heat source your heat pump or your  gas boiler  the more efficient it is we really want  to target as  low temperature as possible as we know  maximizing the surface area of your  emitters  make sure we absolutely minimize our  flow temperature  closing down radiators obviously  effectively reduces the surface area we  have to emit the heat  and remaining on radiators will have to  run much hotter  in order to compensate for the colder  rooms next door  here's an example we can work out  together let's take this four room house  to keep the mass simple  each room has a 500 watt loss at design  outside temperature of -3  or 2 kilowatts in total and a room  temperature of 21.  they're also each fitted with a mean  water to air temperature dt25  radiator now you don't use two of the  rooms so you put them into setback of 18  degrees celsius  to save energy a quick way to see how  much heat loss this saves  is by working out how much power the  property takes to heat by 1k  at design temperature and multiplied by  our new  average property temperature the  property did have a heat loss of 2  kilowatts with a dt of 24.  this means it require 83.3 watts  per kelvin the new average temperature  of the building  is 19.5 degrees celsius  which would make our new dt 22.5  multiply these together and you can see  the new load would theoretically be  1874 watts if all rooms were similar  heat loss  that's a 6.3 percent less energy loss  so this could be looking from above or a  side view it doesn't really matter we're  turning down our radiators in the unused  rooms to 18  in this specific scenario has saved six  percent  heat loss from the property which sounds  great or is it  remember that's only if your other rooms  do indeed drop to 18 degrees celsius  whilst these other rooms are at 21. this  is quite possible  if you have solid uninsulated external  walls  but for any building with a cavity or  cavity insulation  even if your internal doors are  permanently shut and with no one walking  through them between  rooms they would still have to be very  well insulated  and sealed internal doors which is  unlikely  let alone having fully insulated walls  between each of the rooms  let's say those rooms on a setback  temperature of 18 only drop to 19  degrees celsius  pause the video and work out the total  heat loss from that building  so if we add all our room temperatures  together and divide by 4  this gives us a mean temperature of 20  degrees celsius  if the building has a heat loss of 83.3  watts per kelvin  we multiply this by our dt of 23 to give  a 1916  watt loss this means we've saved 4.2  percent of power or energy  so here i'm suggesting because he is  lost into those cooler rooms  your heat loss isn't quite as low as you  were trying to target  when you were turning down those trvs  yes your radiators in those rooms  aren't on but the other remaining  radiators are having to work much harder  to get those rooms up to temperature and  the result is that you could actually  only be saving four percent efficiency  let's assume the better case for zoning  that the other rooms did drop to 18  degrees celsius  and let's see what the effects are okay  the mass gets a little bit heavy in this  part  so if you want to find out what the  results are in this specific situation  for zoning fast forward to this time  code and find out  now the property was fitted with dt25  radiators  what temperature do you think these same  radiators would have to be  if the adjoining rooms were 18 degrees  celsius  let's say the walls were 2.3 meters by 4  meters  and each room had a 2 meter squared door  first of all we would need to work out  the heat loss into the other adjoining  rooms  2.3 times 8 to account for all the walls  gives  18.4 meters squared take 2 meters  squared for the door  is 16.4 multiplied by our u value of 2  watts per k  is 32.8 multiplied by 3  degrees temperature difference between  the rooms gives 98.4 watts heat loss  take the 2 meter squared internal door  and multiply it by its u value of 8  watts per meter squared  per kelvin this will give 16 watts  multiplied by 3 degrees is 48 watts  this totals 146.4 watts  additional heat loss from the 21 degree  rooms  so this mean water air temperature dt25  radiator  that produces 500 watts will now have to  produce  646.4 watts  if you remember the property required  1874 watts  if these two radiators are inputting  1292  watts the remaining 582 watts  will be emitted into these two cooler  rooms by their radiators with either the  trvs restricting the flow right down  or it could just be a room stat that's  set to 18 that's pulsing the heat on and  off and into the room  to calculate the temperature required to  make a 500 watt radiator  output watts you can rearrange our  radiator conversion factor  using some of the previous principles  you've learned  feel free to pause the video and give it  a go  first let's work out how much power it  has to output  that 646 watts divided by 500  gives 1.292  that's 29.2 percent more power required  from the radiator  we now have to account for a logarithmic  curve of radiators which you might  remember is 1.3  however we're working the other way  around here so rather than going from dt  difference to the power increase we're  going from the power increase  to the dt so we'll have to use the  reciprocal  of 1.3 so we instead  raised to the power of 0.77  remember to find the reciprocal we  divide the number 1 by the number we  want to find the reciprocal of  1 divided by 1.3 is 0.77  we take our 2.92 power increase to the  power of 0.77  which gives 1.22 rounded up  your rad's mean water to air temperature  will have to be  1.22 that's 22 percent  times hotter to output 614 watts  so if the mean water to air temperature  dt was previously 25 degrees c  the new mean water to air temperature  will have to be 30.5 degrees  now with a 21 degree room temperature  our mean water temperature  would have been 46 degrees celsius at  design outside temperature  however it will now need 51.5 degrees  celsius  essentially the point here is that by  turning down or off  zones the remaining on zones will have  to run  much hotter and with a heat pump that  directly means  higher fuel bills take a look at this  cop graph for a mitsubishi ekadan heat  pump  bear in mind this lower line is for a 2  degrees outside temperature  but let's use it anyway as an example if  you run the house  with all the zones open and at the same  temperature of 21 degrees celsius  you would need a flow temperature of  around 46 degrees  which would give you a cop of 2.6  this will consume 769 watts of  electricity  to produce two kilowatts of power from  the heat pump  that's two kilowatts divided by our cop  of 2.6  if you zoned down the property to a heat  loss of 1874 watts  but run at the new required flow  temperature of 51.5  the cop would reduce to 2.3  using the same cop calculation we can  see that you would require  815 watts of power in this scenario  that's six percent more power  requirement despite the property  requiring 6.3 percent less heat  this all fits relatively well with the  rule of thumb that for every k  hotter the heat pump has to run you lose  2.5  efficiency this illustrates the point  clearly that zoning isn't necessarily a  good idea  the efficiency curve for gas heating  isn't quite so steep  but there is still an efficiency curve  nonetheless if you're in a similar  situation but using a gas boiler  if you reference this top graph you'll  see that you could  save approximately four percent  efficiency with these flow temperatures  or even up to 12 efficiency with  different flow temperatures  where the complication comes in with gas  boilers is this lower graph which shows  part  load efficiency that is where the lower  the output  of the gas boiler the higher the  efficiency  we won't go into that today though so  should be considered when choosing a  setback temperature  and how much to zone let's take this one  step further with another example  and assume that the two off rooms in our  scenario were turned completely off to  the frost setting at the trv by our  customer  however assume the two off rooms settled  at 18 degrees c  this would mean the internal and  external walls would have a slightly  different insulative value  what mean water to air temperature would  these radiators require  pause the video and have a go  remembering that our property heat loss  will be 1874.  now this one's actually a little bit  easier to work out the heat requirement  from each radiator we would simply  divide the heat loss by two  each radiator is required to emit 937  watts  937 watts required now divided by the  500  gives a conversion factor of 1.87  1.87 to the power of 0.77 which is the  reciprocal of the power factor for  radiators  is 1.62 our mean water to  air temperature will have to be 62  percent  higher to increase from 500 watt output  to 937 watt output our previous dt25  radiators  will now need to run at dt 40.5  if the room temperature is 21 the  temperature from the heat pump  will now need to be around 64 degrees  celsius  this simply isn't possible for the vast  majority of standard heat pumps  so in this example where the customer's  completely turned off some zones  or radiators the heat pump cop has gone  from 2.6  right the way down to 1.6 and used  52 per percent more power  than if they just left all the radiators  on despite the property losing  6 less heat in real world terms for the  customer  if they were paying say 15 pence per  kilowatt hour  this two kilowatt house in full load  conditions and with all the rooms turned  up to 21  would cost 11.5 p per hour to run  however once turning down two of the  rooms to 18 degrees  the new price per hour to run is 18  pence  despite two of the rooms being three  degrees cooler  and not only will this have a disastrous  effect on cop and fuel bills  the 21 degrees rooms won't ever be able  to actually reach temperature now this  isn't to say you should never zone  there's lots of variables here like  building shape layout  system mass as well as other sources of  heat to consider  however we've been favorable to zoning  with these calculations  as particularly with heat pumps zoning  increases one other rather  large inefficiency that's not accounted  for and that inefficiency  is increased cycling due to built-in  anti-cycling gas boilers only have  minimum losses from cycling  however heat pumps have considerable  losses on startup  as you can see here heat pumps don't  reach maximum efficiency for a while  after they've started  the compressor needs to increase the  pressure enough to evaporate the  refrigerant  and begin the cycle the compressor is  turned on  and initially has a negative efficiency  it then  slowly climbs to its maximum efficiency  over time and the longer it's left at  maximum efficiency  the higher the cop is dragged up  if the unit then turns off this cycle  has to start over  and the result is that the average  efficiency is dragged right back down  one more variable to add to this is that  the compressor is most efficient  at maximum output when the compressor  speed slows  it actually drops in efficiency there's  two ways we can ensure this sits at  maximum output  as much as possible one we ensure we  have as much  volume as possible and two we ensure the  run times are as long as possible  advanced controls often have adjustable  minimum run times or cycle rates built  in  but you can't adjust these with no ill  effect  the wider you set your cycle rates or  time between ons and offs  the wider your temperature swings in  room temperature  conversely the narrower you have your  time bands the more accurate the room  temperature with under an overshoot  yet the less efficient the appliance  additionally to that the lower your  volume which can be caused by zoning  down  the wider you're over an undershoot so  increasing the flow temperature is one  factor  but turning off radiators or underfloor  heating zones also increases this  cycling which is the switching on and  off of the appliance  and this decreasing efficiency is on top  of  our previously calculated figure the  advanced controls built into high  quality heat pumps and high  end boilers are something you'll have to  play with and get used to  and are specific to each manufacturer  they have a lot of adjustable parameters  built in to suit specific  heat source preferences using a  third-party control to send an on or off  signal to these heat sources  and bypassing its natural functionality  is potentially damaging to cop  and running costs if you do you'll have  to set a higher than necessary weather  compensation curve to account for the  fact  the heating is more intermittent and the  energy being lost  from the building is not matched by the  energy going in on a continual basis  this is why you may hear engineers say  you want to leave your heat pump on  all the time but by this they shouldn't  necessarily mean  at full target comfort temperature you  can still have an  off temperature or what's known as a  setback temperature  this again isn't something that's the  same for every scenario property and  heat source  but in the case of a heat pump you want  to have a nice high setback temperature  with advanced weather compensation  rather than turning the heat source  off at night the system just drops to a  setback temperature  let's say it's 9 degrees outside and our  target room temperature is 20 degrees  for example  and our heat pumps flow temperature is  35  if we have pure weather compensation the  flow temperature  will drop to what would be required for  our setback of say  18 degrees celsius which might be a flow  temperature of say  28 degrees because the system will be  warm  the unit will turn off for a while while  the system cools  but will then re-fire to maintain a flow  temperature of 28.  if your curve is set accurately your  property will  cool to 18 but no more this keeps your  walls  pipe work system and thermal mass fed  with thermal energy  if you turned your system completely off  the internal temperature could drop to  below 18 degrees celsius  and the heat source would have to fire  far hotter to replace that energy  that also been lost in the system  especially if you have underfloor  heating  otherwise the room temperature will take  a long time to come up to temperature  once the heating schedule returns to 20  degrees celsius  the heat source will again be able to  keep cooler as the mass of the property  and system has been  fed any kind of room influence or closed  loop control will work against  this again it's not a hard and fast rule  as many variables so if you're a fan of  rules of thumb  this is why it's advised that the  setback temperature for gas boilers  should be no more than three degrees  below your comfort temperature  and two degrees for heat pumps so the  property mass  is fed the flow temperature is kept as  low as possible  and again this depends on lots of other  variables particularly thermal mass  so just to recap heat pumps particularly  need a high volume to run effectively  and efficiently  unless you have better internal  insulation than external insulation  installing zone controls may have the  opposite effect  of the one they're advertised or  intended to have you can reduce this  cycling  by installing things like buffers but  that has an installation cost and a  space cost  and has an efficiency loss in itself  take a look at our video on low boss  headers to find out how  beware there are some situations where  you would or should so  it's really a case-by-case basis and  this is really just to highlight this  other big variable that we have  when deciding to zone and this is really  why i'm not too much of a big fan  of regulation or british standards every  situation  is different and needs a different  engineered approach  [Music]  if you're an end user and could do with  the help with a trained heat geek  check out our interactive map where you  can find engineers that have undergone  our full training and remember  our course unlike others isn't a pay to  pass  so any engineer on our map is fully  tried and tested  if you're an engineer and want to find  out more about our training head over to  heatgeek.com  and don't be worried about all the maths  we build you up to what you've seen here  and we have a full-time 24 7 support  group to help you through  with like-minded engineers if not  join in and join the rides  is there a uh well before i said if not  there was a pause isn't there  no yeah that was not really  it wasn't really right that'll do with  it yes  all right let's go should i get dave to  come help me pack up

00:00:02.230 --> 00:00:03.830 align:start position:0%
hi guys this is a part of one of our  modules from our heat geek  online heating design training course  please bear in mind this is from  very much the advanced section all the  trainees that would have got to this  part  would have done all the math necessary  to understand exactly what's going on  here  however i'm just going to watch this  with you and just pause it every once in  a while again to explain what's going on  [Music]  restricting the room temperature with a  stat or trv prematurely  is like breaking and accelerating at the  same time  if using room compensation and the trv  or room stack closes down prematurely  due to being out of sync with this room  sensor which can happen over time  the room influence controller will  increase the target flow temperature at  the heat source  to compensate and the two conflicting  temperature controls will fight  this is the reason for setting up more  as a temperature limiter than a control  with pure open loop weather compensation  it's more about keeping the flow rates  up and allowing the self-regulation  effect  trvs are slightly better than room stats  as these operate in a control band  these slowly close down as they reach  target temperature  they don't just close down immediately  and can sit in a semi-closed position  and still allow flow through this first  section essentially just says that we  want to use  modulating controls for our heat sources  that's a control that varies the flow  temperature from the heat source  not just switches it on or off these  dramatically increase the efficiency of  heat pumps  and a bit in boilers for more  information on smart stats  have a look at our smart stat video we  wouldn't necessarily advise using trvs  or room stats to turn down  unused rooms or spare rooms either  turning unused rooms right down  or micro zoning gives a particularly  high risk of losing efficiency for heat  pumps  creating too many zones in our system  restricts the system volume  and increases cycles but most  importantly  it increases the flow temperature  required okay this is a key  point to understand throughout the whole  of this video  the lower the flow temperatures inside  your heat source your heat pump or your  gas boiler  the more efficient it is we really want  to target as  low temperature as possible as we know  maximizing the surface area of your  emitters  make sure we absolutely minimize our  flow temperature  closing down radiators obviously  effectively reduces the surface area we  have to emit the heat  and remaining on radiators will have to  run much hotter  in order to compensate for the colder  rooms next door  here's an example we can work out  together let's take this four room house  to keep the mass simple  each room has a 500 watt loss at design  outside temperature of -3  or 2 kilowatts in total and a room  temperature of 21.  they're also each fitted with a mean  water to air temperature dt25  radiator now you don't use two of the  rooms so you put them into setback of 18  degrees celsius  to save energy a quick way to see how  much heat loss this saves  is by working out how much power the  property takes to heat by 1k  at design temperature and multiplied by  our new  average property temperature the  property did have a heat loss of 2  kilowatts with a dt of 24.  this means it require 83.3 watts  per kelvin the new average temperature  of the building  is 19.5 degrees celsius  which would make our new dt 22.5  multiply these together and you can see  the new load would theoretically be  1874 watts if all rooms were similar  heat loss  that's a 6.3 percent less energy loss  so this could be looking from above or a  side view it doesn't really matter we're  turning down our radiators in the unused  rooms to 18  in this specific scenario has saved six  percent  heat loss from the property which sounds  great or is it  remember that's only if your other rooms  do indeed drop to 18 degrees celsius  whilst these other rooms are at 21. this  is quite possible  if you have solid uninsulated external  walls  but for any building with a cavity or  cavity insulation  even if your internal doors are  permanently shut and with no one walking  through them between  rooms they would still have to be very  well insulated  and sealed internal doors which is  unlikely  let alone having fully insulated walls  between each of the rooms  let's say those rooms on a setback  temperature of 18 only drop to 19  degrees celsius  pause the video and work out the total  heat loss from that building  so if we add all our room temperatures  together and divide by 4  this gives us a mean temperature of 20  degrees celsius  if the building has a heat loss of 83.3  watts per kelvin  we multiply this by our dt of 23 to give  a 1916  watt loss this means we've saved 4.2  percent of power or energy  so here i'm suggesting because he is  lost into those cooler rooms  your heat loss isn't quite as low as you  were trying to target  when you were turning down those trvs  yes your radiators in those rooms  aren't on but the other remaining  radiators are having to work much harder  to get those rooms up to temperature and  the result is that you could actually  only be saving four percent efficiency  let's assume the better case for zoning  that the other rooms did drop to 18  degrees celsius  and let's see what the effects are okay  the mass gets a little bit heavy in this  part  so if you want to find out what the  results are in this specific situation  for zoning fast forward to this time  code and find out  now the property was fitted with dt25  radiators  what temperature do you think these same  radiators would have to be  if the adjoining rooms were 18 degrees  celsius  let's say the walls were 2.3 meters by 4  meters  and each room had a 2 meter squared door  first of all we would need to work out  the heat loss into the other adjoining  rooms  2.3 times 8 to account for all the walls  gives  18.4 meters squared take 2 meters  squared for the door  is 16.4 multiplied by our u value of 2  watts per k  is 32.8 multiplied by 3  degrees temperature difference between  the rooms gives 98.4 watts heat loss  take the 2 meter squared internal door  and multiply it by its u value of 8  watts per meter squared  per kelvin this will give 16 watts  multiplied by 3 degrees is 48 watts  this totals 146.4 watts  additional heat loss from the 21 degree  rooms  so this mean water air temperature dt25  radiator  that produces 500 watts will now have to  produce  646.4 watts  if you remember the property required  1874 watts  if these two radiators are inputting  1292  watts the remaining 582 watts  will be emitted into these two cooler  rooms by their radiators with either the  trvs restricting the flow right down  or it could just be a room stat that's  set to 18 that's pulsing the heat on and  off and into the room  to calculate the temperature required to  make a 500 watt radiator  output watts you can rearrange our  radiator conversion factor  using some of the previous principles  you've learned  feel free to pause the video and give it  a go  first let's work out how much power it  has to output  that 646 watts divided by 500  gives 1.292  that's 29.2 percent more power required  from the radiator  we now have to account for a logarithmic  curve of radiators which you might  remember is 1.3  however we're working the other way  around here so rather than going from dt  difference to the power increase we're  going from the power increase  to the dt so we'll have to use the  reciprocal  of 1.3 so we instead  raised to the power of 0.77  remember to find the reciprocal we  divide the number 1 by the number we  want to find the reciprocal of  1 divided by 1.3 is 0.77  we take our 2.92 power increase to the  power of 0.77  which gives 1.22 rounded up  your rad's mean water to air temperature  will have to be  1.22 that's 22 percent  times hotter to output 614 watts  so if the mean water to air temperature  dt was previously 25 degrees c  the new mean water to air temperature  will have to be 30.5 degrees  now with a 21 degree room temperature  our mean water temperature  would have been 46 degrees celsius at  design outside temperature  however it will now need 51.5 degrees  celsius  essentially the point here is that by  turning down or off  zones the remaining on zones will have  to run  much hotter and with a heat pump that  directly means  higher fuel bills take a look at this  cop graph for a mitsubishi ekadan heat  pump  bear in mind this lower line is for a 2  degrees outside temperature  but let's use it anyway as an example if  you run the house  with all the zones open and at the same  temperature of 21 degrees celsius  you would need a flow temperature of  around 46 degrees  which would give you a cop of 2.6  this will consume 769 watts of  electricity  to produce two kilowatts of power from  the heat pump  that's two kilowatts divided by our cop  of 2.6  if you zoned down the property to a heat  loss of 1874 watts  but run at the new required flow  temperature of 51.5  the cop would reduce to 2.3  using the same cop calculation we can  see that you would require  815 watts of power in this scenario  that's six percent more power  requirement despite the property  requiring 6.3 percent less heat  this all fits relatively well with the  rule of thumb that for every k  hotter the heat pump has to run you lose  2.5  efficiency this illustrates the point  clearly that zoning isn't necessarily a  good idea  the efficiency curve for gas heating  isn't quite so steep  but there is still an efficiency curve  nonetheless if you're in a similar  situation but using a gas boiler  if you reference this top graph you'll  see that you could  save approximately four percent  efficiency with these flow temperatures  or even up to 12 efficiency with  different flow temperatures  where the complication comes in with gas  boilers is this lower graph which shows  part  load efficiency that is where the lower  the output  of the gas boiler the higher the  efficiency  we won't go into that today though so  should be considered when choosing a  setback temperature  and how much to zone let's take this one  step further with another example  and assume that the two off rooms in our  scenario were turned completely off to  the frost setting at the trv by our  customer  however assume the two off rooms settled  at 18 degrees c  this would mean the internal and  external walls would have a slightly  different insulative value  what mean water to air temperature would  these radiators require  pause the video and have a go  remembering that our property heat loss  will be 1874.  now this one's actually a little bit  easier to work out the heat requirement  from each radiator we would simply  divide the heat loss by two  each radiator is required to emit 937  watts  937 watts required now divided by the  500  gives a conversion factor of 1.87  1.87 to the power of 0.77 which is the  reciprocal of the power factor for  radiators  is 1.62 our mean water to  air temperature will have to be 62  percent  higher to increase from 500 watt output  to 937 watt output our previous dt25  radiators  will now need to run at dt 40.5  if the room temperature is 21 the  temperature from the heat pump  will now need to be around 64 degrees  celsius  this simply isn't possible for the vast  majority of standard heat pumps  so in this example where the customer's  completely turned off some zones  or radiators the heat pump cop has gone  from 2.6  right the way down to 1.6 and used  52 per percent more power  than if they just left all the radiators  on despite the property losing  6 less heat in real world terms for the  customer  if they were paying say 15 pence per  kilowatt hour  this two kilowatt house in full load  conditions and with all the rooms turned  up to 21  would cost 11.5 p per hour to run  however once turning down two of the  rooms to 18 degrees  the new price per hour to run is 18  pence  despite two of the rooms being three  degrees cooler  and not only will this have a disastrous  effect on cop and fuel bills  the 21 degrees rooms won't ever be able  to actually reach temperature now this  isn't to say you should never zone  there's lots of variables here like  building shape layout  system mass as well as other sources of  heat to consider  however we've been favorable to zoning  with these calculations  as particularly with heat pumps zoning  increases one other rather  large inefficiency that's not accounted  for and that inefficiency  is increased cycling due to built-in  anti-cycling gas boilers only have  minimum losses from cycling  however heat pumps have considerable  losses on startup  as you can see here heat pumps don't  reach maximum efficiency for a while  after they've started  the compressor needs to increase the  pressure enough to evaporate the  refrigerant  and begin the cycle the compressor is  turned on  and initially has a negative efficiency  it then  slowly climbs to its maximum efficiency  over time and the longer it's left at  maximum efficiency  the higher the cop is dragged up  if the unit then turns off this cycle  has to start over  and the result is that the average  efficiency is dragged right back down  one more variable to add to this is that  the compressor is most efficient  at maximum output when the compressor  speed slows  it actually drops in efficiency there's  two ways we can ensure this sits at  maximum output  as much as possible one we ensure we  have as much  volume as possible and two we ensure the  run times are as long as possible  advanced controls often have adjustable  minimum run times or cycle rates built  in  but you can't adjust these with no ill  effect  the wider you set your cycle rates or  time between ons and offs  the wider your temperature swings in  room temperature  conversely the narrower you have your  time bands the more accurate the room  temperature with under an overshoot  yet the less efficient the appliance  additionally to that the lower your  volume which can be caused by zoning  down  the wider you're over an undershoot so  increasing the flow temperature is one  factor  but turning off radiators or underfloor  heating zones also increases this  cycling which is the switching on and  off of the appliance  and this decreasing efficiency is on top  of  our previously calculated figure the  advanced controls built into high  quality heat pumps and high  end boilers are something you'll have to  play with and get used to  and are specific to each manufacturer  they have a lot of adjustable parameters  built in to suit specific  heat source preferences using a  third-party control to send an on or off  signal to these heat sources  and bypassing its natural functionality  is potentially damaging to cop  and running costs if you do you'll have  to set a higher than necessary weather  compensation curve to account for the  fact  the heating is more intermittent and the  energy being lost  from the building is not matched by the  energy going in on a continual basis  this is why you may hear engineers say  you want to leave your heat pump on  all the time but by this they shouldn't  necessarily mean  at full target comfort temperature you  can still have an  off temperature or what's known as a  setback temperature  this again isn't something that's the  same for every scenario property and  heat source  but in the case of a heat pump you want  to have a nice high setback temperature  with advanced weather compensation  rather than turning the heat source  off at night the system just drops to a  setback temperature  let's say it's 9 degrees outside and our  target room temperature is 20 degrees  for example  and our heat pumps flow temperature is  35  if we have pure weather compensation the  flow temperature  will drop to what would be required for  our setback of say  18 degrees celsius which might be a flow  temperature of say  28 degrees because the system will be  warm  the unit will turn off for a while while  the system cools  but will then re-fire to maintain a flow  temperature of 28.  if your curve is set accurately your  property will  cool to 18 but no more this keeps your  walls  pipe work system and thermal mass fed  with thermal energy  if you turned your system completely off  the internal temperature could drop to  below 18 degrees celsius  and the heat source would have to fire  far hotter to replace that energy  that also been lost in the system  especially if you have underfloor  heating  otherwise the room temperature will take  a long time to come up to temperature  once the heating schedule returns to 20  degrees celsius  the heat source will again be able to  keep cooler as the mass of the property  and system has been  fed any kind of room influence or closed  loop control will work against  this again it's not a hard and fast rule  as many variables so if you're a fan of  rules of thumb  this is why it's advised that the  setback temperature for gas boilers  should be no more than three degrees  below your comfort temperature  and two degrees for heat pumps so the  property mass  is fed the flow temperature is kept as  low as possible  and again this depends on lots of other  variables particularly thermal mass  so just to recap heat pumps particularly  need a high volume to run effectively  and efficiently  unless you have better internal  insulation than external insulation  installing zone controls may have the  opposite effect  of the one they're advertised or  intended to have you can reduce this  cycling  by installing things like buffers but  that has an installation cost and a  space cost  and has an efficiency loss in itself  take a look at our video on low boss  headers to find out how  beware there are some situations where  you would or should so  it's really a case-by-case basis and  this is really just to highlight this  other big variable that we have  when deciding to zone and this is really  why i'm not too much of a big fan  of regulation or british standards every  situation  is different and needs a different  engineered approach  [Music]  if you're an end user and could do with  the help with a trained heat geek  check out our interactive map where you  can find engineers that have undergone  our full training and remember  our course unlike others isn't a pay to  pass  so any engineer on our map is fully  tried and tested  if you're an engineer and want to find  out more about our training head over to  heatgeek.com  and don't be worried about all the maths  we build you up to what you've seen here  and we have a full-time 24 7 support  group to help you through  with like-minded engineers if not  join in and join the rides  is there a uh well before i said if not  there was a pause isn't there  no yeah that was not really  it wasn't really right that'll do with  it yes  all right let's go should i get dave to  come help me pack up


00:00:03.830 --> 00:00:06.230 align:start position:0%



00:00:06.230 --> 00:00:08.150 align:start position:0%
@antivirtel commented on GitHub (Mar 27, 2025): Sorry @dirkf, spoke too soon. The VTT file has all the subtitles dumped into the first 2 timecodes, so technically we have it, but it's useless in this form. See below. Can you please check it? <details><summary>VTT subtitles</summary> ```shell $ head -20 20210727-Heat\ Geek-Why\ NOT\ to\ ZONE\ your\ heating\!\!..\ \(SHOCKING\ RESULTS\!\!\).en.vtt WEBVTT Kind: captions Language: en 00:00:00.160 --> 00:00:02.230 align:start position:0% hi guys this is a part of one of our modules from our heat geek online heating design training course please bear in mind this is from very much the advanced section all the trainees that would have got to this part would have done all the math necessary to understand exactly what's going on here however i'm just going to watch this with you and just pause it every once in a while again to explain what's going on [Music] restricting the room temperature with a stat or trv prematurely is like breaking and accelerating at the same time if using room compensation and the trv or room stack closes down prematurely due to being out of sync with this room sensor which can happen over time the room influence controller will increase the target flow temperature at the heat source to compensate and the two conflicting temperature controls will fight this is the reason for setting up more as a temperature limiter than a control with pure open loop weather compensation it's more about keeping the flow rates up and allowing the self-regulation effect trvs are slightly better than room stats as these operate in a control band these slowly close down as they reach target temperature they don't just close down immediately and can sit in a semi-closed position and still allow flow through this first section essentially just says that we want to use modulating controls for our heat sources that's a control that varies the flow temperature from the heat source not just switches it on or off these dramatically increase the efficiency of heat pumps and a bit in boilers for more information on smart stats have a look at our smart stat video we wouldn't necessarily advise using trvs or room stats to turn down unused rooms or spare rooms either turning unused rooms right down or micro zoning gives a particularly high risk of losing efficiency for heat pumps creating too many zones in our system restricts the system volume and increases cycles but most importantly it increases the flow temperature required okay this is a key point to understand throughout the whole of this video the lower the flow temperatures inside your heat source your heat pump or your gas boiler the more efficient it is we really want to target as low temperature as possible as we know maximizing the surface area of your emitters make sure we absolutely minimize our flow temperature closing down radiators obviously effectively reduces the surface area we have to emit the heat and remaining on radiators will have to run much hotter in order to compensate for the colder rooms next door here's an example we can work out together let's take this four room house to keep the mass simple each room has a 500 watt loss at design outside temperature of -3 or 2 kilowatts in total and a room temperature of 21. they're also each fitted with a mean water to air temperature dt25 radiator now you don't use two of the rooms so you put them into setback of 18 degrees celsius to save energy a quick way to see how much heat loss this saves is by working out how much power the property takes to heat by 1k at design temperature and multiplied by our new average property temperature the property did have a heat loss of 2 kilowatts with a dt of 24. this means it require 83.3 watts per kelvin the new average temperature of the building is 19.5 degrees celsius which would make our new dt 22.5 multiply these together and you can see the new load would theoretically be 1874 watts if all rooms were similar heat loss that's a 6.3 percent less energy loss so this could be looking from above or a side view it doesn't really matter we're turning down our radiators in the unused rooms to 18 in this specific scenario has saved six percent heat loss from the property which sounds great or is it remember that's only if your other rooms do indeed drop to 18 degrees celsius whilst these other rooms are at 21. this is quite possible if you have solid uninsulated external walls but for any building with a cavity or cavity insulation even if your internal doors are permanently shut and with no one walking through them between rooms they would still have to be very well insulated and sealed internal doors which is unlikely let alone having fully insulated walls between each of the rooms let's say those rooms on a setback temperature of 18 only drop to 19 degrees celsius pause the video and work out the total heat loss from that building so if we add all our room temperatures together and divide by 4 this gives us a mean temperature of 20 degrees celsius if the building has a heat loss of 83.3 watts per kelvin we multiply this by our dt of 23 to give a 1916 watt loss this means we've saved 4.2 percent of power or energy so here i'm suggesting because he is lost into those cooler rooms your heat loss isn't quite as low as you were trying to target when you were turning down those trvs yes your radiators in those rooms aren't on but the other remaining radiators are having to work much harder to get those rooms up to temperature and the result is that you could actually only be saving four percent efficiency let's assume the better case for zoning that the other rooms did drop to 18 degrees celsius and let's see what the effects are okay the mass gets a little bit heavy in this part so if you want to find out what the results are in this specific situation for zoning fast forward to this time code and find out now the property was fitted with dt25 radiators what temperature do you think these same radiators would have to be if the adjoining rooms were 18 degrees celsius let's say the walls were 2.3 meters by 4 meters and each room had a 2 meter squared door first of all we would need to work out the heat loss into the other adjoining rooms 2.3 times 8 to account for all the walls gives 18.4 meters squared take 2 meters squared for the door is 16.4 multiplied by our u value of 2 watts per k is 32.8 multiplied by 3 degrees temperature difference between the rooms gives 98.4 watts heat loss take the 2 meter squared internal door and multiply it by its u value of 8 watts per meter squared per kelvin this will give 16 watts multiplied by 3 degrees is 48 watts this totals 146.4 watts additional heat loss from the 21 degree rooms so this mean water air temperature dt25 radiator that produces 500 watts will now have to produce 646.4 watts if you remember the property required 1874 watts if these two radiators are inputting 1292 watts the remaining 582 watts will be emitted into these two cooler rooms by their radiators with either the trvs restricting the flow right down or it could just be a room stat that's set to 18 that's pulsing the heat on and off and into the room to calculate the temperature required to make a 500 watt radiator output watts you can rearrange our radiator conversion factor using some of the previous principles you've learned feel free to pause the video and give it a go first let's work out how much power it has to output that 646 watts divided by 500 gives 1.292 that's 29.2 percent more power required from the radiator we now have to account for a logarithmic curve of radiators which you might remember is 1.3 however we're working the other way around here so rather than going from dt difference to the power increase we're going from the power increase to the dt so we'll have to use the reciprocal of 1.3 so we instead raised to the power of 0.77 remember to find the reciprocal we divide the number 1 by the number we want to find the reciprocal of 1 divided by 1.3 is 0.77 we take our 2.92 power increase to the power of 0.77 which gives 1.22 rounded up your rad's mean water to air temperature will have to be 1.22 that's 22 percent times hotter to output 614 watts so if the mean water to air temperature dt was previously 25 degrees c the new mean water to air temperature will have to be 30.5 degrees now with a 21 degree room temperature our mean water temperature would have been 46 degrees celsius at design outside temperature however it will now need 51.5 degrees celsius essentially the point here is that by turning down or off zones the remaining on zones will have to run much hotter and with a heat pump that directly means higher fuel bills take a look at this cop graph for a mitsubishi ekadan heat pump bear in mind this lower line is for a 2 degrees outside temperature but let's use it anyway as an example if you run the house with all the zones open and at the same temperature of 21 degrees celsius you would need a flow temperature of around 46 degrees which would give you a cop of 2.6 this will consume 769 watts of electricity to produce two kilowatts of power from the heat pump that's two kilowatts divided by our cop of 2.6 if you zoned down the property to a heat loss of 1874 watts but run at the new required flow temperature of 51.5 the cop would reduce to 2.3 using the same cop calculation we can see that you would require 815 watts of power in this scenario that's six percent more power requirement despite the property requiring 6.3 percent less heat this all fits relatively well with the rule of thumb that for every k hotter the heat pump has to run you lose 2.5 efficiency this illustrates the point clearly that zoning isn't necessarily a good idea the efficiency curve for gas heating isn't quite so steep but there is still an efficiency curve nonetheless if you're in a similar situation but using a gas boiler if you reference this top graph you'll see that you could save approximately four percent efficiency with these flow temperatures or even up to 12 efficiency with different flow temperatures where the complication comes in with gas boilers is this lower graph which shows part load efficiency that is where the lower the output of the gas boiler the higher the efficiency we won't go into that today though so should be considered when choosing a setback temperature and how much to zone let's take this one step further with another example and assume that the two off rooms in our scenario were turned completely off to the frost setting at the trv by our customer however assume the two off rooms settled at 18 degrees c this would mean the internal and external walls would have a slightly different insulative value what mean water to air temperature would these radiators require pause the video and have a go remembering that our property heat loss will be 1874. now this one's actually a little bit easier to work out the heat requirement from each radiator we would simply divide the heat loss by two each radiator is required to emit 937 watts 937 watts required now divided by the 500 gives a conversion factor of 1.87 1.87 to the power of 0.77 which is the reciprocal of the power factor for radiators is 1.62 our mean water to air temperature will have to be 62 percent higher to increase from 500 watt output to 937 watt output our previous dt25 radiators will now need to run at dt 40.5 if the room temperature is 21 the temperature from the heat pump will now need to be around 64 degrees celsius this simply isn't possible for the vast majority of standard heat pumps so in this example where the customer's completely turned off some zones or radiators the heat pump cop has gone from 2.6 right the way down to 1.6 and used 52 per percent more power than if they just left all the radiators on despite the property losing 6 less heat in real world terms for the customer if they were paying say 15 pence per kilowatt hour this two kilowatt house in full load conditions and with all the rooms turned up to 21 would cost 11.5 p per hour to run however once turning down two of the rooms to 18 degrees the new price per hour to run is 18 pence despite two of the rooms being three degrees cooler and not only will this have a disastrous effect on cop and fuel bills the 21 degrees rooms won't ever be able to actually reach temperature now this isn't to say you should never zone there's lots of variables here like building shape layout system mass as well as other sources of heat to consider however we've been favorable to zoning with these calculations as particularly with heat pumps zoning increases one other rather large inefficiency that's not accounted for and that inefficiency is increased cycling due to built-in anti-cycling gas boilers only have minimum losses from cycling however heat pumps have considerable losses on startup as you can see here heat pumps don't reach maximum efficiency for a while after they've started the compressor needs to increase the pressure enough to evaporate the refrigerant and begin the cycle the compressor is turned on and initially has a negative efficiency it then slowly climbs to its maximum efficiency over time and the longer it's left at maximum efficiency the higher the cop is dragged up if the unit then turns off this cycle has to start over and the result is that the average efficiency is dragged right back down one more variable to add to this is that the compressor is most efficient at maximum output when the compressor speed slows it actually drops in efficiency there's two ways we can ensure this sits at maximum output as much as possible one we ensure we have as much volume as possible and two we ensure the run times are as long as possible advanced controls often have adjustable minimum run times or cycle rates built in but you can't adjust these with no ill effect the wider you set your cycle rates or time between ons and offs the wider your temperature swings in room temperature conversely the narrower you have your time bands the more accurate the room temperature with under an overshoot yet the less efficient the appliance additionally to that the lower your volume which can be caused by zoning down the wider you're over an undershoot so increasing the flow temperature is one factor but turning off radiators or underfloor heating zones also increases this cycling which is the switching on and off of the appliance and this decreasing efficiency is on top of our previously calculated figure the advanced controls built into high quality heat pumps and high end boilers are something you'll have to play with and get used to and are specific to each manufacturer they have a lot of adjustable parameters built in to suit specific heat source preferences using a third-party control to send an on or off signal to these heat sources and bypassing its natural functionality is potentially damaging to cop and running costs if you do you'll have to set a higher than necessary weather compensation curve to account for the fact the heating is more intermittent and the energy being lost from the building is not matched by the energy going in on a continual basis this is why you may hear engineers say you want to leave your heat pump on all the time but by this they shouldn't necessarily mean at full target comfort temperature you can still have an off temperature or what's known as a setback temperature this again isn't something that's the same for every scenario property and heat source but in the case of a heat pump you want to have a nice high setback temperature with advanced weather compensation rather than turning the heat source off at night the system just drops to a setback temperature let's say it's 9 degrees outside and our target room temperature is 20 degrees for example and our heat pumps flow temperature is 35 if we have pure weather compensation the flow temperature will drop to what would be required for our setback of say 18 degrees celsius which might be a flow temperature of say 28 degrees because the system will be warm the unit will turn off for a while while the system cools but will then re-fire to maintain a flow temperature of 28. if your curve is set accurately your property will cool to 18 but no more this keeps your walls pipe work system and thermal mass fed with thermal energy if you turned your system completely off the internal temperature could drop to below 18 degrees celsius and the heat source would have to fire far hotter to replace that energy that also been lost in the system especially if you have underfloor heating otherwise the room temperature will take a long time to come up to temperature once the heating schedule returns to 20 degrees celsius the heat source will again be able to keep cooler as the mass of the property and system has been fed any kind of room influence or closed loop control will work against this again it's not a hard and fast rule as many variables so if you're a fan of rules of thumb this is why it's advised that the setback temperature for gas boilers should be no more than three degrees below your comfort temperature and two degrees for heat pumps so the property mass is fed the flow temperature is kept as low as possible and again this depends on lots of other variables particularly thermal mass so just to recap heat pumps particularly need a high volume to run effectively and efficiently unless you have better internal insulation than external insulation installing zone controls may have the opposite effect of the one they're advertised or intended to have you can reduce this cycling by installing things like buffers but that has an installation cost and a space cost and has an efficiency loss in itself take a look at our video on low boss headers to find out how beware there are some situations where you would or should so it's really a case-by-case basis and this is really just to highlight this other big variable that we have when deciding to zone and this is really why i'm not too much of a big fan of regulation or british standards every situation is different and needs a different engineered approach [Music] if you're an end user and could do with the help with a trained heat geek check out our interactive map where you can find engineers that have undergone our full training and remember our course unlike others isn't a pay to pass so any engineer on our map is fully tried and tested if you're an engineer and want to find out more about our training head over to heatgeek.com and don't be worried about all the maths we build you up to what you've seen here and we have a full-time 24 7 support group to help you through with like-minded engineers if not join in and join the rides is there a uh well before i said if not there was a pause isn't there no yeah that was not really it wasn't really right that'll do with it yes all right let's go should i get dave to come help me pack up 00:00:02.230 --> 00:00:03.830 align:start position:0% hi guys this is a part of one of our modules from our heat geek online heating design training course please bear in mind this is from very much the advanced section all the trainees that would have got to this part would have done all the math necessary to understand exactly what's going on here however i'm just going to watch this with you and just pause it every once in a while again to explain what's going on [Music] restricting the room temperature with a stat or trv prematurely is like breaking and accelerating at the same time if using room compensation and the trv or room stack closes down prematurely due to being out of sync with this room sensor which can happen over time the room influence controller will increase the target flow temperature at the heat source to compensate and the two conflicting temperature controls will fight this is the reason for setting up more as a temperature limiter than a control with pure open loop weather compensation it's more about keeping the flow rates up and allowing the self-regulation effect trvs are slightly better than room stats as these operate in a control band these slowly close down as they reach target temperature they don't just close down immediately and can sit in a semi-closed position and still allow flow through this first section essentially just says that we want to use modulating controls for our heat sources that's a control that varies the flow temperature from the heat source not just switches it on or off these dramatically increase the efficiency of heat pumps and a bit in boilers for more information on smart stats have a look at our smart stat video we wouldn't necessarily advise using trvs or room stats to turn down unused rooms or spare rooms either turning unused rooms right down or micro zoning gives a particularly high risk of losing efficiency for heat pumps creating too many zones in our system restricts the system volume and increases cycles but most importantly it increases the flow temperature required okay this is a key point to understand throughout the whole of this video the lower the flow temperatures inside your heat source your heat pump or your gas boiler the more efficient it is we really want to target as low temperature as possible as we know maximizing the surface area of your emitters make sure we absolutely minimize our flow temperature closing down radiators obviously effectively reduces the surface area we have to emit the heat and remaining on radiators will have to run much hotter in order to compensate for the colder rooms next door here's an example we can work out together let's take this four room house to keep the mass simple each room has a 500 watt loss at design outside temperature of -3 or 2 kilowatts in total and a room temperature of 21. they're also each fitted with a mean water to air temperature dt25 radiator now you don't use two of the rooms so you put them into setback of 18 degrees celsius to save energy a quick way to see how much heat loss this saves is by working out how much power the property takes to heat by 1k at design temperature and multiplied by our new average property temperature the property did have a heat loss of 2 kilowatts with a dt of 24. this means it require 83.3 watts per kelvin the new average temperature of the building is 19.5 degrees celsius which would make our new dt 22.5 multiply these together and you can see the new load would theoretically be 1874 watts if all rooms were similar heat loss that's a 6.3 percent less energy loss so this could be looking from above or a side view it doesn't really matter we're turning down our radiators in the unused rooms to 18 in this specific scenario has saved six percent heat loss from the property which sounds great or is it remember that's only if your other rooms do indeed drop to 18 degrees celsius whilst these other rooms are at 21. this is quite possible if you have solid uninsulated external walls but for any building with a cavity or cavity insulation even if your internal doors are permanently shut and with no one walking through them between rooms they would still have to be very well insulated and sealed internal doors which is unlikely let alone having fully insulated walls between each of the rooms let's say those rooms on a setback temperature of 18 only drop to 19 degrees celsius pause the video and work out the total heat loss from that building so if we add all our room temperatures together and divide by 4 this gives us a mean temperature of 20 degrees celsius if the building has a heat loss of 83.3 watts per kelvin we multiply this by our dt of 23 to give a 1916 watt loss this means we've saved 4.2 percent of power or energy so here i'm suggesting because he is lost into those cooler rooms your heat loss isn't quite as low as you were trying to target when you were turning down those trvs yes your radiators in those rooms aren't on but the other remaining radiators are having to work much harder to get those rooms up to temperature and the result is that you could actually only be saving four percent efficiency let's assume the better case for zoning that the other rooms did drop to 18 degrees celsius and let's see what the effects are okay the mass gets a little bit heavy in this part so if you want to find out what the results are in this specific situation for zoning fast forward to this time code and find out now the property was fitted with dt25 radiators what temperature do you think these same radiators would have to be if the adjoining rooms were 18 degrees celsius let's say the walls were 2.3 meters by 4 meters and each room had a 2 meter squared door first of all we would need to work out the heat loss into the other adjoining rooms 2.3 times 8 to account for all the walls gives 18.4 meters squared take 2 meters squared for the door is 16.4 multiplied by our u value of 2 watts per k is 32.8 multiplied by 3 degrees temperature difference between the rooms gives 98.4 watts heat loss take the 2 meter squared internal door and multiply it by its u value of 8 watts per meter squared per kelvin this will give 16 watts multiplied by 3 degrees is 48 watts this totals 146.4 watts additional heat loss from the 21 degree rooms so this mean water air temperature dt25 radiator that produces 500 watts will now have to produce 646.4 watts if you remember the property required 1874 watts if these two radiators are inputting 1292 watts the remaining 582 watts will be emitted into these two cooler rooms by their radiators with either the trvs restricting the flow right down or it could just be a room stat that's set to 18 that's pulsing the heat on and off and into the room to calculate the temperature required to make a 500 watt radiator output watts you can rearrange our radiator conversion factor using some of the previous principles you've learned feel free to pause the video and give it a go first let's work out how much power it has to output that 646 watts divided by 500 gives 1.292 that's 29.2 percent more power required from the radiator we now have to account for a logarithmic curve of radiators which you might remember is 1.3 however we're working the other way around here so rather than going from dt difference to the power increase we're going from the power increase to the dt so we'll have to use the reciprocal of 1.3 so we instead raised to the power of 0.77 remember to find the reciprocal we divide the number 1 by the number we want to find the reciprocal of 1 divided by 1.3 is 0.77 we take our 2.92 power increase to the power of 0.77 which gives 1.22 rounded up your rad's mean water to air temperature will have to be 1.22 that's 22 percent times hotter to output 614 watts so if the mean water to air temperature dt was previously 25 degrees c the new mean water to air temperature will have to be 30.5 degrees now with a 21 degree room temperature our mean water temperature would have been 46 degrees celsius at design outside temperature however it will now need 51.5 degrees celsius essentially the point here is that by turning down or off zones the remaining on zones will have to run much hotter and with a heat pump that directly means higher fuel bills take a look at this cop graph for a mitsubishi ekadan heat pump bear in mind this lower line is for a 2 degrees outside temperature but let's use it anyway as an example if you run the house with all the zones open and at the same temperature of 21 degrees celsius you would need a flow temperature of around 46 degrees which would give you a cop of 2.6 this will consume 769 watts of electricity to produce two kilowatts of power from the heat pump that's two kilowatts divided by our cop of 2.6 if you zoned down the property to a heat loss of 1874 watts but run at the new required flow temperature of 51.5 the cop would reduce to 2.3 using the same cop calculation we can see that you would require 815 watts of power in this scenario that's six percent more power requirement despite the property requiring 6.3 percent less heat this all fits relatively well with the rule of thumb that for every k hotter the heat pump has to run you lose 2.5 efficiency this illustrates the point clearly that zoning isn't necessarily a good idea the efficiency curve for gas heating isn't quite so steep but there is still an efficiency curve nonetheless if you're in a similar situation but using a gas boiler if you reference this top graph you'll see that you could save approximately four percent efficiency with these flow temperatures or even up to 12 efficiency with different flow temperatures where the complication comes in with gas boilers is this lower graph which shows part load efficiency that is where the lower the output of the gas boiler the higher the efficiency we won't go into that today though so should be considered when choosing a setback temperature and how much to zone let's take this one step further with another example and assume that the two off rooms in our scenario were turned completely off to the frost setting at the trv by our customer however assume the two off rooms settled at 18 degrees c this would mean the internal and external walls would have a slightly different insulative value what mean water to air temperature would these radiators require pause the video and have a go remembering that our property heat loss will be 1874. now this one's actually a little bit easier to work out the heat requirement from each radiator we would simply divide the heat loss by two each radiator is required to emit 937 watts 937 watts required now divided by the 500 gives a conversion factor of 1.87 1.87 to the power of 0.77 which is the reciprocal of the power factor for radiators is 1.62 our mean water to air temperature will have to be 62 percent higher to increase from 500 watt output to 937 watt output our previous dt25 radiators will now need to run at dt 40.5 if the room temperature is 21 the temperature from the heat pump will now need to be around 64 degrees celsius this simply isn't possible for the vast majority of standard heat pumps so in this example where the customer's completely turned off some zones or radiators the heat pump cop has gone from 2.6 right the way down to 1.6 and used 52 per percent more power than if they just left all the radiators on despite the property losing 6 less heat in real world terms for the customer if they were paying say 15 pence per kilowatt hour this two kilowatt house in full load conditions and with all the rooms turned up to 21 would cost 11.5 p per hour to run however once turning down two of the rooms to 18 degrees the new price per hour to run is 18 pence despite two of the rooms being three degrees cooler and not only will this have a disastrous effect on cop and fuel bills the 21 degrees rooms won't ever be able to actually reach temperature now this isn't to say you should never zone there's lots of variables here like building shape layout system mass as well as other sources of heat to consider however we've been favorable to zoning with these calculations as particularly with heat pumps zoning increases one other rather large inefficiency that's not accounted for and that inefficiency is increased cycling due to built-in anti-cycling gas boilers only have minimum losses from cycling however heat pumps have considerable losses on startup as you can see here heat pumps don't reach maximum efficiency for a while after they've started the compressor needs to increase the pressure enough to evaporate the refrigerant and begin the cycle the compressor is turned on and initially has a negative efficiency it then slowly climbs to its maximum efficiency over time and the longer it's left at maximum efficiency the higher the cop is dragged up if the unit then turns off this cycle has to start over and the result is that the average efficiency is dragged right back down one more variable to add to this is that the compressor is most efficient at maximum output when the compressor speed slows it actually drops in efficiency there's two ways we can ensure this sits at maximum output as much as possible one we ensure we have as much volume as possible and two we ensure the run times are as long as possible advanced controls often have adjustable minimum run times or cycle rates built in but you can't adjust these with no ill effect the wider you set your cycle rates or time between ons and offs the wider your temperature swings in room temperature conversely the narrower you have your time bands the more accurate the room temperature with under an overshoot yet the less efficient the appliance additionally to that the lower your volume which can be caused by zoning down the wider you're over an undershoot so increasing the flow temperature is one factor but turning off radiators or underfloor heating zones also increases this cycling which is the switching on and off of the appliance and this decreasing efficiency is on top of our previously calculated figure the advanced controls built into high quality heat pumps and high end boilers are something you'll have to play with and get used to and are specific to each manufacturer they have a lot of adjustable parameters built in to suit specific heat source preferences using a third-party control to send an on or off signal to these heat sources and bypassing its natural functionality is potentially damaging to cop and running costs if you do you'll have to set a higher than necessary weather compensation curve to account for the fact the heating is more intermittent and the energy being lost from the building is not matched by the energy going in on a continual basis this is why you may hear engineers say you want to leave your heat pump on all the time but by this they shouldn't necessarily mean at full target comfort temperature you can still have an off temperature or what's known as a setback temperature this again isn't something that's the same for every scenario property and heat source but in the case of a heat pump you want to have a nice high setback temperature with advanced weather compensation rather than turning the heat source off at night the system just drops to a setback temperature let's say it's 9 degrees outside and our target room temperature is 20 degrees for example and our heat pumps flow temperature is 35 if we have pure weather compensation the flow temperature will drop to what would be required for our setback of say 18 degrees celsius which might be a flow temperature of say 28 degrees because the system will be warm the unit will turn off for a while while the system cools but will then re-fire to maintain a flow temperature of 28. if your curve is set accurately your property will cool to 18 but no more this keeps your walls pipe work system and thermal mass fed with thermal energy if you turned your system completely off the internal temperature could drop to below 18 degrees celsius and the heat source would have to fire far hotter to replace that energy that also been lost in the system especially if you have underfloor heating otherwise the room temperature will take a long time to come up to temperature once the heating schedule returns to 20 degrees celsius the heat source will again be able to keep cooler as the mass of the property and system has been fed any kind of room influence or closed loop control will work against this again it's not a hard and fast rule as many variables so if you're a fan of rules of thumb this is why it's advised that the setback temperature for gas boilers should be no more than three degrees below your comfort temperature and two degrees for heat pumps so the property mass is fed the flow temperature is kept as low as possible and again this depends on lots of other variables particularly thermal mass so just to recap heat pumps particularly need a high volume to run effectively and efficiently unless you have better internal insulation than external insulation installing zone controls may have the opposite effect of the one they're advertised or intended to have you can reduce this cycling by installing things like buffers but that has an installation cost and a space cost and has an efficiency loss in itself take a look at our video on low boss headers to find out how beware there are some situations where you would or should so it's really a case-by-case basis and this is really just to highlight this other big variable that we have when deciding to zone and this is really why i'm not too much of a big fan of regulation or british standards every situation is different and needs a different engineered approach [Music] if you're an end user and could do with the help with a trained heat geek check out our interactive map where you can find engineers that have undergone our full training and remember our course unlike others isn't a pay to pass so any engineer on our map is fully tried and tested if you're an engineer and want to find out more about our training head over to heatgeek.com and don't be worried about all the maths we build you up to what you've seen here and we have a full-time 24 7 support group to help you through with like-minded engineers if not join in and join the rides is there a uh well before i said if not there was a pause isn't there no yeah that was not really it wasn't really right that'll do with it yes all right let's go should i get dave to come help me pack up 00:00:03.830 --> 00:00:06.230 align:start position:0% 00:00:06.230 --> 00:00:08.150 align:start position:0% ``` </details>
Author
Owner

@dirkf commented on GitHub (Mar 27, 2025):

Apparently I broke the patch from #30710 :-(
Let's try again.

@dirkf commented on GitHub (Mar 27, 2025): Apparently I broke the patch from #30710 :-( Let's try again.
Author
Owner

@dirkf commented on GitHub (Apr 4, 2025):

Re-opening to track the outstanding issue, as I haven't yet had time to check this.

@dirkf commented on GitHub (Apr 4, 2025): Re-opening to track the outstanding issue, as I haven't yet had time to check this.
Author
Owner

@tansy commented on GitHub (Aug 15, 2025):

Thought it would be new but this send like issue I have so I write here. If it's not then I will make new issue.

Subtitles don't get downloaded[1][2]

Even if they are[3], which sometimes happen, but it's rare and random, as far as I can tell, it's only .vtt, which is just whole text put together.
Sometimes it's useful as transcript, but most of the time you want to get subtitles not a transcript.

[1]

$ ./youtube-dl --version
2025.05.05

$ UA="Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/127.0.6533.103 Mobile Safari/537.36"

$ ./youtube-dl --user-agent "$UA" --sub-lang en --write-auto-sub --sub-format srt --skip-download 'https://www.youtube.com/watch?v=JeLtoihGHYI'
[youtube] JeLtoihGHYI: Downloading webpage
[youtube] JeLtoihGHYI: Downloading TVHTML5 API JSON
[youtube] JeLtoihGHYI: Downloading API JSON
WARNING: No subtitle format found matching "srt" for language en, using vtt
[info] Writing video subtitles to: Women Are Retarded - Part 1-JeLtoihGHYI.en.vtt
WARNING: Unable to download subtitle for "en": Unable to download webpage: HTTP Error 429: Too Many Requests (caused by HTTPError()); please report this issue on https://github.com/ytdl-org/youtube-dl/issues , using the appropriate issue template. Make sure you are using the latest version; type  youtube-dl -U  to update. Be sure to call youtube-dl with the --verbose option and include the complete output.

$ ls *.vtt
ls: cannot access *.vtt: No such file or directory

[2]

$ ./youtube-dl -v --user-agent "$UA" --sub-lang en --write-auto-sub --sub-format srt --skip-download 'https://www.youtube.com/watch?v=JeLtoihGHYI'
[debug] System config: []
[debug] User config: []
[debug] Custom config: []
[debug] Command-line args: [u'-v', u'--user-agent', u'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/127.0.6533.103 Mobile Safari/537.36', u'--sub-lang', u'en', u'--write-auto-sub', u'--sub-format', u'srt', u'--skip-download', u'https://www.youtube.com/watch?v=JeLtoihGHYI']
[debug] Encodings: locale UTF-8, fs UTF-8, out UTF-8, pref UTF-8
[debug] youtube-dl version 2025.05.05 [a084c80f7] (single file build)
[debug] ** This version was built from the latest master code at https://github.com/ytdl-org/youtube-dl.
[debug] ** For support, visit the main site.
[debug] Python 2.7.11 (CPython i686 32bit) - OpenSSL 1.0.1e 11 Feb 2013 - glibc 2.0
[debug] exe versions: ffmpeg N-96078-g9fe07908c3-sherpya
[debug] Proxy map: {}
[youtube] JeLtoihGHYI: Downloading webpage
[youtube] JeLtoihGHYI: Downloading TVHTML5 API JSON
[debug] Loading youtube-nsig.6b03aad7-phone from cache
[debug] [youtube] Decrypted nsig BwYsXbltyKq5XaxGKp => JqmI5h0OzD860Q
[debug] [youtube] Decrypted nsig dzAW5kBNO3zJnAYA-J => hkNuVnSkYXwmmg
[youtube] JeLtoihGHYI: Downloading API JSON
WARNING: No subtitle format found matching "srt" for language en, using vtt
[debug] Default format spec: bestvideo+bestaudio/best
[info] Writing video subtitles to: Women Are Retarded - Part 1-JeLtoihGHYI.en.vtt
WARNING: Unable to download subtitle for "en": Unable to download webpage: HTTP Error 429: Too Many Requests (caused by HTTPError()); please report this issue on https://github.com/ytdl-org/youtube-dl/issues , using the appropriate issue template. Make sure you are using the latest version; type  youtube-dl -U  to update. Be sure to call youtube-dl with the --verbose option and include the complete output.

$ ls *.vtt
ls: cannot access *.vtt: No such file or directory

Even if they are, which sometimes happen, it's only vtt, which is just whole text put together.

[3]

$ ./youtube-dl -v --user-agent "$UA" --sub-lang en --write-auto-sub --sub-format srt --skip-download 'https://www.youtube.com/watch?v=JeLtoihGHYI'
[debug] System config: []
[debug] User config: []
[debug] Custom config: []
[debug] Command-line args: [u'-v', u'--user-agent', u'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/127.0.6533.103 Mobile Safari/537.36', u'--sub-lang', u'en', u'--write-auto-sub', u'--sub-format', u'srt', u'--skip-download', u'https://www.youtube.com/watch?v=JeLtoihGHYI']
[debug] Encodings: locale UTF-8, fs UTF-8, out UTF-8, pref UTF-8
[debug] youtube-dl version 2025.05.05 [a084c80f7] (single file build)
[debug] ** This version was built from the latest master code at https://github.com/ytdl-org/youtube-dl.
[debug] ** For support, visit the main site.
[debug] Python 2.7.11 (CPython i686 32bit) - OpenSSL 1.0.1e 11 Feb 2013 - glibc 2.0
[debug] exe versions: ffmpeg N-96078-g9fe07908c3-sherpya
[debug] Proxy map: {}
[youtube] JeLtoihGHYI: Downloading webpage
[youtube] JeLtoihGHYI: Downloading TVHTML5 API JSON
[debug] Loading youtube-nsig.6b03aad7-phone from cache
[debug] [youtube] Decrypted nsig ky21AUHPWuOUtmKyPa => wW_UXsluh401fg
[debug] [youtube] Decrypted nsig M4YSnfegSvkBICEfuV => vD5w3zG3R-vw8w
[youtube] JeLtoihGHYI: Downloading API JSON
WARNING: No subtitle format found matching "srt" for language en, using vtt
[debug] Default format spec: bestvideo+bestaudio/best
[info] Writing video subtitles to: Women Are Retarded - Part 1-JeLtoihGHYI.en.vtt

Sometimes it's useful as transcript, but most of the time you want to get subtitles not a transcript.

@tansy commented on GitHub (Aug 15, 2025): Thought it would be new but this send like issue I have so I write here. If it's not then I will make new issue. Subtitles don't get downloaded[1][2] Even if they are[3], which sometimes happen, but it's rare and random, as far as I can tell, it's only .vtt, which is just whole text put together. Sometimes it's useful as transcript, but most of the time you want to get subtitles not a transcript. [1] ``` $ ./youtube-dl --version 2025.05.05 $ UA="Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/127.0.6533.103 Mobile Safari/537.36" $ ./youtube-dl --user-agent "$UA" --sub-lang en --write-auto-sub --sub-format srt --skip-download 'https://www.youtube.com/watch?v=JeLtoihGHYI' [youtube] JeLtoihGHYI: Downloading webpage [youtube] JeLtoihGHYI: Downloading TVHTML5 API JSON [youtube] JeLtoihGHYI: Downloading API JSON WARNING: No subtitle format found matching "srt" for language en, using vtt [info] Writing video subtitles to: Women Are Retarded - Part 1-JeLtoihGHYI.en.vtt WARNING: Unable to download subtitle for "en": Unable to download webpage: HTTP Error 429: Too Many Requests (caused by HTTPError()); please report this issue on https://github.com/ytdl-org/youtube-dl/issues , using the appropriate issue template. Make sure you are using the latest version; type youtube-dl -U to update. Be sure to call youtube-dl with the --verbose option and include the complete output. $ ls *.vtt ls: cannot access *.vtt: No such file or directory ``` [2] ``` $ ./youtube-dl -v --user-agent "$UA" --sub-lang en --write-auto-sub --sub-format srt --skip-download 'https://www.youtube.com/watch?v=JeLtoihGHYI' [debug] System config: [] [debug] User config: [] [debug] Custom config: [] [debug] Command-line args: [u'-v', u'--user-agent', u'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/127.0.6533.103 Mobile Safari/537.36', u'--sub-lang', u'en', u'--write-auto-sub', u'--sub-format', u'srt', u'--skip-download', u'https://www.youtube.com/watch?v=JeLtoihGHYI'] [debug] Encodings: locale UTF-8, fs UTF-8, out UTF-8, pref UTF-8 [debug] youtube-dl version 2025.05.05 [a084c80f7] (single file build) [debug] ** This version was built from the latest master code at https://github.com/ytdl-org/youtube-dl. [debug] ** For support, visit the main site. [debug] Python 2.7.11 (CPython i686 32bit) - OpenSSL 1.0.1e 11 Feb 2013 - glibc 2.0 [debug] exe versions: ffmpeg N-96078-g9fe07908c3-sherpya [debug] Proxy map: {} [youtube] JeLtoihGHYI: Downloading webpage [youtube] JeLtoihGHYI: Downloading TVHTML5 API JSON [debug] Loading youtube-nsig.6b03aad7-phone from cache [debug] [youtube] Decrypted nsig BwYsXbltyKq5XaxGKp => JqmI5h0OzD860Q [debug] [youtube] Decrypted nsig dzAW5kBNO3zJnAYA-J => hkNuVnSkYXwmmg [youtube] JeLtoihGHYI: Downloading API JSON WARNING: No subtitle format found matching "srt" for language en, using vtt [debug] Default format spec: bestvideo+bestaudio/best [info] Writing video subtitles to: Women Are Retarded - Part 1-JeLtoihGHYI.en.vtt WARNING: Unable to download subtitle for "en": Unable to download webpage: HTTP Error 429: Too Many Requests (caused by HTTPError()); please report this issue on https://github.com/ytdl-org/youtube-dl/issues , using the appropriate issue template. Make sure you are using the latest version; type youtube-dl -U to update. Be sure to call youtube-dl with the --verbose option and include the complete output. $ ls *.vtt ls: cannot access *.vtt: No such file or directory ``` Even if they are, which sometimes happen, it's only vtt, which is just whole text put together. [3] ``` $ ./youtube-dl -v --user-agent "$UA" --sub-lang en --write-auto-sub --sub-format srt --skip-download 'https://www.youtube.com/watch?v=JeLtoihGHYI' [debug] System config: [] [debug] User config: [] [debug] Custom config: [] [debug] Command-line args: [u'-v', u'--user-agent', u'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/127.0.6533.103 Mobile Safari/537.36', u'--sub-lang', u'en', u'--write-auto-sub', u'--sub-format', u'srt', u'--skip-download', u'https://www.youtube.com/watch?v=JeLtoihGHYI'] [debug] Encodings: locale UTF-8, fs UTF-8, out UTF-8, pref UTF-8 [debug] youtube-dl version 2025.05.05 [a084c80f7] (single file build) [debug] ** This version was built from the latest master code at https://github.com/ytdl-org/youtube-dl. [debug] ** For support, visit the main site. [debug] Python 2.7.11 (CPython i686 32bit) - OpenSSL 1.0.1e 11 Feb 2013 - glibc 2.0 [debug] exe versions: ffmpeg N-96078-g9fe07908c3-sherpya [debug] Proxy map: {} [youtube] JeLtoihGHYI: Downloading webpage [youtube] JeLtoihGHYI: Downloading TVHTML5 API JSON [debug] Loading youtube-nsig.6b03aad7-phone from cache [debug] [youtube] Decrypted nsig ky21AUHPWuOUtmKyPa => wW_UXsluh401fg [debug] [youtube] Decrypted nsig M4YSnfegSvkBICEfuV => vD5w3zG3R-vw8w [youtube] JeLtoihGHYI: Downloading API JSON WARNING: No subtitle format found matching "srt" for language en, using vtt [debug] Default format spec: bestvideo+bestaudio/best [info] Writing video subtitles to: Women Are Retarded - Part 1-JeLtoihGHYI.en.vtt ``` Sometimes it's useful as transcript, but most of the time you want to get subtitles not a transcript.
Author
Owner

@dirkf commented on GitHub (Aug 16, 2025):

What do you mean by "whole text put together"? Is that specific to certain videos or general?

There is a known YT problem where the last line of timed text gets repeated as the first line for the next timecode, which can look OK on the YT player but wrong elsewhere, AIUI.

The 429 problem, which I can reproduce more often than not with --user-agent 'Mozilla/5.0' is yt-dlp/yt-dlp#13831:

  • even impersonation, which is not achievable here because of dependencies (#33050), doesn't solve the problem
  • auto-translated caps may be especially affected
  • reduce the frequency of subtitle downloads.

Maybe we need to re-check the subtitle requests that the YT player itself is sending?

@dirkf commented on GitHub (Aug 16, 2025): What do you mean by "whole text put together"? Is that specific to certain videos or general? There is a known YT problem where the last line of timed text gets repeated as the first line for the next timecode, which can look OK on the YT player but wrong elsewhere, AIUI. The 429 problem, which I can reproduce more often than not with `--user-agent 'Mozilla/5.0'` is yt-dlp/yt-dlp#13831: * even [_impersonation_](https://github.com/yt-dlp/yt-dlp#impersonation), which is not achievable here because of dependencies (#33050), doesn't solve the problem * auto-translated caps may be especially affected * reduce the frequency of subtitle downloads. Maybe we need to re-check the subtitle requests that the YT player itself is sending?
Author
Owner

@tansy commented on GitHub (Aug 19, 2025):

What do you mean by "whole text put together"? Is that specific to certain videos or general?

When trying to get subtitles vtt is downloaded:

$ youtube-dl --user-agent "$UA" --sub-lang en --write-auto-sub --sub-format srt --skip-download https://www.youtube.com/watch?v=Vw1LjI5GMb4
[youtube] Vw1LjI5GMb4: Downloading webpage
[youtube] Vw1LjI5GMb4: Downloading TVHTML5 API JSON
[youtube] Vw1LjI5GMb4: Downloading API JSON
WARNING: No subtitle format found matching "srt" for language en, using vtt
[info] Writing video subtitles to: Scientists Confirm Easter Island & America Trade #ancientmysteries #archaeology #science-Vw1LjI5GMb4.en.vtt

$ cat *.vtt

WEBVTT
Kind: captions
Language: en

00:00:00.080 --> 00:00:01.670 align:start position:0%

scientists <00:00:00.086><c>just </c><00:00:00.092><c>confirmed </c><00:00:00.098><c>there </c><00:00:00.104><c>was </c><00:00:00.110><c>some  </c><00:00:00.116><c>form </c><00:00:00.122><c>of </c><00:00:00.128><c>trade </c><00:00:00.134><c>between </c

00:00:01.670 --> 00:00:03.510 align:start position:0%
scientists just confirmed there was some     20th a team of archaeologists published  a paper stating that they had found  signs of sweet potatoes bread fruit and  ginger on


00:00:03.510 --> 00:00:05.789 align:start position:0%


00:00:05.789 --> 00:00:07.510 align:start position:0%

That's what I mean by 'whole text put together' - at 10'th line of vtt it contains all subtitles text in one lump, without timestamps nor even new lines.
There is no srt to be found, which would look like this:

1
00:00:01.670 --> 00:00:03.510
scientists just confirmed there was some 

2
00:00:03.510 --> 00:00:05.789
form of trade between Easter Island and

3
00:00:05.789 --> 00:00:07.510
South America in ancient times on March
@tansy commented on GitHub (Aug 19, 2025): > What do you mean by "whole text put together"? Is that specific to certain videos or general? When trying to get subtitles vtt is downloaded: ``` $ youtube-dl --user-agent "$UA" --sub-lang en --write-auto-sub --sub-format srt --skip-download https://www.youtube.com/watch?v=Vw1LjI5GMb4 [youtube] Vw1LjI5GMb4: Downloading webpage [youtube] Vw1LjI5GMb4: Downloading TVHTML5 API JSON [youtube] Vw1LjI5GMb4: Downloading API JSON WARNING: No subtitle format found matching "srt" for language en, using vtt [info] Writing video subtitles to: Scientists Confirm Easter Island & America Trade #ancientmysteries #archaeology #science-Vw1LjI5GMb4.en.vtt ``` $ cat *.vtt ``` WEBVTT Kind: captions Language: en 00:00:00.080 --> 00:00:01.670 align:start position:0% scientists <00:00:00.086><c>just </c><00:00:00.092><c>confirmed </c><00:00:00.098><c>there </c><00:00:00.104><c>was </c><00:00:00.110><c>some </c><00:00:00.116><c>form </c><00:00:00.122><c>of </c><00:00:00.128><c>trade </c><00:00:00.134><c>between </c 00:00:01.670 --> 00:00:03.510 align:start position:0% scientists just confirmed there was some 20th a team of archaeologists published a paper stating that they had found signs of sweet potatoes bread fruit and ginger on 00:00:03.510 --> 00:00:05.789 align:start position:0% 00:00:05.789 --> 00:00:07.510 align:start position:0% ``` That's what I mean by 'whole text put together' - at 10'th line of vtt it contains all subtitles text in one lump, without timestamps nor even new lines. There is no srt to be found, which would look like this: ``` 1 00:00:01.670 --> 00:00:03.510 scientists just confirmed there was some 2 00:00:03.510 --> 00:00:05.789 form of trade between Easter Island and 3 00:00:05.789 --> 00:00:07.510 South America in ancient times on March ```
Author
Owner

@dirkf commented on GitHub (Aug 21, 2025):

According to https://github.com/yt-dlp/yt-dlp/issues/13831#issuecomment-3211871582, we have to support srt subs (easy enough, now that they're available) and then ask for the automatic captions in srt format.

@dirkf commented on GitHub (Aug 21, 2025): According to https://github.com/yt-dlp/yt-dlp/issues/13831#issuecomment-3211871582, we have to support srt subs (easy enough, now that they're available) and then ask for the automatic captions in srt format.
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
starred/youtube-dl-ytdl-org#27028
No description provided.