Не знаю, как но после довольно продолжительно времени я уже забыл что в моей системе (Ubuntu 12.04.5 Desktop amd64) есть утилита посредством которой я скачиваю онлайн видеофрагаменты для последующего более детального ознакомпления с сайта Youtube. И вот мне понадобилась помощь утилиты youtube-dl для скачивания видео, но в процессе я наткнулся на ошибки в запуске и как оказалось повреждение самого файла в ходе обновления.
Ниже все шаги, что я делал:
ekzorchik@ekzorchik.ru:~$ /usr/bin/youtube-dl
/usr/bin/youtube-dl: строка 1: Not: команда не найдена
ekzorchik@ekzorchik.ru:~$ sudo youtube-dl -U
/usr/bin/youtube-dl: 1: /usr/bin/youtube-dl: Not: not found
ekzorchik@ekzorchik.ru:~$ sudo youtube-dl -U
/usr/bin/youtube-dl: 1: /usr/bin/youtube-dl: Not: not found
ekzorchik@ekzorchik.ru:~$ sudo bash -c "cat /usr/bin/youtube-dl"
Not Found
ekzorchik@ekzorchik.ru:~$
Странно, а почему в исполняемом файле вместо команд лишь строка «Not Found»:
ekzorchik@ekzorchik.ru:~$ ls -l /usr/bin/youtube-dl
-rwxr-xr-x 1 root root 9 дек. 10 11:55 /usr/bin/youtube-dl
ekzorchik@ekzorchik.ru:~$ file /usr/bin/youtube-dl
/usr/bin/youtube-dl: ASCII text, with no line terminators
ekzorchik@ekzorchik.ru:~$ locate youtube-dl
/usr/bin/youtube-dl
/usr/share/doc/youtube-dl
/usr/share/man/man1/youtube-dl.1.gz
/var/lib/dpkg/info/youtube-dl.list
/var/lib/dpkg/info/youtube-dl.md5sums
ekzorchik@ekzorchik.ru:~$ sudo apt-get remove youtube-dl -y
ekzorchik@ekzorchik.ru:~$ sudo updatedb
ekzorchik@ekzorchik.ru:~$ locate youtube-dl
Отлично в системе больше не осталось какого либо упоминания об утилите youtube-dl
ekzorchik@ekzorchik.ru:~$ sudo apt-get install youtube-dl -y
, а вот когда переустановил то и исполняемый файл стал больше размером и внутри появились исполняемые инструкции:
ekzorchik@ekzorchik.ru:~$ ls -l /usr/bin/youtube-dl && tail /usr/bin/youtube-dl | head -n 5
-rwxr-xr-x 1 root root 159879 мая 17 2013 /usr/bin/youtube-dl
sys.exit(1)
except SameFileError:
sys.exit(u’ERROR: fixed output name but more than one file to download’)
except KeyboardInterrupt:
sys.exit(u’\nERROR: Interrupted by user’)
ekzorchik@ekzorchik.ru:~$ md5sum /usr/bin/youtube-dl
43678cad6a1b4ff3330c2fada3206894 /usr/bin/youtube-dl
Запускаю обновление утилиты:
ekzorchik@ekzorchik.ru:~$ sudo youtube-dl -U
Updating to latest version…
Updated youtube-dl. Restart youtube-dl to use the new version.
ekzorchik@ekzorchik.ru:~$ youtube-dl
/usr/bin/youtube-dl: строка 1: Not: команда не найдена
ekzorchik@ekzorchik.ru:~$ md5sum /usr/bin/youtube-dl
9d1ead73e678fa2f51a70a933b0bf017 /usr/bin/youtube-dl
и вот оно что, в процессе обновления исполняемый файл повреждается и его содержимое представляет из себя лишь строку «Not Found»
Мне нужно скачать один видеофрагмент с сайта Youtube:
ekzorchik@ekzorchik.ru:~$ youtube-dl -t https://www.youtube.com/watch?feature=player_embedded&v=2G--OARGaLk
[1] 13769
eekzorchik@ekzorchik.ru:~$ ERROR: Did you forget to quote the URL? Remember that & is a meta character in most shells, so you want to put the URL in quotes, like youtube-dl “http://www.youtube.com/watch?feature=foo&v=BaW_jenozKc” or simply youtube-dl BaW_jenozKc .
^C
[1]+ Exit 1 youtube-dl -t https://www.youtube.com/watch?feature=player_embedded
Параметр
-t, –title
Use the title of the video in the file name used to download the video.
Скачиваю видео передав утилиту лишь его название, а не полный URL как я делал это раньше:
ekzorchik@ekzorchik.ru:~$ youtube-dl -t 2G--OARGaLk
[youtube] Setting language
[youtube] 2G–OARGaLk: Downloading webpage
[youtube] 2G–OARGaLk: Downloading video info webpage
[youtube] 2G–OARGaLk: Extracting video information
[download] Destination: ZeXtras Suite Installation Tutorial 2013-2G–OARGaLk.mp4
[download] 100% of 21.80MiB in 00:12
И судя по отчету видеофрагмент успешно скачался что мне собственно и требовалось. Хочу еще раз повториться, как важно до всего доходить самим, собственный опыт еще никто не отменял. А этой мини заметкой я хочу лишний раз себе напомнить об этом. На этом собственно и всё, с уважением автор блога — ekzorchik.
Дополнительно установить python-pip
Для обновления youtube-dl команда:
sudo pip install –upgrade youtube-dl
И всё. Обновляется без проблем.