На Ubuntu 18.04 установлена программа yt-dlp, просто скачан бинарник с гитхаба.
$ file /opt/yt-dlp/yt-dlp
/opt/yt-dlp/yt-dlp: a /usr/bin/env python3 script executable (binary data)
$ file /usr/local/bin/yt-dlp
/usr/local/bin/yt-dlp: Bourne-Again shell script, ASCII text executable
$ ls -l /usr/local/bin/yt-dlp
-rwxrwxrwx 1 root root 55 дек 5 01:33 /usr/local/bin/yt-dlp
$ cat /usr/local/bin/yt-dlp
#!/bin/bash
/usr/bin/python3.8 /opt/yt-dlp/yt-dlp "$@"
$ yt-dlp -U
Latest version: 2023.02.17, Current version: 2023.01.06
Current Build Hash 446d77c224738bb5bc8e8711014b5df3ca096997eaeeb61f7d8c10c425658255
Updating to version 2023.02.17 ...
Updated yt-dlp to version 2023.02.17
$ yt-dlp --version
Traceback (most recent call last):
File "/opt/yt-dlp/yt-dlp/yt_dlp/compat/compat_utils.py", line 36, in __getattribute__
File "/opt/yt-dlp/yt-dlp/yt_dlp/compat/compat_utils.py", line 56, in __getattr__
AttributeError: module yt_dlp.dependencies.Cryptodome.Cipher has no attribute AES
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/usr/lib/python3.8/runpy.py", line 192, in _run_module_as_main
return _run_code(code, main_globals, None,
File "/usr/lib/python3.8/runpy.py", line 85, in _run_code
exec(code, run_globals)
File "/opt/yt-dlp/yt-dlp/__main__.py", line 14, in <module>
File "<frozen importlib._bootstrap>", line 991, in _find_and_load
File "<frozen importlib._bootstrap>", line 975, in _find_and_load_unlocked
File "<frozen importlib._bootstrap>", line 655, in _load_unlocked
File "<frozen importlib._bootstrap>", line 618, in _load_backward_compatible
File "<frozen zipimport>", line 259, in load_module
File "/opt/yt-dlp/yt-dlp/yt_dlp/__init__.py", line 18, in <module>
File "<frozen importlib._bootstrap>", line 991, in _find_and_load
File "<frozen importlib._bootstrap>", line 975, in _find_and_load_unlocked
File "<frozen importlib._bootstrap>", line 655, in _load_unlocked
File "<frozen importlib._bootstrap>", line 618, in _load_backward_compatible
File "<frozen zipimport>", line 259, in load_module
File "/opt/yt-dlp/yt-dlp/yt_dlp/cookies.py", line 18, in <module>
File "<frozen importlib._bootstrap>", line 991, in _find_and_load
File "<frozen importlib._bootstrap>", line 975, in _find_and_load_unlocked
File "<frozen importlib._bootstrap>", line 655, in _load_unlocked
File "<frozen importlib._bootstrap>", line 618, in _load_backward_compatible
File "<frozen zipimport>", line 259, in load_module
File "/opt/yt-dlp/yt-dlp/yt_dlp/aes.py", line 5, in <module>
File "<frozen importlib._bootstrap>", line 991, in _find_and_load
File "<frozen importlib._bootstrap>", line 975, in _find_and_load_unlocked
File "<frozen importlib._bootstrap>", line 655, in _load_unlocked
File "<frozen importlib._bootstrap>", line 618, in _load_backward_compatible
File "<frozen zipimport>", line 259, in load_module
File "/opt/yt-dlp/yt-dlp/yt_dlp/dependencies/__init__.py", line 76, in <module>
File "/opt/yt-dlp/yt-dlp/yt_dlp/compat/compat_utils.py", line 43, in __getattribute__
File "/opt/yt-dlp/yt-dlp/yt_dlp/compat/compat_utils.py", line 56, in __getattr__
AttributeError: module yt_dlp.dependencies.Cryptodome.Cipher has no attribute AES