LINUX.ORG.RU

Скрипт для скачивания coub'ов

 , ,


0

1

Утром зашёл на coub.com и увидел баннер с печальной новостью :

Проект Сoub закрывается 1 апреля 2022 года. Успейте скачать свои видео.

Не успев продрать глаза, быстренько написал скрипт для скачивания всех моих кубов разом..

Скрипт из файла urls.txt по ссылке скачивает исходник страницы, ищет ссылки и скачивает отдельно музыку и отдельно видео (в максимальном качестве), а потом объединяет их (зацикливает видео пока звучит аудиодорожка).

Создаём файл download_coubs.bat и копируем в него код:

    @echo 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

Для работы нужны три файла

файл curl.exe скачать тут - https://curl.se/windows/

файл sed.exe из UnxUpdates.zip скачать тут - http://unxutils.sourceforge.net/

файл ffmpeg.exe из ffmpeg-release-essentials.7z скачать тут - https://www.gyan.dev/ffmpeg/builds/

Всё скачиваем, копируем их из архивов и кладём в тот же каталог со скриптом.

Создаем в каталоге со скриптом файл urls.txt со списком адресов (каждая ссылка на отдельной строке)
например:
https://coub.com/view/316jkd
https://coub.com/view/316fme


Запускаем скрипт. Ждём.

Скрипт из файла urls.txt по ссылке скачивает исходник страницы, ищет ссылки и скачивает отдельно музыку и отдельно видео (в максимальном качестве), а потом объединяет их (зацикливает видео пока звучит аудиодорожка).

пардон за код, если не нравится, я не виноват..

Линуксоидам, переделать код на bash думаю никаких трудов не составит...


Линуксоидам, переделать код на bash думаю никаких трудов не составит…

Линуксоиды просто устанавливают youtube-dl и скачивают им. Зачем в спешке разрабатывать скрипты, если уже есть готовые отлаженные?

i-rinat ★★★★★
()

Покажи свой UA, виндусятник

IIIypuk ★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.