Open Shituation opened 1 year ago
Same here; a more simplified sample command line and result to reproduce the issue is as follows: I have a batch (.cmd in Windows), downloading multiple playlists' updates. When the issue first occured, I have added .yt-dlp.exe -U as the first command, which did not help. I just have created a single video command to ease reproduction.
Additional info: youtube-dl shows the same error without -v option; a subsequent attempt with -v added suddenly downloaded the video. So it might be hard to reproduce. Suggestion: Can that be due to manfest.googlevideos.com temporarily being unreachable? (I guess that from youtube-dl's verbose output when it worked)
My error sample:
...> .\yt-dlp.exe -v https://youtube.com/watch?v=hrpVKlj2QI0 [debug] Command-line config: ['-v', 'https://youtube.com/watch?v=hrpVKlj2QI0'] [debug] Encodings: locale cp1252, fs utf-8, pref cp1252, out utf-8, error utf-8, screen utf-8 [debug] yt-dlp version 2023.01.06 [6becd25] (win_exe) [debug] Python 3.8.10 (CPython AMD64 64bit) - Windows-10-10.0.22621-SP0 (OpenSSL 1.1.1k 25 Mar 2021) [debug] exe versions: ffmpeg N-109820-g2c4dcbd66b-20230210 (setts), ffprobe N-109820-g2c4dcbd66b-20230210, phantomjs 2.1.1 [debug] Optional libraries: Cryptodome-3.16.0, brotli-1.0.9, certifi-2022.12.07, mutagen-1.46.0, sqlite3-2.6.0, websockets-10.4 [debug] Proxy map: {} [debug] Loaded 1760 extractors [youtube] Extracting URL: https://youtube.com/watch?v=hrpVKlj2QI0 [youtube] hrpVKlj2QI0: Downloading webpage [youtube] hrpVKlj2QI0: Downloading android player API JSON [youtube] hrpVKlj2QI0: Downloading MPD manifest ERROR: [youtube] hrpVKlj2QI0: Unable to extract uploader id; please report this issue on https://github.com/yt-dlp/yt-dlp/issues?q= , filling out the appropriate issue template. Confirm you are on the latest version using yt-dlp -U
File "yt_dlp\extractor\common.py", line 680, in extract File "yt_dlp\extractor\youtube.py", line 4049, in _real_extract File "yt_dlp\extractor\common.py", line 1228, in _search_regex
Got the same issue here
I'm having the same issue here. Using youtube-dl version 2021.12.17
It seems that youtube might have changed something internally.
youtube-dl --verbose https://www.youtube.com/watch\?v\=y6_TOFy3k6k
[debug] System config: []
[debug] User config: []
[debug] Custom config: []
[debug] Command-line args: ['--verbose', 'https://www.youtube.com/watch?v=y6_TOFy3k6k']
[debug] Encodings: locale UTF-8, fs utf-8, out utf-8, pref UTF-8
[debug] youtube-dl version 2021.12.17
[debug] Python version 3.10.9 (CPython) - Linux-6.1.12-zen1-1-zen-x86_64-with-glibc2.37
[debug] exe versions: ffmpeg 5.1.2, ffprobe 5.1.2, rtmpdump 2.4
[debug] Proxy map: {}
[youtube] y6_TOFy3k6k: Downloading webpage
ERROR: Unable to extract uploader id; please report this issue on https://yt-dl.org/bug . Make sure you are using the latest version; type youtube-dl -U to update. Be sure to call youtube-dl with the --verbose flag and include its complete output.
Traceback (most recent call last):
File "/usr/local/bin/youtube-dl/youtube_dl/YoutubeDL.py", line 815, in wrapper
return func(self, *args, **kwargs)
File "/usr/local/bin/youtube-dl/youtube_dl/YoutubeDL.py", line 836, in __extract_info
ie_result = ie.extract(url)
File "/usr/local/bin/youtube-dl/youtube_dl/extractor/common.py", line 534, in extract
ie_result = self._real_extract(url)
File "/usr/local/bin/youtube-dl/youtube_dl/extractor/youtube.py", line 1794, in _real_extract
'uploader_id': self._search_regex(r'/(?:channel|user)/([^/?&#]+)', owner_profile_url, 'uploader id') if owner_profile_url else None,
File "/usr/local/bin/youtube-dl/youtube_dl/extractor/common.py", line 1012, in _search_regex
raise RegexNotFoundError('Unable to extract %s' % _name)
youtube_dl.utils.RegexNotFoundError: Unable to extract uploader id; please report this issue on https://yt-dl.org/bug . Make sure you are using the latest version; type youtube-dl -U to update. Be sure to call youtube-dl with the --verbose flag and include its complete output.
Its probably a change on youtube's side and the indicated regex in the CLI, is obsolete now. Not a coder here so I cannot help.
It works for me from time to time
I use one script in PyCharm and it works one time out of five
Line 2125 in youtube.py has to be changed into:
'uploader_id': self._search_regex(r'/(?:channel/|user/|@)([^/?&#]+)', owner_profile_url, 'uploader id', default=None),
Then no error: ποΈ
youtube-dl --ignore-config -v -F 3h5-QPbKoVg
[debug] System config: []
[debug] User config: []
[debug] Custom config: []
[debug] Command-line args: ['--ignore-config', '-v', '-F', '3h5-QPbKoVg']
[debug] Encodings: locale UTF-8, fs utf-8, out utf-8, pref UTF-8
[debug] youtube-dl version 2023.02.16
[debug] Python version 3.8.10 (CPython) - Linux-5.4.0-139-generic-x86_64-with-glibc2.29
[debug] exe versions: ffmpeg N-109587-gfc263f073e-Nico-20230113, ffprobe N-109587-gfc263f073e-Nico-20230113, phantomjs 2.1.1, rtmpdump 2.4
[debug] Proxy map: {}
[youtube] 3h5-QPbKoVg: Downloading webpage
[debug] [youtube] Decrypted nsig EYI-o3YE_G0-1ue => nP7IbZDbhgRJ1Q
[debug] [youtube] Decrypted nsig tdM1CX28FOA3Sbj => rEQZ02EpO5AMwg
[info] Available formats for 3h5-QPbKoVg:
format code extension resolution note
249 webm audio only tiny 45k , webm_dash container, opus @ 45k (48000Hz), 28.44MiB
250 webm audio only tiny 59k , webm_dash container, opus @ 59k (48000Hz), 37.15MiB
251 webm audio only tiny 121k , webm_dash container, opus @121k (48000Hz), 76.11MiB
140 m4a audio only tiny 129k , m4a_dash container, mp4a.40.2@129k (44100Hz), 80.87MiB
160 mp4 256x144 144p 13k , mp4_dash container, avc1.4d400c@ 13k, 30fps, video only, 8.37MiB
278 webm 256x144 144p 19k , webm_dash container, vp9@ 19k, 30fps, video only, 12.24MiB
133 mp4 426x240 240p 21k , mp4_dash container, avc1.4d4015@ 21k, 30fps, video only, 13.53MiB
242 webm 426x240 240p 25k , webm_dash container, vp9@ 25k, 30fps, video only, 16.15MiB
134 mp4 640x360 360p 35k , mp4_dash container, avc1.4d401e@ 35k, 30fps, video only, 21.92MiB
243 webm 640x360 360p 98k , webm_dash container, vp9@ 98k, 30fps, video only, 61.30MiB
135 mp4 854x480 480p 49k , mp4_dash container, avc1.4d401f@ 49k, 30fps, video only, 31.19MiB
244 webm 854x480 480p 96k , webm_dash container, vp9@ 96k, 30fps, video only, 60.58MiB
136 mp4 1280x720 720p 124k , mp4_dash container, avc1.4d401f@ 124k, 30fps, video only, 77.71MiB
298 mp4 1280x720 720p60 175k , mp4_dash container, avc1.4d4020@ 175k, 60fps, video only, 109.36MiB
247 webm 1280x720 720p 214k , webm_dash container, vp9@ 214k, 30fps, video only, 133.80MiB
302 webm 1280x720 720p60 300k , webm_dash container, vp9@ 300k, 60fps, video only, 187.91MiB
299 mp4 1920x1080 1080p60 269k , mp4_dash container, avc1.64002a@ 269k, 60fps, video only, 168.53MiB
303 webm 1920x1080 1080p60 473k , webm_dash container, vp9@ 473k, 60fps, video only, 295.79MiB
18 mp4 640x360 360p 163k , avc1.42001E, 30fps, mp4a.40.2 (44100Hz)
22 mp4 1280x720 720p 253k , avc1.64001F, 30fps, mp4a.40.2 (44100Hz) (best)
Note: OP's verbose log is from yt-dlp, not youtube-dl...
Damn... why didn't those guys change the name to something less confusing.
Sorry.
Working in git master:
$ python -m youtube_dl -o '%(uploader_id)s' --get-filename 'https://www.youtube.com/watch?v=y6_TOFy3k6k'
UCJ6o36XL0CpYb6U5dNBiXHQ
$
for yt-dlp a fix is already documented and I could fix it by building the latest version; the exact fix of the regex, performed by @bashonly is described here
Actually I can't reproduce any error for yt-dl release or yt-dlp 2022.11.22 (regression?), both giving UCJ6o36XL0CpYb6U5dNBiXHQ
with no error for y6_TOFy3k6k
. Nor do I get an error with 3h5-QPbKoVg
in any of the three. If anyone can show a page where the extraction crashes or produces the wrong uploader_id
, I'll re-open this.
Possibly YT ran an A-B test that has now been withdrawn.
@dirkf
It seems to be some sort of regional(?) A/B-testing. I wasn't able to reproduce the issue at first either, but I was able to confirm the change in site behavior through affected users' page dumps. Youtube has begun serving web JSON where the ownerProfileUrl
value is the @handle
URL format instead of /channel/
or /user/
, and this breaks the fatal _search_regex()
used to extract uploader_id
Same problem!!!
ERROR: Unable to extract uploader id; please report this issue on https://yt-dl.org/bug . Make sure you are using the latest version; type youtube-dl -U to update. Be sure to call youtube-dl with the --verbose flag and include its complete output.
Traceback (most recent call last):
File "/usr/local/bin/youtube-dl/youtube_dl/YoutubeDL.py", line 815, in wrapper
return func(self, *args, **kwargs)
File "/usr/local/bin/youtube-dl/youtube_dl/YoutubeDL.py", line 836, in __extract_info
ie_result = ie.extract(url)
File "/usr/local/bin/youtube-dl/youtube_dl/extractor/common.py", line 534, in extract
ie_result = self._real_extract(url)
File "/usr/local/bin/youtube-dl/youtube_dl/extractor/youtube.py", line 1794, in _real_extract
'uploader_id': self._search_regex(r'/(?:channel|user)/([^/?&#]+)', owner_profile_url, 'uploader id') if owner_profile_url else None,
File "/usr/local/bin/youtube-dl/youtube_dl/extractor/common.py", line 1012, in _search_regex
raise RegexNotFoundError('Unable to extract %s' % _name)
youtube_dl.utils.RegexNotFoundError: Unable to extract uploader id; please report this issue on https://yt-dl.org/bug . Make sure you are using the latest version; type youtube-dl -U to update. Be sure to call youtube-dl with the --verbose flag and include its complete output.
youtube-dl -U
youtube-dl is up-to-date (2021.12.17)
This just started happening to me. Things have worked all day until a bit ago. Tons of reports on here but no fixes other than some self rolled patches. Given this is closed but still broken...something something dark side. About the regional theory, I've tested raw and with TOR and get the same result.
Working in git master:
If anyone can show a page where the extraction crashes or produces the wrong
uploader_id
, I'll re-open this.
... Some 5-6 hours ago, git master
(snapshot git-20230214-gdd9aa74
) was hit-and-miss, in that one invocation of yt-dl
for a specific YT video ID would work as expected, whereas next invocation for the same video ID, some seconds later, would produce the ERROR message contained in this issue's title π ; IOW, pretty much what was described by @SoundsBetter π ...
However, at this time (ca. 00:25 GMT of 20230217), it's always "miss" π , i.e. the YT changes have fully propagated to the CDNs serving my location (SE Europe):
yt-dl -vF "y6_TOFy3k6k" =>
[debug] System config: []
[debug] User config: []
[debug] Custom config: []
[debug] Command-line args: ['--ffmpeg-location', '.\\FFmpeg', '--external-downloader-args', '-v 8 -stats', '-vF', 'y6_TOFy3k6k']
[debug] Encodings: locale cp1253, fs mbcs, out cp737, pref cp1253
[debug] youtube-dl version 2023.02.16.19419
[debug] Python version 3.4.4 (CPython) - Windows-Vista-6.0.6003-SP2
[debug] exe versions: ffmpeg n5.2-dev-2245-N-109649-gab8cde6, ffprobe n5.2-dev-2245-N-109649-gab8cde6, phantomjs 2.1.1, rtmpdump 2.4
[debug] Proxy map: {}
[youtube] y6_TOFy3k6k: Downloading webpage
[debug] [youtube] Decrypted nsig G7tWAGDe6v0HC9p => 8oOTd8zyOMPnHA
[debug] [youtube] Decrypted nsig 827vHwKOyzOGH4d => OtJOHYU2-Y7DWw
ERROR: Unable to extract uploader id; please report this issue on https://yt-dl.org/bug .
Make sure you are using the latest version; type youtube-dl -U to update.
Be sure to call youtube-dl with the --verbose flag and include its complete output.
Traceback (most recent call last):
File "YoutubeDL.py", line 816, in wrapper
File "YoutubeDL.py", line 837, in __extract_info
File "common.py", line 535, in extract
File "D:\a\youtube-dl\youtube-dl\youtube_dl\extractor\youtube.py", line 2125, in _real_extract
File "common.py", line 1013, in _search_regex
youtube_dl.utils.RegexNotFoundError: Unable to extract uploader id;
please report this issue on https://yt-dl.org/bug .
Make sure you are using the latest version; type youtube-dl -U to update.
Be sure to call youtube-dl with the --verbose flag and include its complete output.
EDIT:
yt-dl --get-filename "y6_TOFy3k6k" -o "%(uploader_id)s" =>
ERROR: Unable to extract uploader id; please report this issue on https://yt-dl.org/bug .
Make sure you are using the latest version; type youtube-dl -U to update.
Be sure to call youtube-dl with the --verbose flag and include its complete output.
yt-dl --get-filename "3h5-QPbKoVg" -o "%(uploader_id)s" =>
ERROR: Unable to extract uploader id; please report this issue on https://yt-dl.org/bug .
Make sure you are using the latest version; type youtube-dl -U to update.
Be sure to call youtube-dl with the --verbose flag and include its complete output.
In any case the extraction of an optional field shouldn't crash the extraction:
- 'uploader_id': self._search_regex(r'/(?:channel|user)/([^/?&#]+)', owner_profile_url, 'uploader id') if owner_profile_url else None,
+ 'uploader_id': self._search_regex(r'/(?:channel|user)/([^/?&#]+)', owner_profile_url, 'uploader id', fatal=False) if owner_profile_url else None,
[Update] To quote @nicolaasjan:
That's not the real fix. It was fixed with the merging of pull request #31675 two weeks ago.
Exactly. Don't apply this change. Use the suggested methods as linked from the Description, which you should read again if you were thinking of applying this change.
same here. you probably don't need more bug reports but since i came here to report it, here it is:
[debug] System config: []
[debug] User config: []
[debug] Custom config: []
[debug] Command-line args: ['-f', 'mp4', '--verbose', 'https://www.youtube.com/watch?v=dQw4w9WgXcQ']
[debug] Encodings: locale UTF-8, fs utf-8, out utf-8, pref UTF-8
[debug] youtube-dl version 2021.12.17
[debug] Python version 3.10.10 (CPython) - macOS-12.6.3-x86_64-i386-64bit
[debug] exe versions: ffmpeg 5.1.2, ffprobe 5.1.2
[debug] Proxy map: {}
[youtube] imj6Rghr95g: Downloading webpage
ERROR: Unable to extract uploader id; please report this issue on https://yt-dl.org/bug . Make sure you are using the latest version; see https://yt-dl.org/update on how to update. Be sure to call youtube-dl with the --verbose flag and include its complete output.
Traceback (most recent call last):
File "/usr/local/Cellar/youtube-dl/2021.12.17/libexec/lib/python3.10/site-packages/youtube_dl/YoutubeDL.py", line 815, in wrapper
return func(self, *args, **kwargs)
File "/usr/local/Cellar/youtube-dl/2021.12.17/libexec/lib/python3.10/site-packages/youtube_dl/YoutubeDL.py", line 836, in __extract_info
ie_result = ie.extract(url)
File "/usr/local/Cellar/youtube-dl/2021.12.17/libexec/lib/python3.10/site-packages/youtube_dl/extractor/common.py", line 534, in extract
ie_result = self._real_extract(url)
File "/usr/local/Cellar/youtube-dl/2021.12.17/libexec/lib/python3.10/site-packages/youtube_dl/extractor/youtube.py", line 1794, in _real_extract
'uploader_id': self._search_regex(r'/(?:channel|user)/([^/?]+)', owner_profile_url, 'uploader id') if owner_profile_url else None,
File "/usr/local/Cellar/youtube-dl/2021.12.17/libexec/lib/python3.10/site-packages/youtube_dl/extractor/common.py", line 1012, in _search_regex
raise RegexNotFoundError('Unable to extract %s' % _name)
youtube_dl.utils.RegexNotFoundError: Unable to extract uploader id; please report this issue on https://yt-dl.org/bug . Make sure you are using the latest version; see https://yt-dl.org/update on how to update. Be sure to call youtube-dl with the --verbose flag and include its complete output.
In any case, the extraction of an optional field shouldn't crash the extraction:
... With the suggested patch applied:
yt-dl -vF "y6_TOFy3k6k" =>
[debug] System config: []
[debug] User config: []
[debug] Custom config: []
[debug] Command-line args: ['--ffmpeg-location', '.\\FFmpeg', '--external-downloader-args', '-v 8 -stats', '-vF', 'y6_TOFy3k6k']
[debug] Encodings: locale cp1253, fs mbcs, out cp737, pref cp1253
[debug] youtube-dl version 2023.02.16.19419
[debug] Python version 3.4.4 (CPython) - Windows-Vista-6.0.6003-SP2
[debug] exe versions: ffmpeg n5.2-dev-2245-N-109649-gab8cde6, ffprobe n5.2-dev-2245-N-109649-gab8cde6, phantomjs 2.1.1, rtmpdump 2.4
[debug] Proxy map: {}
[youtube] y6_TOFy3k6k: Downloading webpage
[debug] [youtube] Decrypted nsig Y36IoycIuu5NGbW1 => 5F9rK5j6OOd4Mg
[debug] [youtube] Decrypted nsig nPHxAsdq4x-MxFxV => ZSHNLTuIxceXpA
WARNING: unable to extract uploader id; please report this issue on https://yt-dl.org/bug .
Make sure you are using the latest version; type youtube-dl -U to update.
Be sure to call youtube-dl with the --verbose flag and include its complete output.
[info] Available formats for y6_TOFy3k6k:
format code extension resolution note
249 webm audio only tiny 50k , webm_dash container, opus @ 50k(48000Hz), 13.97MiB
250 webm audio only tiny 72k , webm_dash container, opus @ 72k(48000Hz), 20.23MiB
251 webm audio only tiny 128k , webm_dash container, opus @128k(48000Hz), 35.76MiB
140 m4a audio only tiny 129k , m4a_dash container, mp4a.40.2@129k (44100Hz), 35.96MiB
160 mp4 256x144 144p 18k , mp4_dash container, avc1.4d400c@ 18k, 24fps, video only, 5.00MiB
394 mp4 256x144 144p 24k , mp4_dash container, av01.0.00M.08@ 24k, 24fps, video only, 6.84MiB
278 webm 256x144 144p 36k , webm_dash container, vp9@ 36k, 24fps, video only, 10.27MiB
133 mp4 426x240 240p 25k , mp4_dash container, avc1.4d4015@ 25k, 24fps, video only, 7.02MiB
395 mp4 426x240 240p 48k , mp4_dash container, av01.0.00M.08@ 48k, 24fps, video only, 13.44MiB
242 webm 426x240 240p 54k , webm_dash container, vp9@ 54k, 24fps, video only, 15.24MiB
134 mp4 640x360 360p 38k , mp4_dash container, avc1.4d401e@ 38k, 24fps, video only, 10.77MiB
396 mp4 640x360 360p 81k , mp4_dash container, av01.0.01M.08@ 81k, 24fps, video only, 22.56MiB
243 webm 640x360 360p 95k , webm_dash container, vp9@ 95k, 24fps, video only, 26.54MiB
135 mp4 854x480 480p 53k , mp4_dash container, avc1.4d401e@ 53k, 24fps, video only, 14.94MiB
397 mp4 854x480 480p 130k , mp4_dash container, av01.0.04M.08@ 130k, 24fps, video only, 36.27MiB
244 webm 854x480 480p 132k , webm_dash container, vp9@ 132k, 24fps, video only, 36.75MiB
136 mp4 1280x720 720p 85k , mp4_dash container, avc1.4d401f@ 85k, 24fps, video only, 23.75MiB
247 webm 1280x720 720p 208k , webm_dash container, vp9@ 208k,24fps, video only, 57.79MiB
398 mp4 1280x720 720p 235k , mp4_dash container, av01.0.05M.08@ 235k, 24fps, video only, 65.28MiB
137 mp4 1920x1080 1080p 247k , mp4_dash container, avc1.640028@ 247k, 24fps, video only, 68.86MiB
399 mp4 1920x1080 1080p 434k , mp4_dash container, av01.0.08M.08@ 434k, 24fps, video only, 120.74MiB
248 webm 1920x1080 1080p 543k , webm_dash container, vp9@ 543k, 24fps, video only, 150.87MiB
18 mp4 640x360 360p 205k , avc1.42001E, 24fps, mp4a.40.2 (44100Hz), 56.95MiB
22 mp4 1280x720 720p 214k , avc1.64001F, 24fps, mp4a.40.2 (44100Hz) (best)
... and
yt-dl --get-filename "y6_TOFy3k6k" -o "%(uploader_id)s" =>
WARNING: unable to extract uploader id; please report this issue on https://yt-dl.org/bug .
Make sure you are using the latest version; type youtube-dl -U to update.
Be sure to call youtube-dl with the --verbose flag and include its complete output.
NA
... And with this patch:
yt-dl --get-filename "y6_TOFy3k6k" -o "%(uploader_id)s" =>
Shaun_vids
yt-dl --get-filename "3h5-QPbKoVg" -o "%(uploader_id)s" =>
Audio-Visual-Clips
This is still not reproducible in the UK. In all cases I get what I would say is a user channel id, UCJ6o36XL0CpYb6U5dNBiXHQ
vs Shaun_vids
.
Isn't Shaun_vids
the uploader
rather than the uploader_id
?
Isn't
Shaun_vids
theuploader
rather than theuploader_id
?
uploader
is the "display" name, in this case "Shaun".
uploader_id
was never consistent to begin with because the regex allowed it to be be extracted from either a /channel/
URL format (e.g. UCJ6o36XL0CpYb6U5dNBiXHQ
== channel_id
) or the old /user/
URL format (not the channel_id
). It looks like now youtube is trying to switch all accounts to the @handle
URL format, so a likely future scenario is that this will be the only value we are able to extract as the uploader_id
. (The yt-dlp regex has been modified to include the @
from the handle URL in the uploader_id
, in order to be able to differentiate it from the /user/
-type uploader_id
)
TEMPLATE BROKEN had to create the issue, then edit.
Check #30839 and raise a separate issue if still required.
...pending resolution of https://github.com/ytdl-org/youtube-dl/issues/31530#issuecomment-1434498460.
According to https://github.com/yt-dlp/yt-dlp/issues/6247#issuecomment-1433092700:
The issue started around 7 AM (GMT-3), all my auto-download scripts stopped working at that time. Seems to be related to how channels now use a "@customchannelname" instead of the old "/channel/channel_ID"
Once I can look at a page that has the new format, it should be possible to find where the actual channel ID is. As of e8198c517b, yt-dl already looks in two places for the URL containing the channel ID: perhaps it should look in reverse order.
yt-dl already looks in two places for the URL containing the channel ID: perhaps it should look in reverse order.
channel_id
is still being extracted just fine. You could easily make the uploader_id
value a duplicate of the channel_id
if you want. But that is not what the code was doing before, and why ignore the handle?
channel_id
is still being extracted just fine. You could easily make theuploader_id
value a duplicate of thechannel_id
if you want. But that is not what the code was doing before, and why ignore the handle?
s/channel/owner/ but the problem URLs here have a channel_id. https://github.com/ytdl-org/youtube-dl/issues/31530#issuecomment-1434497578 is useful.
My concern is whether we should return the same value that is in the test cases, or whether some of the test cases are wrong.
The issue is showing in the CI tests but not yet in London.
strange thing, after building from source, I'm getting the same error, but it starts downloading.
That's a WARNING
, not an error: https://github.com/ytdl-org/youtube-dl/issues/31530#issuecomment-1434498460.
This is still not reproducible in the UK.
The issue is showing in the CI tests but not yet in London.
I used my commercial VPN to switch to a UK IP address and can still (ca. 16:00 GMT, 20230217) confirm:
yt-dl --get-filename "y6_TOFy3k6k" -o "%(uploader_id)s" =>
UCJ6o36XL0CpYb6U5dNBiXHQ
yt-dl --get-filename "3h5-QPbKoVg" -o "%(uploader_id)s" =>
UC9AY3VP-VqMJh_Uj_1BbSPA
I wonder, though, why the UK has been treated "differently" so far π ... If dirkf is able to use a VPN to "travel" overseas, perhaps it should be possible for him to:
look at a page that has the new format,
Thanks for your efforts, BTW! π
@bashonly
For me, your explanation of phased rollout/changes on the CDN perfectly explains, why my attempts to reproduce this, using the same video id sometimes succeeded yesterday and sometimes not (I'm from Germany). Still, being neither a Python nor a regex expert (yet), I can only repeat: cloning yt-dlp master after your commit yesterday and following the create exe instructions for Windows, then exchanging the exe fixed everything for me. My script scans some 500 channels with some 4000 playlists and did not report a single userid extraction error since your fix. If I understod it right, youtube-dl uses a slightly different regex to tackle that same issue; I cannot judge due to my lack of expertise; I can only confirm that your solution is working just fine.
... which leaves me confused, why this gets re-opened repeatedly, but probably this will only stop, when new precompiled builds are released.
Big Thank you.
why this gets re-opened repeatedly,
... That's the easiest of answers π ...
People from all "affected" areas of the globe jump in, as a knee-jerk reaction, to submit new (duplicate π ) issues about that YT breakage, without:
New issue
button) Broken site support
, in this case)Once in a template, they bypass the pre-typed, required, input fields, or, even if/when they read:
- [ ] I've searched the bugtracker for similar issues including closed ones
they mechanically tick that, without realising what it speaks of... π
master
branch", how to compile the patched source into a binary, etc.
So, in complete desperation, they cram the issue tracker(s) for "guidance"/"spoon-feeding", without the slightest motivation to search themselves on the "topics" I cited previously... π but probably this will only stop, when new precompiled builds are released.
This has already happened for the "downstream" project, yt-dlp
; for youtube-dl
, you're probably on your own (3rd party provided "daily" binaries will be made available in the wee hours of tomorrow π ) - BTW, as you might have read already, master
branch, currently, only averts the app from "barfing" completely at physical locations where uploader_id
fails to be extracted by the pre-existing RegExp code...
I have the same issue:
Omg why it takes so long to fix this?
Is there a fix?
Is there a fix?
See https://github.com/ytdl-org/youtube-dl/issues/31530#issuecomment-1435088359.
Also review #31535.
As a temporary work-around for youtube-dl
users, I can confirm that the current version of yt-dlp
available on pip
has fixed the issue (but I did have to use -f best
to avoid an error fetching URLs).
I know this isn't exactly the place to share this but I'm sure lots of people are coming here to find a practical solution and not just to report the error so hopefully this is useful to someone reading.
Same issue. π₯²
youtube-dl -o "/Users/felixm3/Downloads/%(title)s.%(ext)s" -x --audio-format "mp3" 'https://www.youtube.com/playlist?list=PLc_SwOK0df2UaYTVMrJP9m0yMwldMU4Nf'
[youtube:tab] PLc_SwOK0df2UaYTVMrJP9m0yMwldMU4Nf: Downloading webpage
[download] Downloading playlist: Fall 2022 Immunology Course
[youtube:tab] playlist Fall 2022 Immunology Course: Downloading 39 videos
[download] Downloading video 1 of 39
[youtube] tQ_BUCW9yS0: Downloading webpage
ERROR: Unable to extract uploader id; please report this issue on https://yt-dl.org/bug . Make sure you are using the latest version; type youtube-dl -U to update. Be sure to call youtube-dl with the --verbose flag and include its complete output.
Also:
% youtube-dl -U
youtube-dl is up-to-date (2021.12.17)
Same issue. π₯²
youtube-dl -o "/Users/felixm3/Downloads/%(title)s.%(ext)s" -x --audio-format "mp3" 'https://www.youtube.com/playlist?list=PLc_SwOK0df2UaYTVMrJP9m0yMwldMU4Nf' [youtube:tab] PLc_SwOK0df2UaYTVMrJP9m0yMwldMU4Nf: Downloading webpage [download] Downloading playlist: Fall 2022 Immunology Course [youtube:tab] playlist Fall 2022 Immunology Course: Downloading 39 videos [download] Downloading video 1 of 39 [youtube] tQ_BUCW9yS0: Downloading webpage ERROR: Unable to extract uploader id; please report this issue on https://yt-dl.org/bug . Make sure you are using the latest version; type youtube-dl -U to update. Be sure to call youtube-dl with the --verbose flag and include its complete output.
Also:
% youtube-dl -U youtube-dl is up-to-date (2021.12.17)
pip install --upgrade yt-dlp and replace youtube-dl command with yt-dlp
The current position is that the crash has been fixed for both yt-dl and yt-dlp and #31535 describes what someone could do to obtain fixed versions.
Now, the issue has shown up in the UK this evening so I can more easily review the question of what should be extracted when the ownerProfileUrl
is like /@{channel}
.
The current solution is that the crash has been fixed for both yt-dl and yt-dlp and #31535 describes what someone could do to obtain fixed versions.
Now, the issue has shown up in the UK this evening so I can more easily review the question of what should be extracted when the
ownerProfileUrl
is like/@{channel}
. WIP
The issue is persisting with yt-dl in France. Please let me know when you got it fixed in your zone
What about youtube_dl as a python library? Is there a way to make it work or should we wait for a new release?
Started seeing this problem today. As others have reported, building from the source does take care of the particular issue.
I have to ask. If the issue has been fixed in master, why isn't there a new release? Seems like that would prevent spam more effectively than telling inexperienced users to building from source.
The issue is persisting with yt-dl in France. ...
It will until you take one of the actions mentioned in #31535. Or if YT rolls back the new page structure.
What about youtube_dl as a python library?
Install from the git master with pip to get the latest fixes, or even replace or patch youtube_dl/extractor/youtube.py
(care needed depending on permissions).
It will until you take one of the actions mentioned in #31535. Or if YT rolls back the new page structure.
I've read #31535 far too many times thinking I've missed these magical actions only to still not see these magical actions to remedy things. There are also no instructions on how to build from the source, just the little dev blurb about adding your own extractor that still ends with no build but just how to pull/push and wait for someone else to build the binary. I'm ignorant when it comes to making python into a single bin and the docs aren't helping.
I seriously doubt YT will "roll back" anything. I'm sure this like many previous changes are to cause problems like this to better funnel viewers on to official viewing platforms for data collection.
As a related but unrelated issue VLC can no longer play YT either and no update to it's lua for YT either.
... telling inexperienced users to building from source
You don't have to "build from source". Youtube-dl is a Python program that runs directly under a variety of Python versions with no setup beyond pip.
It's possible to make single-file versions of the program that unpack the program and a Python interpreter every time you run the program. The linked issue suggests how you could obtain such a version of the program.
... VLC can no longer play YT either and no update to its lua for YT either
I believe VLC's yt-dl integration has been broken for some time. The maintainer of the yt-dl hook made a fuss about patching yt-dl with code based on his LUA patch when YT started requiring a challenge to be solved for unthrottled download speeds but hasn't taken advantage of the unthrottling code placed in the public domain by yt-dlp and yt-dl.
With video players like VLC that can accept a pipe as input, pipe yt-dl's download into the player, using yt-dl option -o -
and typically -
as the filename for the player. This certainly works for me with mpv.
Well since I clearly can't see anything on that post that would suggest where to "obtain" a working version of the program I guess telling me it has info on where to obtain a working version of the program doesn't help...unless of course you mean I should use the OTHER program (yt-dlp). Again, you didn't make that clear and I'm here for youtube-dl not yt-dlp. Perhaps I will look into that and rewrite all my systems to use that given how youtube-dl hasn't had a new release in over a year and this thread is like 1980's stereo instructions on mescaline. ;p
For not having to build this as a bin I tried running from the master code zip I grabbed and it fails to run. I was going to swap out the lines noted in the dif but that too was a mess. Says replace 2125 (or something) but then that bit is over 3 or 4 lines in there. When I tried to python -m bla bla it wouldn't run leaving me wondering if perhaps the working directory was wrong for it but again, the docs gloss over so much. Like the python -m youtube-dl...just run it...from where in its directory structure?
This issue is solved: read the Description below If you still want to comment after reading that, think again: first read this post below to avoid your comment being deleted or marked as spam.
Checklist
Verbose log
[YouTube] Unable to extract uploader id
``` yt-dlp.exe" -x -4 --download-archive "C:\Youtube-dlp\download_history.txt" --external-downloader aria2c --restrict-filenames --match-filter "description*='ESTRENO'" --audio-format mp3 -o "E:\FOLDER\RENAME\%%(title)s.%%(ext)s" "https://www.youtube.com/watch?v=lcusH7ksCNw&list=PLuXU-g7mjkKPvWSFq7xI_N4Xj7A3iSOU3&index=67" -v [debug] Command-line config: ['-x', '-4', '--download-archive', 'C:\\Youtube-dlp\\download_history.txt', '--external-downloader', 'aria2c', '--restrict-filenames', '--match-filter', "description*='ESTRENO'", '--audio-format', 'mp3', '-o', 'E:\\A.PROCESAR\\RENAME\\%%(title)s.%%(ext)s', 'https://www.youtube.com/watch?v=lcusH7ksCNw&list=PLuXU-g7mjkKPvWSFq7xI_N4Xj7A3iSOU3&index=67', '-v'] [debug] Encodings: locale cp1252, fs utf-8, pref cp1252, out utf-8, error utf-8, screen utf-8 [debug] yt-dlp version 2023.01.06 [6becd25] (win_exe) [debug] Python 3.8.10 (CPython AMD64 64bit) - Windows-10-10.0.19044-SP0 (OpenSSL 1.1.1k 25 Mar 2021) [debug] exe versions: ffmpeg N-109541-g94aa70d757-20230109 (setts), ffprobe N-109541-g94aa70d757-20230109, phantomjs 2.1.1 [debug] Optional libraries: Cryptodome-3.16.0, brotli-1.0.9, certifi-2022.12.07, mutagen-1.46.0, sqlite3-2.6.0, websockets-10.4 [debug] Proxy map: {} [debug] Loaded 1760 extractors [debug] Loading archive file 'C:\\Youtube-dlp\\ download_history.txt' [youtube:tab] Extracting URL: https://www.youtube.com/watch?v=lcusH7ksCNw&list=PLuXU-g7mjkKPvWSFq7xI_N4Xj7A3iSOU3&index=67 [youtube:tab] Downloading playlist PLuXU-g7mjkKPvWSFq7xI_N4Xj7A3iSOU3 - add --no-playlist to download just the video lcusH7ksCNw [youtube:tab] PLuXU-g7mjkKPvWSFq7xI_N4Xj7A3iSOU3: Downloading webpage [youtube:tab] Extracting URL: https://www.youtube.com/playlist?list=PLuXU-g7mjkKPvWSFq7xI_N4Xj7A3iSOU3 [youtube:tab] PLuXU-g7mjkKPvWSFq7xI_N4Xj7A3iSOU3: Downloading webpage [youtube:tab] PLuXU-g7mjkKPvWSFq7xI_N4Xj7A3iSOU3: Redownloading playlist API JSON with unavailable videos [download] Downloading playlist: LA VENGANZA SERΓ TERRIBLE (Programas) [youtube:tab] Playlist LA VENGANZA SERΓ TERRIBLE (Programas): Downloading 67 items of 67 [download] Downloading item 1 of 67 [youtube] Extracting URL: https://www.youtube.com/watch?v=3h5-QPbKoVg [youtube] 3h5-QPbKoVg: Downloading webpage [youtube] 3h5-QPbKoVg: Downloading android player API JSON [debug] Loading youtube-nsig.1cbba2b4 from cache WARNING: [youtube] 3h5-QPbKoVg: Native nsig extraction failed: Trying with PhantomJS n = GDZ_5inyZ3r6QSP ; player = https://www.youtube.com/s/player/1cbba2b4/player_ias.vflset/en_US/base.js [debug] [youtube] Signature function returned an exception; please report this issue on https://github.com/yt-dlp/yt-dlp/issues?q= , filling out the appropriate issue template. Confirm you are on the latest version using yt-dlp -U [youtube] 3h5-QPbKoVg: Executing signature code [debug] [youtube] PhantomJS command line: phantomjs "--ssl-protocol=any" "C:\Users\USER\AppData\Local\Temp\tmp88untizd" [debug] [youtube] Decrypted nsig GDZ_5inyZ3r6QSP => ECvndyupC0ex4A ERROR: [youtube] 3h5-QPbKoVg: Unable to extract uploader id; please report this issue on https://github.com/yt-dlp/yt-dlp/issues?q= , filling out the appropriate issue template. Confirm you are on the latest version using yt-dlp -U File "yt_dlp\extractor\common.py", line 680, in extract File "yt_dlp\extractor\youtube.py", line 4049, in _real_extract File "yt_dlp\extractor\common.py", line 1228, in _search_regex ```Description
[Revised by @dirkf] OP actually reported the bug for yt-dlp.
The problem, which was revealed by a change in the metadata served by YouTube, applied to both youtube-dl and yt-dlp and has been fixed in both programs.
There is a release of yt-dlp that includes the fix. See #31535 for discussion of whether this would be a good choice for you.
See below for ways to update to a fixed version of youtube-dl. Using
-U
doesn't (yet) work. A new release may be created, including the final fix, some time later than now. However, there is now a nightly build from the latest code here.There's no point posting your log that shows the error now: feel free to thumb-up this post. Also, be aware that the initial patch still flagged the original issue as a WARNING; the fully fixed yt-dl doesn't. Consider raising a separate issue if your fixed yt-dl shows a different error.