As an aside, hats off to Google to being able to serve an 11 year old video with no noticeable delay from what must be the coldest of caches.
As an aside, hats off to Google to being able to serve an 11 year old video with no noticeable delay from what must be the coldest of caches.
You could try downloading different audio formats and see if any of the available ones contain non-garbled audio.
For example:
yt-dlp -F "https://youtube.com/watch?v=a28_aXgrgXE"
Output: [youtube] Extracting URL: https://youtube.com/watch?v=a28_aXgrgXE
[youtube] a28_aXgrgXE: Downloading webpage
[youtube] a28_aXgrgXE: Downloading ios player API JSON
[youtube] a28_aXgrgXE: Downloading player 62ccfae7
WARNING: [youtube] a28_aXgrgXE: nsig extraction failed: Some formats may be missing
n = l9bNLKrDBBdCJtknGqU ; player = https://www.youtube.com/s/player/62ccfae7/player_ias.vflset/en_US/base.js
WARNING: [youtube] a28_aXgrgXE: nsig extraction failed: Some formats may be missing
n = Z-MlQqu4ClRjI62sqw_ ; player = https://www.youtube.com/s/player/62ccfae7/player_ias.vflset/en_US/base.js
[youtube] a28_aXgrgXE: Downloading m3u8 information
[youtube] a28_aXgrgXE: Downloading MPD manifest
[info] Available formats for a28_aXgrgXE:
ID EXT RESOLUTION FPS CH │ FILESIZE TBR PROTO │ VCODEC VBR ACODEC ABR ASR MORE INFO
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
sb2 mhtml 48x27 1 │ mhtml │ images storyboard
sb1 mhtml 33x45 1 │ mhtml │ images storyboard
sb0 mhtml 67x90 1 │ mhtml │ images storyboard
233 mp4 audio only │ m3u8 │ audio only unknown Default
234 mp4 audio only │ m3u8 │ audio only unknown Default
139-dash m4a audio only │ 427.60KiB 48k dash │ audio only mp4a.40.5 48k 22k DASH audio, m4a_dash
139 m4a audio only 1 │ 427.60KiB 48k https │ audio only mp4a.40.5 48k 22k low, m4a_dash
140-dash m4a audio only │ 853.17KiB 96k dash │ audio only mp4a.40.2 96k 44k DASH audio, m4a_dash
251 webm audio only │ 851.41KiB 99k dash │ audio only opus 99k 48k DASH audio, webm_dash
140 m4a audio only 1 │ 853.17KiB 95k https │ audio only mp4a.40.2 95k 44k medium, m4a_dash
160 mp4 108x144 30 │ ~962.40KiB 108k dash │ avc1.4d400b 108k video only DASH video, mp4_dash
269 mp4 108x144 30 │ ~ 1.43MiB 164k m3u8 │ avc1.4D400B 164k video only
278 webm 108x144 30 │ ~846.56KiB 95k dash │ vp9 95k video only DASH video, webm_dash
133 mp4 180x240 30 │ ~ 2.11MiB 242k dash │ avc1.4d400c 242k video only DASH video, mp4_dash
229 mp4 180x240 30 │ ~ 2.65MiB 305k m3u8 │ avc1.4D400C 305k video only
242 webm 180x240 30 │ ~ 1.92MiB 220k dash │ vp9 220k video only DASH video, webm_dash
134-dash mp4 270x360 30 │ 3.32MiB 459k dash │ avc1.4d4014 459k video only DASH video, mp4_dash
230 mp4 270x360 30 │ ~ 5.07MiB 583k m3u8 │ avc1.4D4014 583k video only
134 mp4 270x360 30 │ 3.32MiB 380k https │ avc1.4D4014 380k video only 240p, mp4_dash
243 webm 270x360 30 │ ~ 3.53MiB 406k dash │ vp9 406k video only DASH video, webm_dash
135 mp4 360x480 30 │ ~ 10.05MiB 1155k dash │ avc1.4d400b 1155k video only DASH video, mp4_dash
231 mp4 360x480 30 │ ~ 11.43MiB 1313k m3u8 │ avc1.4D400B 1313k video only
244 webm 360x480 30 │ ~ 6.55MiB 753k dash │ vp9 753k video only DASH video, webm_dash
And then download each of the "audio only" entries from the table. In the case of the table for the video I chose: yt-dlp -f 233 -o "%(id)s.%(format_id)s.%(ext)s" "https://youtube.com/watch?v=a28_aXgrgXE"
yt-dlp -f 234 -o "%(id)s.%(format_id)s.%(ext)s" "https://youtube.com/watch?v=a28_aXgrgXE"
yt-dlp -f 139-dash -o "%(id)s.%(format_id)s.%(ext)s" "https://youtube.com/watch?v=a28_aXgrgXE"
yt-dlp -f 139 -o "%(id)s.%(format_id)s.%(ext)s" "https://youtube.com/watch?v=a28_aXgrgXE"
yt-dlp -f 140-dash -o "%(id)s.%(format_id)s.%(ext)s" "https://youtube.com/watch?v=a28_aXgrgXE"
yt-dlp -f 251 -o "%(id)s.%(format_id)s.%(ext)s" "https://youtube.com/watch?v=a28_aXgrgXE"
yt-dlp -f 140 -o "%(id)s.%(format_id)s.%(ext)s" "https://youtube.com/watch?v=a28_aXgrgXE"
Here I used the '-f' option to choose each of the 'audio only' formats available for the example video, and then I used the '-o' flag to specify a custom format string for the output files so that the file names include the format id making them unique from each other and corresponding to the entries in the original table.This gives me files containing each of the audio formats that were available from YouTube.
-rw-r--r-- 1 user user 437246 Oct 9 2013 a28_aXgrgXE.139-dash.m4a
-rw-r--r-- 1 user user 437246 Oct 9 2013 a28_aXgrgXE.139.m4a
-rw-r--r-- 1 user user 713133 Oct 9 2013 a28_aXgrgXE.140-dash.m4a
-rw-r--r-- 1 user user 872935 Oct 9 2013 a28_aXgrgXE.140.m4a
-rw-r--r-- 1 user user 441481 Oct 9 2013 a28_aXgrgXE.233.mp4
-rw-r--r-- 1 user user 881428 Oct 9 2013 a28_aXgrgXE.234.mp4
-rw-r--r-- 1 user user 711273 Jul 22 2019 a28_aXgrgXE.251.webm
The timestamps of the files are set by yt-dlp to correspond to timestamps it got from YouTube.It might be worth to be careful about downloading alternate format versions of too many videos. I could imagine that downloading alternate formats of too many videos from YouTube could trigger something on their side to make them think you are a bot or something. Of course that's just speculation and I don't know if YouTube actually does that. Hopefully doing it for a single video won't get your IP banned by YouTube.