Mediaset Infinity Downloader — это библиотека машинописных текстов для загрузки фильмов или сериалов Mediaset Infinity. Он использует yt-dlp для загрузки самих эпизодов.
Чтобы использовать mediaset-infinity-downloader, клонируйте этот репозиторий и перейдите в клонированную папку. Затем вам нужно установить необходимые пакеты
# Установить typescript runnernpm install --global ts-node# Установить пакеты проекта npm install
Сделайте yt-dlp
доступным для скрипта:
Загрузите исполняемый файл (для вашего компьютера)
Поместите исполняемый файл в папку src/executables
Настройте файл src/user/config.ts
, убедившись, что ytDlpPath
правильный и outputFolder
существует.
Заполните файл src/user/episodes.ts
массивом строк, содержащим страницу эпизода или фильма. Пример ниже
экспортировать по умолчанию [ 'https://mediasetinfinity.mediaset.it/video/terraamara/episodio-243_F311851102010702', 'https://mediasetinfinity.mediaset.it/video/terraamara/episodio-242_F311851102010602',];
# перейдите в папку проектаcd mediaset-infinitry-downloader# запустите скриптnpm run start
По умолчанию yt-dlp использует имя файла .mp4, который вы собираетесь загрузить, в качестве имени выходного файла. Я добавил в конфигурацию способ программного изменения вывода имени файла. Чтобы использовать его, выполните следующие действия.
Включите customOutputName
в файле src/user/config.ts.
Настройте customOutputNameFunction
для вывода строки, которая будет автоматически использоваться в качестве имени файла для соответствующего элемента массива.
Самый простой и безопасный, но самый трудоемкий
Откройте страницу каждого эпизода и скопируйте ссылку вручную.
Добавьте его в массив episodes.ts
окруженный галочками.
Наиболее подвержен сбоям (если mediasetinfinity меняет структуру страницы), но самый быстрый
Прокрутите страницу списка эпизодов вниз.
Откройте консоль браузера и вставьте эту copy($$('a[href*="/video/"]').map((x)=>x.href))
В буфере обмена вы найдете множество ссылок на все эпизоды.
Вставьте массив эпизодов в файл episodes.ts
Самый надежный (требуется определенный опыт)
Откройте страницу со списком эпизодов (пример: https://mediasetinfinity.mediaset.it/fiction/bitterlands/episodi_SE000000001766,ST000000003181,sb100018308).
Откройте инструменты разработчика и перейдите на вкладку «Сеть».
Прокрутите страницу вниз
Вы увидите новый type:'fetch'
с именем mediaset-prod-all-programs-v2
Щелкните правой кнопкой мыши, затем Copy > Copy as fetch
Перейдите на вкладку «Консоль» инструментов разработчика.
Вставьте скопированную выборку (пример ниже)
fetch("https://feed.entertainment.tv.theplatform.eu/f/PR1GhC/mediaset-prod-all-programs-v2?byCustomValue={subBrandId} {100018308}&sort=:publishInfo_lastPublished|desc,tvSeasonEpisodeNumber|desc&range= 1-1000", {"заголовки": { "accept": "*/*", "accept-language": "it-IT,it;q=0.9,en-US;q=0.8,en;q=0.7", "sec-ch-ua" : ""Not.A/Brand";v="8", "Chromium";v="114", "Google Chrome";v="114"", "сек-ч-уа-мобиль": "?0", "sec-ch-ua-platform": ""Windows"", "sec-fetch-dest": "пустой", "sec-fetch-mode": "cors", "sec- fetch-site": "межсайтовый"},"referrer": "https://mediasetinfinity.mediaset.it/","referrerPolicy": "strict-origin-when-cross-origin","body": null, «метод»: «GET», «режим»: «cors», «учетные данные»: «опустить»});
Измените range
queryParam на любое желаемое число (в приведенном выше примере я изменил его на от 1 до 1000).
Запустите fetch
, нажав Enter
Вернитесь на вкладку «Сеть».
Выберите запрос, который мы только что выполнили, на вкладке предварительного просмотра щелкните правой кнопкой мыши entries
и нажмите Copy value
.
Вставьте массив эпизодов в файл episodes.ts