Mediaset Infinity Downloader é uma biblioteca datilografada para baixar filmes ou séries de TV do Mediaset Infinity. Ele usa yt-dlp para baixar os episódios reais.
Para usar o mediaset-infinity-downloader, clone este repositório e faça cd na pasta clonada. Então você tem que instalar os pacotes necessários
# Instale o typescript runnernpm install --global ts-node# Instale os pacotes do projetonpm install
Torne yt-dlp
acessível ao script:
Baixe o executável (para sua máquina)
Coloque o executável na pasta src/executables
Ajuste seu arquivo src/user/config.ts
certificando-se de que ytDlpPath
esteja correto e que outputFolder
exista.
Preencha seu src/user/episodes.ts
com uma série de strings contendo o episódio ou a página do filme. Exemplo abaixo
padrão de exportação [ 'https://mediasetinfinity.mediaset.it/video/terraamara/episodio-243_F311851102010702', 'https://mediasetinfinity.mediaset.it/video/terraamara/episodio-242_F311851102010602',];
# cd na pasta do projetocd mediaset-infinitry-downloader# execute o scriptnpm run start
Por padrão, yt-dlp usa o nome do .mp4 que você está prestes a baixar como o nome do arquivo de saída. Adicionei na configuração uma forma de alterar programaticamente a saída do nome do arquivo. Siga as etapas abaixo para usá-lo
Habilite customOutputName
em src/user/config.ts
Ajuste customOutputNameFunction
para gerar uma string que será usada automaticamente como o nome do arquivo para o elemento correspondente na matriz.
Mais simples, mais seguro, mas mais demorado
Abra a página de cada episódio e copie o link manualmente.
Adicione-o ao array episodes.ts
cercado por carrapatos.
Mais propenso a falhar (se o mediasetinfinity alterar a estrutura da página), mas mais rápido
Role até o final da página da lista de episódios
Abra o console do navegador e cole esta copy($$('a[href*="/video/"]').map((x)=>x.href))
Você encontrará na sua área de transferência o conjunto de links de todos os episódios
Cole a matriz de episódios no arquivo episodes.ts
Mais confiável (requer algum conhecimento)
Abra uma página de lista de episódios (exemplo: https://mediasetinfinity.mediaset.it/fiction/bitterlands/episodi_SE000000001766,ST000000003181,sb100018308)
Abra devtools e vá para a guia Rede
Role até o final da página
Você verá uma nova solicitação type:'fetch'
aparecendo chamada mediaset-prod-all-programs-v2
Clique com o botão direito e depois Copy > Copy as fetch
Vá para a guia Console do devtools
Cole a busca copiada (exemplo abaixo)
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", {"cabeçalhos": { "aceitar": "*/*", "aceitar-linguagem": "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"", "sec-ch-ua-mobile": "?0", "sec-ch-ua-platform": ""Windows"", "sec-fetch-dest": "vazio", "sec-fetch- mode": "cors", "sec-fetch-site": "cross-site"},"referrer": "https://mediasetinfinity.mediaset.it/","referrerPolicy": "origem estrita-quando-origem cruzada","corpo": null,"método": "GET","mode": "cors","credenciais": "omitir"});
Modifique o range
queryParam para qualquer número desejado (no exemplo acima eu modifiquei para 1 a 1000)
Execute a fetch
pressionando Enter
Volte para a guia Rede
Selecione a solicitação que acabamos de fazer e na guia de visualização clique com o botão direito entries
e pressione Copy value
.
Cole a matriz de episódios no arquivo episodes.ts