Библиотека сайта rus-linux.net
Пишем собственный скрипт для скачивания музыки с Youtube
Оригинал: Write Your Own Youtube Music Downloader ScriptАвтор: panos georgiadis
Дата публикации: 24 июля 2012 года
Перевод: А. Кривошей
Дата перевода: 27 августа 2012 г.
Бесспорным фактом является то, что YouTube является одним из трех самых посещаемых веб-сайтов в мире. Многие люди загружают туда созданные ими клипы, песни, подкасты, скринкасты и т.д., все это доступно каждому пользователю интернет.
Эти видеоклипы предназначены только для домашнего использования. Но если говорить честно, я даже не могу вспомнить, сколько раз я заходил на YouTube, чтобы послушать свои любимые песни, или просто случайно натыкался на каналы, заполненные защищенной копирайтом музыки. В связи с этим возникает вопрос...
Легально ли скачивать видеоклипы с Youtube?
И да и нет. В техническом смысле, если вы посмотрите на временные файлы в Ubuntu, любое просматриваемое вами видео или по крайней мере часть его уже скачаны на ваш компьютер. Но просто сказать, что оно теперь ваше, вы не можете. В целом, если вы уже имеете скачиваемый контент, то все в порядке (например, как вы делаете рип с купленного CD, чтобы слушать в mp3 на портативном плейере). Хотя, в наши дни так много различий в законах в зависимости от страны, где вы живете, политики YouTube, музыкальной индустрии, MPAA/RIAA, ACTA, гражданских прав... Все это усложняет ситуацию. Поэтому, пожалуйста, перед тем как скачивать что-нибудь, убедитесь, что этот видеоклип не защищен копирайтом.
Целью этой статьи является показать вам мощь терминала, а не вовлекать вас в какие-либо незаконные действия. Поэтому скачивание защищенного копирайтом контента или использование его для получения прибыли (например продажа CD с защищенными копирайтом материалами) недопустимо.
Пожалуйста, используйте это руководство только в образовательных целях.
Получение пакетов
Для скачивания видео с Youtube мы собираемся использовать Youtube-dl, а для того, чтобы конвертировать видео в аудио (mp3), мы будем использовать ffmpeg, поэтому убедитесь, что оба эти приложения корректно установлены в вашей системе. Нижеследующие инструкции предназначены для Ubuntu Precise Pangolin 12.04 LTS / Oneiric Ocelot 11.10.
$ sudo apt-get install youtube-dl $ sudo apt-get install ffmpeg libavcodec-extra-53
Написание скрипта
Откройте свой любимый текстовый редактор. Лично я предпочитаю gedit. Его можно запустить командой:
$ gedit myscript.sh
Скрипт очень прост для понимания и вы можете как угодно модифицировать его для своих нужд. Этот скрипт спрашивает вас, какого исполнителя и какую песню вы хотите, затем ищет клип на Youtube и скачивает его. Затем ffmpeg конвертирует ваше видео (обычно в формате flv) в mp3. Далее преобразованный файл перемешается в папку /home/yourname/Music.
Запуск скрипта
Чтобы запустить скрипт, необходимо сделать его исполняемым. Для этого введите следующую команду:
$ chmod +x music1.sh $ ./music
Как можно увидеть из команд скрипта, мы используем только легальные данные для скачивания видео с Youtube. Однако это не значит, что само скачивание законно. Важно действие, а не инструмент для него. Мы всего лишь хотим продемонстрировать мощь командной строки.
Модифицирование скрипта
Вы можете изменять код по своему усмотрению в соответствии со своими нуждами. Позвольте мне также предложить несколько альтернативных вариантов. Еще один скрипт позволяет автоматизировать процесс. Создайте текстовый файл и скопируйте в него все ссылки с Youtube, которые вы хотите скачать и конвертировать в mp3. Сохраните файл в той же директории, где находится скрипт. Вот его код:
Для тех, кто предпочитает скачивать плейлисты, имеется еще один вариант:
Исправление ошибок
Большинство возникающих ошибок связаны с отсутствующими кодеками в ffmpeg. Для их исправления возможно понадобится собрать ffmpeg вручную. Если проблема не в ffmpeg, попробуйте обновить yourube-dl. Если проблема не исчезла, посмотрите еще раз на код. На Youtube имеется множество доступных форматов видео, но этот скрипт работает только с .flv. Поэтому, если вам встретятся любые другие форматы, внесите соответствующие изменения в код скрипта.