Здравствуйте, уважаемые коллеги.
Будучи счастливым отцом семейства, передо мной довольно долго стояла задача поиска интересных мультиков для своих чад на просторах ютуба, с последующей скачкой роликов для показа детям на телевизоре.
Задача сама по себе не сложная. Основной труд составляет процесс сохранения роликов: нужно скопипастить ссылку, найти соответствующий сервис, воспользоваться им, скачать выданный ролик. Все это довольно нудно и скучно. Поэтому было решено сделать инструмент который будет закачивать ролики, примерно как wget по списку url из файла.
Я довольно давно знал о существовании программы youtube-dl. Программа умеет скачивать ролики с гигантского количества сайтов, в том числе и с ютуба и делает она это хорошо. Изначально инструмент работает из под *nix, но, к счастью, есть версия и для windows.
Один большой минус: не умеет работать со списком url.
Будучи немного знаком с языком программирования php решил научить yutube-dl работать со списком url при помощи php-cli.
Итак:
1. Скачана последняя версия php (7.0.32)
2. В переменные окружения добавлен путь к php.exe для того что бы запускать скрипты просто из командной строки. Например
3. Написан вот такой скрипт:
youtube-dl.exe кладем рядом со скриптом.
list.txt — список url вида youtube.com/watch?v=xxxxxx, каждый url с новой строки.
colors.class.php — класс для раскраски сообщений скрипта (он не обязателен).
youtube-dl запускается с параметром -f best, что означает поиск и скачку лучшего по качеству видео и аудио ролика.
Вот и все. Теперь можно в процессе просмотра мультиков складывать нужные url в файл, а потом один раз запустить php скрипт. Он все скачает за один заход и сохранит в нужную папку.
Спасибо за внимание. Надеюсь, кому нибудь данная информация будет полезна.
Будучи счастливым отцом семейства, передо мной довольно долго стояла задача поиска интересных мультиков для своих чад на просторах ютуба, с последующей скачкой роликов для показа детям на телевизоре.
Задача сама по себе не сложная. Основной труд составляет процесс сохранения роликов: нужно скопипастить ссылку, найти соответствующий сервис, воспользоваться им, скачать выданный ролик. Все это довольно нудно и скучно. Поэтому было решено сделать инструмент который будет закачивать ролики, примерно как wget по списку url из файла.
Я довольно давно знал о существовании программы youtube-dl. Программа умеет скачивать ролики с гигантского количества сайтов, в том числе и с ютуба и делает она это хорошо. Изначально инструмент работает из под *nix, но, к счастью, есть версия и для windows.
Один большой минус: не умеет работать со списком url.
Будучи немного знаком с языком программирования php решил научить yutube-dl работать со списком url при помощи php-cli.
Итак:
1. Скачана последняя версия php (7.0.32)
2. В переменные окружения добавлен путь к php.exe для того что бы запускать скрипты просто из командной строки. Например
php /path/to/script.php
3. Написан вот такой скрипт:
<?php
include (colors.class.php');
$colors = new Colors();
$options = [
'-f best',
'-o /path/to/uploads/%(title)s.%(ext)s'
];
$list = file('path/to/list.txt');
foreach($list as $i => $url){
echo $colors->getColoredString('Загрузка ' . $url, "green", null);
$command = 'youtube-dl ' . implode(' ', $options) . ' ' . $url;
exec($command);
}
echo $colors->getColoredString(PHP_EOL."Очистка списка".PHP_EOL, "red", null);
fopen("/path/to/list.txt", "w");
echo $colors->getColoredString("Готово", "green", null);
?>
youtube-dl.exe кладем рядом со скриптом.
list.txt — список url вида youtube.com/watch?v=xxxxxx, каждый url с новой строки.
colors.class.php — класс для раскраски сообщений скрипта (он не обязателен).
youtube-dl запускается с параметром -f best, что означает поиск и скачку лучшего по качеству видео и аудио ролика.
Вот и все. Теперь можно в процессе просмотра мультиков складывать нужные url в файл, а потом один раз запустить php скрипт. Он все скачает за один заход и сохранит в нужную папку.
Спасибо за внимание. Надеюсь, кому нибудь данная информация будет полезна.