ytdl-org / youtube-dl

Command-line program to download videos from YouTube.com and other video sites
http://ytdl-org.github.io/youtube-dl/
The Unlicense
131.12k stars 9.92k forks source link

[YouTube] Unable to extract uploader id #31530

Open Shituation opened 1 year ago

Shituation commented 1 year ago

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.

christianKuntz commented 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

LucasAlmeida0 commented 1 year ago

Got the same issue here

dmelladoc commented 1 year ago

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.
Shituation commented 1 year ago

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.

nicolaasjan commented 1 year ago

Already fixed in yt-dlp. https://github.com/yt-dlp/yt-dlp/issues/6247 https://github.com/yt-dlp/yt-dlp/commit/149eb0bbf34fa8fdf8d1e2aa28e17479d099e26b

SoundsBetter commented 1 year ago

It works for me from time to time

Python version 3.11.1 (CPython) - Windows-10-10.0.19044-SP0 ``` C:\Users\dr7mu>C:\Users\dr7mu\AppData\Roaming\Python\Python311\Scripts\youtube-dl --verbose https://youtu.be/PtcHNvVooLQ [debug] System config: [] [debug] User config: [] [debug] Custom config: [] [debug] Command-line args: ['--verbose', 'https://youtu.be/PtcHNvVooLQ'] [debug] Encodings: locale cp1251, fs utf-8, out utf-8, pref cp1251 [debug] youtube-dl version 2021.12.17 [debug] Python version 3.11.1 (CPython) - Windows-10-10.0.19044-SP0 [debug] exe versions: none [debug] Proxy map: {} [youtube] PtcHNvVooLQ: Downloading webpage [youtube] PtcHNvVooLQ: Downloading MPD manifest [debug] Default format spec: best/bestvideo+bestaudio [debug] Invoking downloader on 'https://rr3---sn-npa3oxu-c0ns.googlevideo.com/videoplayback?expire=1676587820&ei=zF7uY_rJJciR1was1oPICw&ip=5.152.109.165&id=o-ADzBJJPVVVl-AU3mcvIsev5R0V1fTR01mJ_nuqSQx5Wm&itag=22&source=youtube&requiressl=yes&mh=pV&mm=31%2C29&mn=sn-npa3oxu-c0ns%2Csn-4g5lznlz&ms=au%2Crdu&mv=m&mvi=3&pl=24&initcwndbps=907500&vprv=1&mime=video%2Fmp4&ns=g4drxay16iE_vip8yIu0wmoL&ratebypass=yes&dur=1.904&lmt=1577620449803537&mt=1676565912&fvip=1&fexp=24007246&c=WEB&txp=6216222&n=c1FH5nfa5vHvkem&sparams=expire%2Cei%2Cip%2Cid%2Citag%2Csource%2Crequiressl%2Cvprv%2Cmime%2Cns%2Cratebypass%2Cdur%2Clmt&sig=AOq0QJ8wRgIhAI-mZRq0fh65Jnpt1sCMDw35TI8IVWhW--gfmUg-YLWNAiEA7MCq4VJoeEW-LZOSJMOcEXxGK07GKwuYdVUZFXJ32Hg%3D&lsparams=mh%2Cmm%2Cmn%2Cms%2Cmv%2Cmvi%2Cpl%2Cinitcwndbps&lsig=AG3C_xAwRQIgN6wKZpbb1vDhJhiMB32tj8aTsYhtJZcSmhp8jj8qRGkCIQCzm2axUyvk7xLxaJBmt9WdiOOFDh1ZDwZdwptys1Rk7g%3D%3D' [download] Destination: Wilhelm Scream (Iconic funny Scream) - Sound Effect for Editing-PtcHNvVooLQ.mp4 [download] 100% of 44.67KiB in 00:00 C:\Users\dr7mu>C:\Users\dr7mu\AppData\Roaming\Python\Python311\Scripts\youtube-dl --verbose https://youtu.be/PtcHNvVooLQ [debug] System config: [] [debug] User config: [] [debug] Custom config: [] [debug] Command-line args: ['--verbose', 'https://youtu.be/PtcHNvVooLQ'] [debug] Encodings: locale cp1251, fs utf-8, out utf-8, pref cp1251 [debug] youtube-dl version 2021.12.17 [debug] Python version 3.11.1 (CPython) - Windows-10-10.0.19044-SP0 [debug] exe versions: none [debug] Proxy map: {} [youtube] PtcHNvVooLQ: Downloading webpage [youtube] PtcHNvVooLQ: Downloading MPD manifest 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 "C:\Users\dr7mu\AppData\Roaming\Python\Python311\site-packages\youtube_dl\YoutubeDL.py", line 815, in wrapper return func(self, *args, **kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "C:\Users\dr7mu\AppData\Roaming\Python\Python311\site-packages\youtube_dl\YoutubeDL.py", line 836, in __extract_info ie_result = ie.extract(url) ^^^^^^^^^^^^^^^ File "C:\Users\dr7mu\AppData\Roaming\Python\Python311\site-packages\youtube_dl\extractor\common.py", line 534, in extract ie_result = self._real_extract(url) ^^^^^^^^^^^^^^^^^^^^^^^ File "C:\Users\dr7mu\AppData\Roaming\Python\Python311\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 "C:\Users\dr7mu\AppData\Roaming\Python\Python311\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. ```

I use one script in PyCharm and it works one time out of five

nicolaasjan commented 1 year ago

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...

Shituation commented 1 year ago

Damn... why didn't those guys change the name to something less confusing.

Sorry.

dirkf commented 1 year ago

Working in git master:

$ python -m youtube_dl -o '%(uploader_id)s' --get-filename 'https://www.youtube.com/watch?v=y6_TOFy3k6k'
UCJ6o36XL0CpYb6U5dNBiXHQ
$
christianKuntz commented 1 year ago

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

dirkf commented 1 year ago

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.

bashonly commented 1 year ago

@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

Delitants commented 1 year ago

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)
nPHYN1T3 commented 1 year ago

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.

Python version 3.10.9 (CPython) - Linux-6.1.12-arch1-1-x86_64-with-glibc2.37 ``` [debug] System config: [] [debug] User config: [] [debug] Custom config: [] [debug] Command-line args: ['https://www.youtube.com/watch?v=HrmcAFaVL6I', '--verbose'] [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-arch1-1-x86_64-with-glibc2.37 [debug] exe versions: ffmpeg 5.1.2, ffprobe 5.1.2, rtmpdump 2.4 [debug] Proxy map: {} [youtube] HrmcAFaVL6I: 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. ```
Vangelis66 commented 1 year ago

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.
dirkf commented 1 year ago

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.

huzzam commented 1 year ago

same here. you probably don't need more bug reports but since i came here to report it, here it is:

Python version 3.10.10 (CPython) - macOS-12.6.3-x86_64-i386-64bit

[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.
Vangelis66 commented 1 year ago

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
Vangelis66 commented 1 year ago

... 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
dirkf commented 1 year ago

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?

bashonly commented 1 year ago

Isn't Shaun_vids the uploader rather than the uploader_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)

dirkf commented 1 year ago

Safety fix in https://github.com/ytdl-org/youtube-dl/commit/2dd6c6edd8e0fc5e45865b8e6d865e35147de772, pending resolution of https://github.com/ytdl-org/youtube-dl/issues/31530#issuecomment-1434463781.

dirkf commented 1 year ago

TEMPLATE BROKEN had to create the issue, then edit.

Check #30839 and raise a separate issue if still required.

dirkf commented 1 year ago

...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.

bashonly commented 1 year ago

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?

dirkf commented 1 year ago

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?

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.

gucio321 commented 1 year ago

strange thing, after building from source, I'm getting the same error, but it starts downloading.

here are logs if someone is interessted ```console [debug] System config: ['--prefer-free-formats'] [debug] User config: [] [debug] Custom config: [] [debug] Command-line args: ['--verbose', 'https://youtu.be/e8laLiWolGg'] [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.11.1 (CPython) - Linux-6.1.11-200.fc37.x86_64-x86_64-with-glibc2.36 [debug] exe versions: ffmpeg 5.1.2, ffprobe 5.1.2 [debug] Proxy map: {} [youtube] e8laLiWolGg: Downloading webpage [debug] [youtube] Decrypted nsig qgcMTj9XIztrAMQI => MnX6rXsJz_5g3A [debug] [youtube] Decrypted nsig iFupsFsbysKbWN5z => 35B-aOzEMIraSg 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. [debug] Default format spec: bestvideo+bestaudio/best [debug] Invoking downloader on 'https://rr5---sn-5uh5o-f5fs.googlevideo.com/videoplayback?expire=1676669640&ei=aJ7vY52jEZS-x_APjpiPoAw&ip=212.182.87.79&id=o-AKR6djKGBSMHyexyrupaccLPAnhgjTfOesFfAouU7KlX&itag=313&aitags=133%2C134%2C135%2C136%2C137%2C160%2C242%2C243%2C244%2C247%2C248%2C271%2C278%2C313%2C394%2C395%2C396%2C397%2C398%2C399%2C400%2C401&source=youtube&requiressl=yes&mh=Xw&mm=31%2C29&mn=sn-5uh5o-f5fs%2Csn-5hne6nzd&ms=au%2Crdu&mv=m&mvi=5&pl=20&initcwndbps=581250&vprv=1&mime=video%2Fwebm&ns=OMBq6sieXAYugKWbU7p47-UL&gir=yes&clen=415447901&dur=226.080&lmt=1661392249534187&mt=1676647283&fvip=5&keepalive=yes&fexp=24007246&c=WEB&txp=453C434&n=MnX6rXsJz_5g3A&sparams=expire%2Cei%2Cip%2Cid%2Caitags%2Csource%2Crequiressl%2Cvprv%2Cmime%2Cns%2Cgir%2Cclen%2Cdur%2Clmt&lsparams=mh%2Cmm%2Cmn%2Cms%2Cmv%2Cmvi%2Cpl%2Cinitcwndbps&lsig=AG3C_xAwRQIgWgzyZsnefkNWPzcT44fsgRXrGnjhFQA2c4n4hJ0gsTsCIQDDBTo5NezYSL7g9Z5A1hNoUmu75AJU8KGlvyyPWI6AQg%3D%3D&sig=AOq0QJ8wRQIgeRvkZHY3o7wlUUDMZhYtFEjGlLilmBD6_hGv4LOyoBkCIQCSxzcSppPs4i5wgL7VUTI4oH318Z2YTEuzR4J5lPXggA%3D%3D' [download] Resuming download at byte 2096128 [download] Destination: Arhbo featuring Ozuna & GIMS _ FIFA World Cup 2022β„’ Official Soundtrack-e8laLiWolGg.f313.webm [download] 0.5% of 396.20MiB at 105.28KiB/s ETA 01:04:05 [download] 0.5% of 396.20MiB at 309.20KiB/s ETA 21:47 [download] 0.5% of 396.20MiB at 711.47KiB/s ETA 09:27 [download] 0.5% of 396.20MiB at 1.47MiB/s ETA 04:28 [download] 0.5% of 396.20MiB at 669.51KiB/s ETA 10:03 [download] 0.5% of 396.20MiB at 827.24KiB/s ETA 08:08 [download] 0.5% of 396.20MiB at 1.08MiB/s ETA 06:05 [download] 0.6% of 396.20MiB at 1.65MiB/s ETA 03:58 [download] 0.6% of 396.20MiB at 2.67MiB/s ETA 02:27 [download] 0.8% of 396.20MiB at 2.68MiB/s ETA 02:26 [download] 1.0% of 396.20MiB at 4.42MiB/s ETA 01:28 [download] 1.5% of 396.20MiB at 4.55MiB/s ETA 01:25 ERROR: Interrupted by user ```
dirkf commented 1 year ago

That's a WARNING, not an error: https://github.com/ytdl-org/youtube-dl/issues/31530#issuecomment-1434498460.

Vangelis66 commented 1 year ago

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! πŸ‘

christianKuntz commented 1 year ago

@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.

Vangelis66 commented 1 year ago

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:

  1. Following the "how-to" on opening a new issue (you have to be already logged-in before hitting the green New issue button)
  2. Choosing the correct new issue template (Broken site support, in this case)
  3. 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... 😠

  1. Windows users in particular (I'm one of them 😜 ) are, at most times, completely clueless/helpless as to what an open source project is, what is a code patch, how to apply it, how to follow given advice on running/installing the app "from 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...

jamiedaniel commented 1 year ago

I have the same issue:

Python version 3.10.10 (CPython) - macOS-13.2.1-arm64-arm-64bit ``` % youtube-dl -x --audio-format mp3 https://youtu.be/mApDI4EW5Ho --verbose [debug] System config: [] [debug] User config: [] [debug] Custom config: [] [debug] Command-line args: ['-x', '--audio-format', 'mp3', 'https://youtu.be/mApDI4EW5Ho', '--verbose'] [debug] Encodings: locale UTF-8, fs utf-8, out utf-8, pref UTF-8 [debug] youtube-dl version 2021.12.17 [debug] Git HEAD: 17c872fb5 [debug] Python version 3.10.10 (CPython) - macOS-13.2.1-arm64-arm-64bit [debug] exe versions: ffmpeg 5.1.2, ffprobe 5.1.2 [debug] Proxy map: {} [youtube] mApDI4EW5Ho: 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 "/opt/homebrew/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 "/opt/homebrew/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 "/opt/homebrew/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 "/opt/homebrew/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 "/opt/homebrew/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. ```
Delitants commented 1 year ago

Omg why it takes so long to fix this?

dirkf commented 1 year ago

See https://github.com/ytdl-org/youtube-dl/issues/31530#issuecomment-1434498460.

Akshat752 commented 1 year ago

Is there a fix?

dirkf commented 1 year ago

Is there a fix?

See https://github.com/ytdl-org/youtube-dl/issues/31530#issuecomment-1435088359.

Also review #31535.

tukkek commented 1 year ago

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.

felixm3 commented 1 year ago

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)
Delitants commented 1 year ago

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

dirkf commented 1 year ago

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}.

Result.

pimsdsigd commented 1 year ago

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

CimimUxMaio commented 1 year ago

What about youtube_dl as a python library? Is there a way to make it work or should we wait for a new release?

skjsjslee commented 1 year ago

Started seeing this problem today. As others have reported, building from the source does take care of the particular issue.

Cheeseless commented 1 year ago

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.

dirkf commented 1 year ago

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).

nPHYN1T3 commented 1 year ago

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.

dirkf commented 1 year ago

... 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.

dirkf commented 1 year ago

... 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.

nPHYN1T3 commented 1 year ago

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

nPHYN1T3 commented 1 year ago

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?