LINUX.ORG.RU

youtube опять гадит yt-dlp

 


0

1

Это можно как-то починить?

yt-dlp --verbose  https://youtu.be/z7Tgr8kdWKk
[debug] Command-line config: ['--verbose', 'https://youtu.be/z7Tgr8kdWKk']
[debug] Encodings: locale UTF-8, fs utf-8, out utf-8, err utf-8, pref UTF-8
[debug] yt-dlp version 2021.12.27 [6223f67a8]
[debug] Python version 3.10.9 (CPython 64bit) - Linux-4.19.272-1-MANJARO-x86_64-with-glibc2.37
[debug] exe versions: ffmpeg 5.1.2 (setts), ffprobe 5.1.2, rtmpdump 2.4
[debug] Optional libraries: Cryptodome, mutagen, sqlite
[debug] Proxy map: {}
[debug] [youtube] Extracting URL: https://youtu.be/z7Tgr8kdWKk
[youtube] z7Tgr8kdWKk: Downloading webpage
[youtube] z7Tgr8kdWKk: Downloading android player API JSON
[debug] Sort order given by extractor: quality, res, fps, hdr:12, source, codec:vp9.2, lang, proto
[debug] Formats sorted by: hasvid, ie_pref, quality, res, fps, hdr:12(7), source, vcodec:vp9.2(10), acodec, lang, proto, filesize, fs_approx, tbr, vbr, abr, asr, vext, aext, hasaud, id
ERROR: [youtube] z7Tgr8kdWKk: Unable to extract uploader id; please report this issue on  https://github.com/yt-dlp/yt-dlp . Make sure you are using the latest version; see  https://github.com/yt-dlp/yt-dlp  on how to update. Be sure to call yt-dlp with the --verbose flag and include its complete output.; please report this issue on  https://github.com/yt-dlp/yt-dlp . Make sure you are using the latest version; see  https://github.com/yt-dlp/yt-dlp  on how to update. Be sure to call yt-dlp with the --verbose flag and include its complete output.
  File "~/.local/lib/python3.10/site-packages/yt_dlp/extractor/common.py", line 599, in extract
    ie_result = self._real_extract(url)
  File "~/.local/lib/python3.10/site-packages/yt_dlp/extractor/youtube.py", line 3014, in _real_extract
    'uploader_id': self._search_regex(r'/(?:channel|user)/([^/?&#]+)', owner_profile_url, 'uploader id') if owner_profile_url else None,
  File "~/.local/lib/python3.10/site-packages/yt_dlp/extractor/common.py", line 1173, in _search_regex
    raise RegexNotFoundError('Unable to extract %s' % _name)

Youtube гадит практически ежедневно. Чинят - разработчики yt-dlp, так же ежедневно. Надо просто юзать актуальную версию, а не

2021.12.27

вот это вот.

token_polyak ★★★★
()
Ответ на: комментарий от krasnh

не обновляется(

yt-dlp -U
Latest version: 2023.02.17, Current version: 2021.12.27
ERROR: It looks like you installed yt-dlp with a package manager, pip, setup.py or a tarball; Use that to update
$ yay -S  yt-dlp
предупреждение: yt-dlp-2023.01.06-1 не устарел -- переустанавливается
разрешение зависимостей...
проверка конфликтов...

Пакеты (1) yt-dlp-2023.01.06-1

Будет установлено:  21,56 MiB
Изменение размера:   0,00 MiB

:: Приступить к установке? [Y/n] 
(1/1) проверка ключей                                                        [###########################################] 100%
(1/1) проверка целостности пакета                                            [###########################################] 100%
(1/1) загрузка файлов пакетов                                                [###########################################] 100%
(1/1) проверка конфликтов файлов                                             [###########################################] 100%
(1/1) проверка доступного места                                              [###########################################] 100%
:: Обработка изменений пакета...
(1/1) переустановка yt-dlp                                                   [###########################################] 100%
:: Запуск post-transaction hooks...
(1/1) Arming ConditionNeedsUpdate...

yt-dlp -U
Latest version: 2023.02.17, Current version: 2021.12.27
ERROR: It looks like you installed yt-dlp with a package manager, pip, setup.py or a tarball; Use that to update

Я ничего не ставил пипом, но пробую удалить:

pip3 install -r  yt-dlp
Defaulting to user installation because normal site-packages is not writeable
ERROR: Invalid requirement: 'import re' (from line 3 of yt-dlp)
hikikomori ★★★
() автор топика
Последнее исправление: hikikomori (всего исправлений: 1)
Ответ на: комментарий от hikikomori

Я ничего не ставил пипом, но пробую удалить

Ты это специально делаешь?

Если не ставил pip’ом, то надо обновлять/удалять тем, чем ставил (а не pip’ом), это, наверное, логично, разве нет?

Dimez ★★★★★
()
Последнее исправление: Dimez (всего исправлений: 1)
Ответ на: комментарий от token_polyak

Да, я уже понял…

pip uninstall  yt-dlp
Found existing installation: yt-dlp 2023.1.6
Uninstalling yt-dlp-2023.1.6:
  Would remove:
    /usr/bin/yt-dlp
    /usr/lib/python3.10/site-packages/yt_dlp-2023.1.6.dist-info/*
    /usr/lib/python3.10/site-packages/yt_dlp/*
    /usr/share/bash-completion/completions/yt-dlp
    /usr/share/doc/yt_dlp/README.txt
    /usr/share/fish/vendor_completions.d/yt-dlp.fish
    /usr/share/zsh/site-functions/_yt-dlp
Proceed (Y/n)? y
ERROR: Exception:
Traceback (most recent call last):
  File "/usr/lib/python3.10/shutil.py", line 816, in move
    os.rename(src, real_dst)
OSError: [Errno 18] Неверная ссылка между устройствами: '/usr/bin/yt-dlp' -> '/tmp/pip-uninstall-qy_h5inq/yt-dlp'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/usr/lib/python3.10/site-packages/pip/_internal/cli/base_command.py", line 160, in exc_logging_wrapper
    status = run_func(*args)
  File "/usr/lib/python3.10/site-packages/pip/_internal/commands/uninstall.py", line 103, in run
    uninstall_pathset = req.uninstall(
  File "/usr/lib/python3.10/site-packages/pip/_internal/req/req_install.py", line 664, in uninstall
    uninstalled_pathset.remove(auto_confirm, verbose)
  File "/usr/lib/python3.10/site-packages/pip/_internal/req/req_uninstall.py", line 373, in remove
    moved.stash(path)
  File "/usr/lib/python3.10/site-packages/pip/_internal/req/req_uninstall.py", line 271, in stash
    renames(path, new_path)
  File "/usr/lib/python3.10/site-packages/pip/_internal/utils/misc.py", line 312, in renames
    shutil.move(old, new)
  File "/usr/lib/python3.10/shutil.py", line 837, in move
    os.unlink(src)
PermissionError: [Errno 13] Отказано в доступе: '/usr/bin/yt-dlp'

hikikomori ★★★
() автор топика
Ответ на: комментарий от hikikomori

$ yay -S yt-dlp предупреждение: yt-dlp-2023.01.06-1 не устарел – переустанавливается

У тебя похоже несколько разных версий в разных директориях установлено. При этом первой запускается старая. Проверь с whereis yt-dlp.

upd. Хотя и эта тоже устарела (2023.01.06), но все же не 2021.12.27.

krasnh ★★★
()
Последнее исправление: krasnh (всего исправлений: 1)
Ответ на: комментарий от krasnh
whereis yt-dlp
yt-dlp: /usr/bin/yt-dlp /usr/share/man/man1/yt-dlp.1.gz


yt-dlp -U
bash: ~/.local/bin/yt-dlp: Нет такого файла или каталога

$ /usr/bin/yt-dlp -U
Latest version: 2023.02.17, Current version: 2023.01.06
ERROR: You installed yt-dlp with a package manager or setup.py; Use that to update

Однако оттуда не могу удалить:

pip3 uninstall  yt-dlp
Found existing installation: yt-dlp 2023.1.6
Uninstalling yt-dlp-2023.1.6:
  Would remove:
    /usr/bin/yt-dlp
    /usr/lib/python3.10/site-packages/yt_dlp-2023.1.6.dist-info/*
    /usr/lib/python3.10/site-packages/yt_dlp/*
    /usr/share/bash-completion/completions/yt-dlp
    /usr/share/doc/yt_dlp/README.txt
    /usr/share/fish/vendor_completions.d/yt-dlp.fish
    /usr/share/zsh/site-functions/_yt-dlp
Proceed (Y/n)? y
ERROR: Exception:
Traceback (most recent call last):
  File "/usr/lib/python3.10/shutil.py", line 816, in move
    os.rename(src, real_dst)
OSError: [Errno 18] Неверная ссылка между устройствами: '/usr/bin/yt-dlp' -> '/tmp/pip-uninstall-b6mchh5g/yt-dlp'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/usr/lib/python3.10/site-packages/pip/_internal/cli/base_command.py", line 160, in exc_logging_wrapper
    status = run_func(*args)
  File "/usr/lib/python3.10/site-packages/pip/_internal/commands/uninstall.py", line 103, in run
    uninstall_pathset = req.uninstall(
  File "/usr/lib/python3.10/site-packages/pip/_internal/req/req_install.py", line 664, in uninstall
    uninstalled_pathset.remove(auto_confirm, verbose)
  File "/usr/lib/python3.10/site-packages/pip/_internal/req/req_uninstall.py", line 373, in remove
    moved.stash(path)
  File "/usr/lib/python3.10/site-packages/pip/_internal/req/req_uninstall.py", line 271, in stash
    renames(path, new_path)
  File "/usr/lib/python3.10/site-packages/pip/_internal/utils/misc.py", line 312, in renames
    shutil.move(old, new)
  File "/usr/lib/python3.10/shutil.py", line 837, in move
    os.unlink(src)
PermissionError: [Errno 13] Отказано в доступе: '/usr/bin/yt-dlp'

hikikomori ★★★
() автор топика
Ответ на: комментарий от hikikomori

Удаляю его yay и pip3. всё удаляется. потом ставлю, и:

yt-dlp -U
bash: ~/.local/bin/yt-dlp: Нет такого файла или каталога
/usr/bin/yt-dlp -U
Latest version: 2023.02.17, Current version: 2023.01.06
ERROR: You installed yt-dlp with a package manager or setup.py; Use that to update
hikikomori ★★★
() автор топика
Ответ на: комментарий от hikikomori

Надо обязательно 2023.02.17, именно там недавно чинили ютуб, после его очередного ‘демарша’ с кодом.

yt-dlp -U
bash: ~/.local/bin/yt-dlp: Нет такого файла или каталога

Не знаю, откуда такая директория. Ставится или в /usr/local/bin или /usr/bin/.

krasnh ★★★
()
Последнее исправление: krasnh (всего исправлений: 1)
Ответ на: комментарий от Dimez

yay.

Сейчас удалил через yay, и проверил что через pip тоже не установлен. Но такое ощущение, что когда поставлен через yay, pip тоже думает, что он поставлен.

Как мне подчистить хвосты и мусор после него? Сначала нужно что-то подчистить, потом снова поставлю, иначе версию опять не увидит новую

Настораживает такой ответ:

$ yt-dlp
bash: ~/.local/bin/yt-dlp: Нет такого файла или каталога

Просто неизвестная команда:

yt-dlp123
bash: yt-dlp123: команда не найдена
hikikomori ★★★
() автор топика
Ответ на: комментарий от hikikomori

У тебя похоже что-то не то с версиями питона, похоже какое-то несоответствие между тем, который использует твой /usr/bin/yt-dlp и тем, что установлен в системе.

Раз система итак испорчена, может есть смысл кувалдой забить: удали вручную все и всякие файлы yt-dlp, потом поставь самый новый, но с сайта https://github.com/yt-dlp/yt-dlp/releases/tag/2023.02.17 , а не из пакетного менеджера.

praseodim ★★★★★
()
Последнее исправление: praseodim (всего исправлений: 1)
Ответ на: комментарий от hikikomori

yay

Это пакетный менеджер. Тебе английским по белому пишут «You installed yt-dlp with a package manager or setup.py; Use that to update». Ты плохо знаешь английский?

У тебя 3 варианта ставить yt-dlp:

  1. пакетный менеджер дистрибутива

  2. пакетный менеджер питона pip

  3. вручную через скачивание бинаря

Обновление через -U работает исключительно в 3-м случае, о чём yt-dlp тебе пишет в этом треде много раз

P.S. Пути 4, ещё через setup.py, на него тоже не распространяется yt-dlp -U, что логично.

Dimez ★★★★★
()
Последнее исправление: Dimez (всего исправлений: 3)
Ответ на: комментарий от hikikomori

И потом каждый раз ставить вручную новую версию? нее..

Не вручную, а через yt-dlp -U

А что удалить-то? огткуда?

rm /usr/bin/yt-dlp и все что найдется yt-dlp (кроме установочного файла, если ты его скачал)

praseodim ★★★★★
()
Ответ на: комментарий от Dimez

У меня он сейчас вообще не установлен. Почему такая реакция?

yt-dlp
bash: ~/.local/bin/yt-dlp: Нет такого файла или каталога

как её удалить? Это вообще где хранится?

Поставил пока через pip - установился.

hikikomori ★★★
() автор топика
Ответ на: комментарий от hikikomori

Почему такая реакция?

https://unix.stackexchange.com/questions/5609/how-do-i-clear-bashs-cache-of-paths-to-executables

К слову, это первая же ссылка по словам bash cache clear

Перевод нужен?

Dimez ★★★★★
()
Последнее исправление: Dimez (всего исправлений: 2)
Ответ на: комментарий от Jeronimo

нет, я теперь помню, что из пипки поставил. но раньше я ставил из репы. Не понимаю, откуда взялась в pip версия. Склероз или самодеятельность скриптов.

hikikomori ★★★
() автор топика
Ответ на: комментарий от hikikomori

как её удалить? Это вообще где хранится?

Наверное неактуально уже, но если ты чего-то удалил/переустановил, а потом в ответ на имя программы баш тебе говорит что по конкретному пути этой программы нет, то это тебе сам баш срет. Введи в нем hash -r, он кэш известных команд пересчитает, после этого проблема исправится

khrundel ★★★★
()