Open Shituation opened 1 year ago
@nPHYN1T3 I feel your pain. I just got here due to this error and was at a loss just like you. Reading the dev instructions and trying it, I got it to work. This is how:
git clone https://github.com/ytdl-org/youtube-dl.git
cd youtube-dl/
(note the "dash" -
in youtube-dl)python -m youtube_dl <YT URL>
(note the underscore _
in youtube_dl)You'll get a warning still about the "unable to extract uploader_id" but it will keep going.
I don't use git so I didn't clone, I just grabbed the master zipped. I suspect there is some difference in directory structure. When I ran python -m youtube_dl it just died, don't remember the error but it died. i.e. it didn't do anything but kick out the error. So I opened the py to see what it was doing. Was only a few lines basically importing the youtube-dl folder in the same directory so it seemed it should have worked. I'm adapting things for the yt-dlp. I had never looked at it but seems like a dead drop in replacement. From what I gleaned on some other posts it was just a different program but looks like a fork with some give and take on features but a lot more up to date. I tested it and it works so I'm switching though I'm not sure it will 100% work with my stuff yet. I mean it works but not sure all the same options and args are there yet...just checking things out now and it's bed time so I'm a tad frazzled.
...[didn't really understand #31535]...
Crikey, that was all described in the posts of the linked issue by bashonly and myself. Also, USE PIP to install from the repo if you have a working Python, and get one if you don't.
For those using the python Iibrary, You can install the master branch using: pip install git+https://github.com/ytdl-org/youtube-dl.git@master#egg=youtube_dl
I think it is simpler.
Running from updated master branch
source, for Windows users, with CPython installed and already in your %PATH%
- the yt-dlp
way 😜 ...
Navigate in your browser to: https://github.com/ytdl-org/youtube-dl
Locate and expand the green <> Code
button
Download the git source via the Download ZIP
button
(actual link:
https://api.github.com/repos/ytdl-org/youtube-dl/zipball/master)
Once on disk, extract "here" (natively via Windows Explorer or via your preferred extractor - I use 7-zip
) - the archive should be extracted onto a disk location where your Windows account has write
privileges...
Open the extracted folder (named ytdl-org-youtube-dl-2dd6c6e
); inside it, create a youtube-dl.cmd
file with below content:
@py -bb -Werror -Xdev "%~dp0youtube_dl\__main__.py" %*
Open your Windows Command Prompt, then cd
to the inside of the extracted folder.
I met the same problme today 2/18 So how can I solve this problem on Linux ? I‘m a fresh user that have no idea plz this is really important for me
How was your yt-dl installed?
For those using the python library, you can install the master branch using: pip install git+https://github.com/ytdl-org/youtube-dl.git@master#egg=youtube_dl
I think it is simpler.
Indeed. What is the effect of #egg=youtube_dl
?
You may need to add --force-reinstall
since pip can't tell that this is a new version. For instance, @paulrougieux recommends this:
pip install --upgrade --force-reinstall "git+https://github.com/ytdl-org/youtube-dl.git"
To avoid requiring git, use the zip download offered from the "<> Code>Download ZIP" pull-down on the main page, but changing the extension to .tar.gz; or use the .tar.gz source download from the nightly release page.
Some package managers eliminate pip from the Python installation itself. Eg, with apt, you also have to install python-pip
(2.7) or python3-pip
.
In any pip commands it's recommended to use python -m pip
instead of just pip
, where python
is the name of the Python that you want or expect to run yt-dl, say python3.9
. Be sure to use the same Python that is running when yt-dl runs.
See also https://adamj.eu/tech/2019/03/11/pip-install-from-a-git-repository/.
Problem confirmed on Arch Linux (installed via pacman)
[debug] System config: []
[debug] User config: []
[debug] Custom config: []
[debug] Command-line args: ['--no-playlist', '-r', '10M', '--verbose', '<video_url>']
[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.11-arch1-1-x86_64-with-glibc2.37
[debug] exe versions: ffmpeg 5.1.2, ffprobe 5.1.2
[debug] Proxy map: {}
[youtube] Op_IcE9PVps: Downloading webpage
[youtube] Downloading just video <short_url> because of --no-playlist
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/lib/python3.10/site-packages/youtube_dl/YoutubeDL.py", line 815, in wrapper
return func(self, *args, **kwargs)
File "/usr/lib/python3.10/site-packages/youtube_dl/YoutubeDL.py", line 836, in __extract_info
ie_result = ie.extract(url)
File "/usr/lib/python3.10/site-packages/youtube_dl/extractor/common.py", line 534, in extract
ie_result = self._real_extract(url)
File "/usr/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/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
So, is it about markup change?
UK based. Similar to all above. Consistent behaviour across multiple candidate videos.
$ youtube-dl "https://www.youtube.com/watch?v=grCTXGW3sxQ&list=PL5wBMT6Z03J6mzp6UD2TNtWpYo3Bh5ULA"
$ youtube-dl "https://www.youtube.com/watch?v=grCTXGW3sxQ"
$ youtube-dl -i PL5wBMT6Z03J6mzp6UD2TNtWpYo3Bh5ULA
All the same result.
[debug] System config: []
[debug] User config: []
[debug] Custom config: []
[debug] Command-line args: [u'--verbose', u'https://www.youtube.com/watch?v=grCTXGW3sxQ&list=PL5wBMT6Z03J6mzp6UD2TNtWpYo3Bh5ULA']
[debug] Encodings: locale UTF-8, fs UTF-8, out None, pref UTF-8
[debug] youtube-dl version 2021.12.17
[debug] Python version 2.7.17 (CPython) - Linux-4.15.0-204-generic-x86_64-with-Ubuntu-18.04-bionic
[debug] exe versions: ffmpeg 3.4.11, ffprobe 3.4.11
[debug] Proxy map: {}
[youtube:tab] Downloading playlist PL5wBMT6Z03J6mzp6UD2TNtWpYo3Bh5ULA - add --no-playlist to just download video grCTXGW3sxQ
[youtube:tab] PL5wBMT6Z03J6mzp6UD2TNtWpYo3Bh5ULA: Downloading webpage
[youtube:tab] PL5wBMT6Z03J6mzp6UD2TNtWpYo3Bh5ULA: Downloading webpage
[download] Downloading playlist: The Guild: Season 1
[youtube:tab] playlist The Guild: Season 1: Downloading 10 videos
[download] Downloading video 1 of 10
[youtube] grCTXGW3sxQ: 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)
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.
Installed via pip3
on Fedora 37 - version 2021.12.17
. Error log matches above.
Please let me also add my output
Hello I run on Windows without Python and the solution described above does not apply to this configuration, will there be a new build that is working or should we just move on to another project ?
For Linux:
python3 youtube_dl/__main__.py YT_ID
I have this problem with "latest" 2021.12.17 (i.e. 1+ year old) release too; the problem cropped up just today. But unlike many people who reported here: I actually use YouTube-DL from a very old (GNU/Linux) system, so YouTuble-DLP is not an option for me...
$ youtube-dl --version
2021.12.17
$ youtube-dl -f 18 https://www.youtube.com/watch?v=57US7TpC38w
[youtube] 57US7TpC38w: Downloading webpage
[youtube] 57US7TpC38w: Downloading player 11e3a4ec
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.
$ youtube-dl -f 18 --verbose https://www.youtube.com/watch?v=57US7TpC38w
[debug] System config: []
[debug] User config: []
[debug] Custom config: []
[debug] Command-line args: [u'-f', u'18', u'--verbose', u'https://www.youtube.com/watch?v=57US7TpC38w']
[debug] Encodings: locale TIS-620, fs TIS-620, out TIS-620, pref TIS-620
[debug] youtube-dl version 2021.12.17
[debug] Python version 2.7.3 (CPython) - Linux-3.2.0-4-686-pae-i686-with-debian-7.0
[debug] exe versions: avconv 0.8.18-6, avprobe 0.8.18-6, ffmpeg 0.8.10-6, ffprobe 0.8.18-6, rtmpdump 2.4
[debug] Proxy map: {}
[youtube] 57US7TpC38w: 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)
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.
$
Regarding a use of current Git version, I do know how to use Git, but there is also more complication: I have found that current master
commit of YouTube-DL at the time of this writing (2dd6c6e) also failed to run on my configuration, for a different reason (very likely a regression)...
$ git checkout master
Switched to branch 'master'
$ git checkout -q 2dd6c6e
$ git clean -qxdf ; git checkout -f
$ make
mkdir -p zip
for d in youtube_dl youtube_dl/downloader youtube_dl/extractor youtube_dl/postprocessor ; do \
mkdir -p zip/$d ;\
cp -pPR $d/*.py zip/$d/ ;\
done
touch -t 200001010101 zip/youtube_dl/*.py zip/youtube_dl/*/*.py
mv zip/youtube_dl/__main__.py zip/
cd zip ; zip -q ../youtube-dl youtube_dl/*.py youtube_dl/*/*.py __main__.py
rm -rf zip
echo '#!/usr/bin/env python' > youtube-dl
cat youtube-dl.zip >> youtube-dl
rm youtube-dl.zip
chmod a+x youtube-dl
COLUMNS=80 /usr/bin/env python youtube_dl/__main__.py --help | /usr/bin/env python devscripts/make_readme.py
/usr/bin/env python devscripts/make_contributing.py README.md CONTRIBUTING.md
/bin/sh: 1: pandoc: not found
/bin/sh: 1: [: =: unexpected operator
pandoc -f markdown -t plain README.md -o README.txt
make: pandoc: Command not found
make: *** [README.txt] Error 127
$ ./youtube-dl -f 18 https://www.youtube.com/watch?v=57US7TpC38w
Traceback (most recent call last):
File "/usr/lib/python2.7/runpy.py", line 162, in _run_module_as_main
"__main__", fname, loader, pkg_name)
File "/usr/lib/python2.7/runpy.py", line 72, in _run_code
exec code in run_globals
File "./youtube-dl/__main__.py", line 19, in <module>
File "./youtube-dl/youtube_dl/__init__.py", line 475, in main
File "./youtube-dl/youtube_dl/__init__.py", line 465, in _real_main
File "./youtube-dl/youtube_dl/YoutubeDL.py", line 2081, in download
File "./youtube-dl/youtube_dl/YoutubeDL.py", line 801, in extract_info
File "./youtube-dl/youtube_dl/extractor/common.py", line 415, in suitable
File "/usr/lib/python2.7/re.py", line 190, in compile
return _compile(pattern, flags)
File "/usr/lib/python2.7/re.py", line 242, in _compile
raise error, v # invalid expression
sre_constants.error: nothing to repeat
$
Out of curiosity, I decided to do git bisect
test (2021.12.17
a.k.a. 5014bd6 good, 2dd6c6e bad) to see what caused this regression, and I found that:
e19ec5232216fd801ded88728df5b50bfb05c1cc is the first bad commit
commit e19ec5232216fd801ded88728df5b50bfb05c1cc
Author: dirkf <fieldhouse@gmx.net>
Date: Sat Feb 11 03:25:14 2023 +0000
[Vimeo] Support /user{video_id}/{slug} URL format
:040000 040000 295c3c4303d73aa07a4d79f13a3acc31aa67a624 b1578ac329c110ea3096b31c38a4bfee4fd92f1b M youtube_dl
So I went back to current master
(2dd6c6e) and backed this offending commit out using git show e19ec52 | patch -p1 -R
, then tried again... and voila!
$ git checkout -qf 2dd6c6e ; git clean -qxdf
$ git show e19ec52 | patch -p1 -R
patching file youtube_dl/extractor/vimeo.py
$ make
mkdir -p zip
for d in youtube_dl youtube_dl/downloader youtube_dl/extractor youtube_dl/postprocessor ; do \
mkdir -p zip/$d ;\
cp -pPR $d/*.py zip/$d/ ;\
done
touch -t 200001010101 zip/youtube_dl/*.py zip/youtube_dl/*/*.py
mv zip/youtube_dl/__main__.py zip/
cd zip ; zip -q ../youtube-dl youtube_dl/*.py youtube_dl/*/*.py __main__.py
rm -rf zip
echo '#!/usr/bin/env python' > youtube-dl
cat youtube-dl.zip >> youtube-dl
rm youtube-dl.zip
chmod a+x youtube-dl
COLUMNS=80 /usr/bin/env python youtube_dl/__main__.py --help | /usr/bin/env python devscripts/make_readme.py
/usr/bin/env python devscripts/make_contributing.py README.md CONTRIBUTING.md
/bin/sh: 1: pandoc: not found
/bin/sh: 1: [: =: unexpected operator
pandoc -f markdown -t plain README.md -o README.txt
make: pandoc: Command not found
make: *** [README.txt] Error 127
$ ./youtube-dl -f 18 https://www.youtube.com/watch?v=57US7TpC38w
[youtube] 57US7TpC38w: Downloading webpage
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.
[download] Destination: Jefferz Koi () -English Cover- (Gen Hoshino)-57US7TpC38w.mp4
[download] 100% of 13.21MiB in 27:01
$
And once I installed Pandoc on the system and re-run Make, it completed and I could finally install the patched YouTube-DL on my system:
$ make
pandoc -f markdown -t plain README.md -o README.txt
/usr/bin/env python devscripts/prepare_manpage.py youtube-dl.1.temp.md
pandoc -s -f markdown -t man youtube-dl.1.temp.md -o youtube-dl.1
rm -f youtube-dl.1.temp.md
/usr/bin/env python devscripts/bash-completion.py
/usr/bin/env python devscripts/zsh-completion.py
/usr/bin/env python devscripts/fish-completion.py
/usr/bin/env python devscripts/make_supportedsites.py docs/supportedsites.md
$ su
Password:
# make install
install -d /usr/local/bin
install -m 755 youtube-dl /usr/local/bin
install -d /usr/local/man/man1
install -m 644 youtube-dl.1 /usr/local/man/man1
install -d /etc/bash_completion.d
install -m 644 youtube-dl.bash-completion /etc/bash_completion.d/youtube-dl
install -d /usr/local/share/zsh/site-functions
install -m 644 youtube-dl.zsh /usr/local/share/zsh/site-functions/_youtube-dl
install -d /etc/fish/completions
install -m 644 youtube-dl.fish /etc/fish/completions/youtube-dl.fish
#
^ So this is the current "workaround" procedure for people who are using (and/or care about) older systems. I'll probably report the regression later as a separate bug once I have time to.
YouTube-DL (original version tried): 2021.12.17 (source) YouTube-DL (new, failed to compile): 2021.12.17-185-g2dd6c6e (Git 17-Feb-2023) YouTube-DL (new, working): 2021.12.17-185-g2dd6c6e (Git 17-Feb-2023) with e19ec52 backed out Python: 2.7.3 (Debian) Git: 1.7.10.4 (Debian) System: Debian GNU/Linux 7.0 "Wheezy" i386
I'm chiming in...
On current master (commit 2dd6c6edd8e0fc5e45865b8e6d865e35147de772), listing available formats (-F
) for Eat Bulaga Ending as test video, the error is downgraded to warning and the operation successed:
$ python -m youtube_dl --verbose -F https://www.youtube.com/watch?v=A9LEbObHj4Q
[debug] System config: []
[debug] User config: []
[debug] Custom config: []
[debug] Command-line args: ['--verbose', '-F', 'https://www.youtube.com/watch?v=A9LEbObHj4Q']
[debug] Encodings: locale UTF-8, fs utf-8, out utf-8, pref UTF-8
[debug] youtube-dl version 2021.12.17
[debug] Git HEAD: 2dd6c6edd8
[debug] Python version 3.9.2 (CPython) - Linux-5.15.94-local-x86_64-with-glibc2.31
[debug] exe versions: ffmpeg 4.3.5-0, ffprobe 4.3.5-0
[debug] Proxy map: {}
[youtube] A9LEbObHj4Q: Downloading webpage
[debug] [youtube] Decrypted nsig yxdppYjbtnVbZgzk => oo8-RwB1XhDfkQ
[debug] [youtube] Decrypted nsig wVL_yTGRKUoYhvNy => 2WZ00dc808wTlg
WARNING: 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.
[info] Available formats for A9LEbObHj4Q:
format code extension resolution note
249 webm audio only tiny 40k , webm_dash container, opus @ 40k (48000Hz), 428.06KiB
250 webm audio only tiny 50k , webm_dash container, opus @ 50k (48000Hz), 528.82KiB
251 webm audio only tiny 92k , webm_dash container, opus @ 92k (48000Hz), 964.77KiB
140 m4a audio only tiny 129k , m4a_dash container, mp4a.40.2@129k (44100Hz), 1.32MiB
278 webm 256x144 144p 97k , webm_dash container, vp9@ 97k, 30fps, video only, 1020.93KiB
160 mp4 256x144 144p 111k , mp4_dash container, avc1.4d400c@ 111k, 30fps, video only, 1.14MiB
242 webm 426x240 240p 213k , webm_dash container, vp9@ 213k, 30fps, video only, 2.18MiB
133 mp4 426x240 240p 233k , mp4_dash container, avc1.4d4015@ 233k, 30fps, video only, 2.38MiB
243 webm 640x360 360p 369k , webm_dash container, vp9@ 369k, 30fps, video only, 3.77MiB
134 mp4 640x360 360p 526k , mp4_dash container, avc1.4d401e@ 526k, 30fps, video only, 5.37MiB
244 webm 854x480 480p 704k , webm_dash container, vp9@ 704k, 30fps, video only, 7.19MiB
135 mp4 854x480 480p 962k , mp4_dash container, avc1.4d401f@ 962k, 30fps, video only, 9.83MiB
247 webm 1280x720 720p 1456k , webm_dash container, vp9@1456k, 30fps, video only, 14.86MiB
136 mp4 1280x720 720p 1824k , mp4_dash container, avc1.64001f@1824k, 30fps, video only, 18.62MiB
18 mp4 640x360 360p 626k , avc1.42001E, 30fps, mp4a.40.2 (44100Hz), 6.40MiB
22 mp4 1280x720 720p 1952k , avc1.64001F, 30fps, mp4a.40.2 (44100Hz) (best)
you-get still works as before.
@dirkf, you are going to have a terrible time playing whack-a-mole with duplicates. I suggest you should pin this, along with update instructions (pip / https://github.com/ytdl-patched/youtube-dl) to hopefully reduce the number of dups being opened
"are going to"?!
@nachanon, you're trying too hard. Just install the checked-out master in place of your previous installation ... at least once #31597 is fixed. Thanks.
Your Python probably doesn't have a pip that can do that directly from the repo, or perhaps not even from a local archive, but you can just copy the checked-out youtube_dl
directory in place of the one in your installation (after backing up, obvs).
Also, @camopants, @s1sw4nto (but #31600).
FWIW: suggesting that fork of yt-dlp
does not help some people, particularly those who cannot upgrade (for whatever reason) to Python 3.7. I fit in with that camp. yt-dlp
is not an option for me as I am pinned on py 3.6 and cannot upgrade.
That said, running from master worked for me. See: https://github.com/ytdl-org/youtube-dl/issues/31530#issuecomment-1435447033
@dirkf, you are going to have a terrible time playing whack-a-mole with duplicates. I suggest you should pin this, along with update instructions (pip / https://github.com/ytdl-patched/youtube-dl) to hopefully reduce the number of dups being opened
I think so.
FYI, I came to this issue when browsing this repo. The topmost commit was 2dd6c6edd8e0fc5e45865b8e6d865e35147de772, which mentioned this issue (and it is related).
I guess that when this issue has been closed and fixed, a new release should be made and inform users to immediately upgrade.
@jmazzitelli, like @nPHYN1T3, just use pip with your relatively up-to-date Python.
Also @dirkk0, @buhtz, @comicsansgreenki, @huzzam, @jamiedaniel, @joyspce, @VinnieThePooh, @LaTaupeEspagnole.
Pass...pip, pypy, composer, npm, yada yada malware bloat installers.
Thanks. I'm a python noob - I have no idea if installing stuff via pip will screw up my 3.6 environment (its very important I do not impact my py 3.6) .. so I avoided it.
And, actually, I was able to grab a patched version from here, and that worked good, too. Just replaced my old youtube-dl with that and all worked well.
So, there are at least 2 ways people can fix this problem without worrying about that yt-dlp fork.
Either run from master or get that patched youtube-dl.
... I have no idea if installing stuff via pip will screw up my 3.6 environment (its very important I do not impact my py 3.6) .. so I avoided it.
No, pip is a core feature of your Python installation, so use it.
The ability to install directly from a git repo, in particular from GitHub, is fairly recent. v20.3.4 is the last version that works in 2.7, 3.5 and later. For other versions check the pip changelog: eg, 3.2 needs 7.1.2, 3.4 needs 19.1.1 (thanks @Vangelis66).
Thanks. I'm a python noob - I have no idea if installing stuff via pip will screw up my 3.6 environment (its very important I do not impact my py 3.6) .. so I avoided it.
And, actually, I was able to grab a patched version from here, and that worked good, too. Just replaced my old youtube-dl with that and all worked well.
So, there are at least 2 ways people can fix this problem without worrying about that yt-dlp fork.
Either run from master or get that patched youtube-dl.
I was able to pip install the source package and can confirm the fix. I'm a novice-intermediate with python and I don't believe this install will affect your environment since it's just a pip install.
This issue also hit me today, 1st time ever I've had a youtube-dl bug. I have verified my installation is current via the youtube-dl -U switch. It occurred when trying to download youtube vid ( https://www.youtube.com/watch?v=Jnc77gMihPo ) on my Windows 10 OS HP laptop. Verbose log for you -- thanks and kind regards:
@gspears333 and also see https://github.com/ytdl-org/youtube-dl/issues/31530#issuecomment-1435687661
@gspears333, see #31530 (comment), #31530 (comment), and #31535.
Dude -- you the bomb! Thanks and the patch (the .exe version) has been successful on my yt download. Thanks again,....
Error remains after running youtube-dl -U: youtube-dl is up-to-date (2021.12.17) - Has this issue been fixed or am I misunderstanding?
To acquire the fix review the thread above, depending on your installation type. See also #31535.
After the issue showed up in the UK last night, I looked at problem video 3h5-QPbKoVg
:
'uploader': 'Audio Visual Clips',
'uploader_id': 'NA',
'channel': 'Audio Visual Clips',
'channel_id': 'UC9AY3VP-VqMJh_Uj_1BbSPA',
'channel_url': 'https://www.youtube.com/channel/UC9AY3VP-VqMJh_Uj_1BbSPA',
In this page the @...
value appears here:
<span itemprop="author" itemscope itemtype="http://schema.org/Person">
<link itemprop="url" href="http://www.youtube.com/@Audio-Visual-Clips">
<link itemprop="name" content="Audio Visual Clips">
</span>
And here, but this is just a navigation link:
<script type="application/ld+json" nonce="cgNt_K7hab_AuFX-K8HbPA">
{
'@context': 'http://schema.org',
'@type': 'BreadcrumbList',
'itemListElement': [
{
'@type': 'ListItem',
'position': 1,
'item': {
'@id': 'http://www.youtube.com/@Audio-Visual-Clips',
'name': 'Audio Visual Clips'
}
}
]
}
</script>
And in the ytInitialPlayerResponse
:
"ownerProfileUrl":"http://www.youtube.com/@Audio-Visual-Clips"
And in the ytInitialData
, hidden in metadata attached to videoSecondaryInfoRenderer.owner
, and also in the secondary video channel list and play-next items that come from the same uploader/channel.
While UC9AY3VP-VqMJh_Uj_1BbSPA
appears in
<meta itemprop="channelId" content="UC9AY3VP-VqMJh_Uj_1BbSPA">
And in the ytInitialPlayerResponse
"channelId":"UC9AY3VP-VqMJh_Uj_1BbSPA"
...
"externalChannelId":"UC9AY3VP-VqMJh_Uj_1BbSPA"
To summarise:
value\location | HTML | videoDetails | microformat | twoColumnWatchNextResults |
---|---|---|---|---|
Audio Visual Clips | author>name | author | ownerChannelName | owner...title |
/user/Audio... | -none- | -none- | -none- | -none- |
/@Audio-Visual-Clips | author>url | ownerProfileUrl | -none- | owner...canonicalBaseUrl |
UC9AY3VP-VqMJh_Uj_1BbSPA | channelId | channelId | externalChannelId | owner...browseId |
In the final column I skipped some excessively deeply nested equivalents.
Now look at the yt-dl test video BaW_jenozKc
, where these values are expected:
'uploader': 'Philipp Hagemeister',
'uploader_id': 'phihag',
'uploader_url': r're:https?://(?:www\.)?youtube\.com/user/phihag',
'channel': 'Philipp Hagemeister',
'channel_id': 'UCLqxVugv74EIW3VWh2NOa3Q',
'channel_url': r're:https?://(?:www\.)?youtube\.com/channel/UCLqxVugv74EIW3VWh2NOa3Q',
In the page that is now being served:
Philipp Hagemeister
appears where Audio Visual Clips
appeared in 3h5-QPbKoVg
phihag
(apart from Philipp's email address)/user/phihag
eitherUCLqxVugv74EIW3VWh2NOa3Q
appears where UC9AY3VP-VqMJh_Uj_1BbSPA
appeared in 3h5-QPbKoVg
/channel/...
(but the tested value is currently created from the channel_id
and not extracted)value\location | HTML | videoDetails | microformat | twoColumnWatchNextResults |
---|---|---|---|---|
Philipp Hagemeister | author>name | author | ownerChannelName | owner...title |
phihag | -none- | -none- | -none | -none |
/user/phihag | -none- | -none- | -none- | -none |
/@PhilippHagemeister | author>url | ownerProfileUrl | -none- | owner...canonicalBaseUrl |
UCLqxVugv74EIW3VWh2NOa3Q | channelId | channelId | externalChannelId | owner...browseId |
So this supports the theory that YT is migrating to channel URLs like /@{channel}
instead of /channel/{channel_id}
, though not (yet) redirecting from the latter. And the existing test-cases can't be saved, which is a pain considering how many there are.
Proposed final resolution:
uploader
is the author text valuechannel
is the sameuploader_id
becomes the @... valuechannel_id
is channelId
uploader_url
is the author URL with /@...channel_url
is /channel/{channel_id}
at least while that is valid.https://github.com/ytdl-org/youtube-dl/issues/31530#issuecomment-1435734719: Proposed final resolution:
uploader
is the author text valuechannel
is the sameuploader_id
becomes the @... valuechannel_id
ischannelId
uploader_url
is the author URL with /@...channel_url
is/channel/{channel_id}
at least while that is valid.
In yt-dlp we're looking at changing it to something similar:
channel
and uploader
are the same (current value of channel
)
-channel_id
is only the channel UCIDchannel_url
is only the UCID channel url
uploader_id
is only the handle including the @
uploader_url
is only the handle url@nicolaasjan Thanks, your answer helped. Why doesn't the library itself correct this error? I have the latest version.
Instead of messing up my install with #31535 or likewise: when could we expect an update through youtube-dl -U, please?
Similar issue youtube changed there @ user stuff that youtube-dl hasn't implemented a fix for? due to this being a new thing
User@home:~$ youtube-dl "ytsearch:test"
[download] Downloading playlist: test
[youtube:search] query "test": Downloading page 1
[youtube:search] playlist test: Downloading 1 videos
[download] Downloading video 1 of 1
[youtube] 0l17q0EplGs: 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.
also happens with a URL
Similar issue maybe youtube did something that youtube-dl hasn't implemented a fix for?
The issue has been fixed already, there's just no release made for it for some reason so everyone's getting pointed at a manual update process in #31535. I can't imagine what that reason might be, though.
when could we expect an update through youtube-dl -U, please?
Not soon enough to avoid the update methods already documented, which is why they were.
The ability to install directly from a git repo, in particular from GitHub, is fairly recent. (pip) v20.3.4 is the last version that works in py2.7 and later (except py3.2, needs pip v7.1.2).
In py3.4
, the last compatible pip
version is 19.1.1 :wink: ; this is important to Windows XP diehards not on py2.7.18
, because py3.4.x
is the highest py3
version compatible with that OS...
After 19.1.1, came 19.2, which dropped support for any py3
version < 3.5 (but did keep support for py2.7
- and that support, like you said, was kept until (& including) pip
v20.3.4) ...
ERROR: Unable to extract uploader id; How to resolve it?
Similar behavior as with other reports in this thread.
Y'all, go /youtube_dl/extractor/common.py.
Line 983, change: fatal=True
to fatal=False
Please update binary releases for Linux, compatible with python 2.6 or 2.7
@dirkf,
@nachanon, you're trying too hard. Just install the checked-out master in place of your previous installation.
You misread my comment: I explicitly said that I had to revert some non-related commit for current Git-master YouTube-DL (2dd6c6e) to even start issuing the first request from my system-- which runs Python 2.7.3.
For that reason (now known as bug #31597), "Just install the checked-out master" will simply not work on my setup; and since the comment contains an exact procedure to make it work, hiding my comment is a disservice to other users who are fumbling in the dark to make it run from systems of similar age, a bearing similar range of Python version honestly.
YouTube-DL: 2021.12.17-185-g2dd6c6e (Git 17-Feb-2023) with e19ec52 backed out Python: 2.7.3 (Debian) System: Debian GNU/Linux 7.0 "Wheezy" i386
Not soon enough to avoid the update methods already documented, which is why they were.
Okay, so I should follow #31535, I guess. Went there, but was unclear what do do, what I need. Don't want to mess up my system. *buntu 22.04, python3.
If youtube-dl -U is not to be expected very soon, it might be good to write a comprehensive 'Manual Update' for the most common OSes, and maybe python*.
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.