Утром зашёл на coub.com и увидел баннер с печальной новостью :
Проект Сoub закрывается 1 апреля 2022 года. Успейте скачать свои видео.
Не успев продрать глаза, быстренько написал скрипт для скачивания всех моих кубов разом..
Скрипт из файла urls.txt по ссылке скачивает исходник страницы, ищет ссылки и скачивает отдельно музыку и отдельно видео (в максимальном качестве), а потом объединяет их (зацикливает видео, пока звучит аудиодорожка).
Создаём файл download_coubs.bat и копируем в него код:
off cls SetLocal EnableExtensions EnableDelayedExpansion rem берем ссылки из файла urls.txt For /F "Delims=" %%i In (urls.txt) Do ( Set url=%%i echo !url! :curl rem скачиваем страницу куба curl.exe -# -k "!url!" > "coub_source" 2>nul if NOT %errorlevel% == 0 GOTO curl rem берем код с ссылками sed.exe --text -n "/abuses/p" "coub_source" >"coub_abuses" 2>nul rem находим ссылку на mp3 sed.exe --text --text -e "s/.*high....url...(.high.mp3)./\1/" "coub_abuses">"coub_mp3" 2>nul rem находим ссылку на mp4 sed.exe --text --text -e "s/.*higher....url...(.huge.mp4)./\1/" "coub_abuses">"coub_mp4" 2>nul rem находим ссылку на url sed.exe --text --text -e "s/.Simple...permalink...(.)","title.visibility_type./\1/" "coub_abuses">"coub_name" 2>nul rem строчки из файлов вставляем в переменные For /F "usebackq tokens=* delims=" %%i In ("coub_mp3") Do Set mp3url=%%i For /F "usebackq tokens=* delims=" %%i In ("coub_mp4") Do Set mp4url=%%i For /F "usebackq tokens=* delims=" %%i In ("coub_name") Do Set titleurl=%%i echo Downloading "!mp3url!" !titleurl!.mp3 curl.exe -# -k "!mp3url!" > "!titleurl!.mp3" 2>nul echo Downloading "!mp4url!" !titleurl!.mp4 curl.exe -# -k "!mp4url!" > "!titleurl!.mp4" 2>nul echo Merging video+audio ffmpeg -stream_loop -1 -i !titleurl!.mp4 -i !titleurl!.mp3 -shortest -map 0:v:0 -map 1:a:0 -y !titleurl!_merged.mp4 rem удаляем временные файлы del /F /A "coub_source" 2>nul del /F /A "coub_abuses" 2>nul del /F /A "coub_mp3" 2>nul del /F /A "coub_mp4" 2>nul del /F /A "coub_name" 2>nul ) pause exit
Для работы нужны три файла:
-
файл sed.exe из UnxUpdates.zip скачать тут
-
файл ffmpeg.exe из
ffmpeg-release-essentials.7zскачать тут
Всё скачиваем, копируем их из архивов и кладём в тот же каталог со скриптом.
Создаем в каталоге со скриптом файл urls.txt со списком адресов (каждая ссылка на отдельной строке)
например:
https://coub.com/view/316jkd
https://coub.com/view/316fme
Запускаем скрипт. Ждём.
Скрипт из файла urls.txt по ссылке скачивает исходник страницы, ищет ссылки и скачивает отдельно музыку и отдельно видео (в максимальном качестве), а потом объединяет их (зацикливает видео, пока звучит аудиодорожка).
Пардон за код, если не нравится, я не виноват.
Линуксоидам переделать код на bash думаю никаких трудов не составит…
ссылка на оригинал статьи https://habr.com/ru/post/656629/
Добавить комментарий