Скачиваете первое видео с каждого результата поиска с Youtube с помощью youtube-dl?
У меня есть список из 400 названий песен, и они имеют гиперссылку на страницу результатов поиска. Пример картинки
У меня есть и youtube-dl, и J Downloader, но вы не знаете, какие параметры мне нужны в youtube-dl для загрузки высококачественного mp3 из списка поисковых URL-адресов на видео? Я только хочу скачать первое видео из каждого поиска в формате mp3.
2 ответа
Ваш вопрос не объясняет, что именно вы пытаетесь сделать с остальным списком. Во всяком случае, я покажу вам, как получить MP3 первой ссылки.
- Сначала разделите ваши URL запятой (,)
Теперь загрузите весь файл в PHP
$file = 'path_to_file'; $data = file_get_contents($file);
Превратить список в массив
$songs_list = explode(",", $data);
Установить счетчик и перебрать массив
foreach ($songs_list as $key => $song) { if ($count == 1) { $commad = 'youtube-dl --extract-audio --audio-format mp3 youtube_video_url_here'; shell_exec($commad); // now audio of first video will be downloaded as MP3 } else { // do the rest of your work on list } }
Ниже идет полный сценарий
<?php $file = 'path_to_file'; $data = file_get_contents($file); $songs_list = explode(",", $data); $count = 1; foreach ($songs_list as $key => $song) { if ($count == 1) { $commad = 'youtube-dl --extract-audio --audio-format mp3 youtube_video_url_here'; shell_exec($commad); // now audio of first video will be downloaded as MP3 } else { // do the rest of your work on list } } ?>
Я написал скрипт на Ruby (обертку поверх youtube-dl), который я использую для загрузки аудио - вы можете увидеть его здесь
Код, который извлекает аудио:
DESTINATION_PATH="/home/max/Downloads"
URL="https://www.youtube.com/watch?v=cASW7BFWf6U"
cd $DESTINATION_PATH && youtube-dl --extract-audio --prefer-ffmpeg --audio-format mp3 --yes-playlist --audio-quality 3 $URL`
При этом вы можете использовать свою любимую HTML-библиотеку, чтобы получить первое видео из результатов поиска YouTube. У меня лично есть опыт работы с Nokogiri, и отсюда кажется, что вы можете использовать инструмент командной строки.
Например,
CSS_SELECTOR="#selector_of_the_first_video"
curl -s $URL | nokogiri -e 'puts $_.at_css("$CSS_SELECTOR").text'