Download Vídeos RTP

David_E_Silva experimenta este método

Bem, depois de ver aqui tantos pedidos, resolvi tentar arranjar uma solução mais definitiva para este problema da RTP - e não, não funciona para a OPTO da SIC.

----

Como já falado há umas publicações atrás, um dos softwares mais utilizados para guardar vídeos dos sites é o youtube-dl. Surgem então duas situações:
- No que toca à RTP, este tem um problema que está identificado e cuja resolução já existe há largos meses mas que ainda não foi aceite pelos programadores principais - está em pull request para quem entende da coisa;
- Por si só é um software para ser usado na linha de comandos e é possível que muitos de vós não estejam confortáveis em usar.

Assim, o que fiz foi gerar uma build do youtube-dl com a resolução desse problema incluída e usar a interface gráfica aqui disponibilizada (na versão portátil) para criar um ZIP para que possam mais facilmente usar para download dos vídeos do RTP Play.


E pronto, acho que é isso. Espero que seja útil!
 
Boas. Estou a tentar tirar o ep do estudo em casa: https://www.rtp.pt/play/estudoemcasa/p7796/e525084/educacao-fisica-5-e-6-anos

Aparece-me isto:

Beginning download, this box will output progress
Youtube-DL has been found and set
Generating output directory structure
The output was generated and will be used
The quality and format has been set
Looking for ffmpeg
ffmpeg path is null, downloading may be affected
Fix v.redd.it was requested, but ffmpeg hasn't been found
Arguments have been generated and are readonly in the textbox
Creating download thread
Created, starting download thread
[RTP] e525084: Downloading webpage
Error:
Traceback (most recent call last):
Error:
File "youtube_dl\__main__.py", line 19, in <module>
Error:
File "youtube_dl\__init__.py", line 475, in main
Error:
File "youtube_dl\__init__.py", line 465, in _real_main
Error:
File "youtube_dl\YoutubeDL.py", line 2055, in download
Error:
File "youtube_dl\YoutubeDL.py", line 799, in extract_info
Error:
File "youtube_dl\YoutubeDL.py", line 806, in wrapper
Error:
File "youtube_dl\YoutubeDL.py", line 838, in __extract_info
Error:
File "youtube_dl\YoutubeDL.py", line 872, in process_ie_result
Error:
File "youtube_dl\YoutubeDL.py", line 1582, in process_video_result
Error:
File "youtube_dl\utils.py", line 2141, in sanitize_url
Error:
AttributeError: 'dict' object has no attribute 'startswith'
Error:
[2868] Failed to execute script __main__

An error occured



Alguma solução ou link direto? Obg


Alguém??? preciso disto para o miúdo ver uma aula e fazer o trabalho (ja com atraso)...ele n tem a função de andar 7 dias para trás na casa da mãe e a internet é muito fraca e está com problemas...tb n consegue ver no site, fica tudo aos soluços. preciso mesmo do ficheiro.


Obg desde já
 
Versão actualizada publicada no comentário principal.

Ainda a semana passada conseguia fazer download dos filmes da RTP Play através do jdownloader no Mac, agora não sei o que se passou mas o programa não encontra o ficheiro do filme ... Algém sabe como resolver isto, alguma alternativa no Mac? Obrigado.
Porque eles mudaram a abordagem nalguns vídeos, embora noutros continue igual. Se te sentires minimamente à vontade com o Terminal em macOS, disponilizo-te aqui o executável compilado com suporte para RTP para poderes usar.
 
Última edição:
Mais uma moedinha e mais uma voltinha... :-D Desta vez o problema era parecido com o do ZigZag, pelo que neste momento transformei a abordagem para algo mais genérico e que deverá funcionar para qualquer novo endereço que a RTP decida criar - mas nunca fiando.

Já coloquei uma nova versão no comentário "original" pelo que é uma questão de tentares usando a mesma.

Caro amigo, deixo aqui o meu agradecimento pela paciência e pelo seu trabalho a resolver este assunto.
No entanto, não consegui descarregar o vídeo seguinte:
Leitura e Escrita - 10.º ao 12.º Ano , aula 12 - 08 Fev 2021 - Estudo Em Casa - RTP

O erro que apareceu foi o seguinte:
ERROR: unable to download video data: <urlopen error [WinError 10060] Uma tentativa de ligação falhou porque o componente ligado não respondeu
Error:
corretamente após um período de tempo, ou a ligação estabelecida falhou
Error:
porque o anfitrião ligado não respondeu>
[download] 72.9% of ~414.13MiB at 3.57MiB/s ETA 00:46

An error occured
 
Caro amigo, deixo aqui o meu agradecimento pela paciência e pelo seu trabalho a resolver este assunto.
No entanto, não consegui descarregar o vídeo seguinte:
Leitura e Escrita - 10.º ao 12.º Ano , aula 12 - 08 Fev 2021 - Estudo Em Casa - RTP

O erro que apareceu foi o seguinte:
ERROR: unable to download video data: <urlopen error [WinError 10060] Uma tentativa de ligação falhou porque o componente ligado não respondeu
Error:
corretamente após um período de tempo, ou a ligação estabelecida falhou
Error:
porque o anfitrião ligado não respondeu>
[download] 72.9% of ~414.13MiB at 3.57MiB/s ETA 00:46

An error occured
parece ser erro no servidor.

Tentou mais vezes?
 
@Red_Acid a aplicação já deixou de funcionar de novo, tentei sacar um video hoje e dá-me isto:

Beginning download, this box will output progress
Youtube-DL has been found and set
Generating output directory structure
The output was generated and will be used
The quality and format has been set
Looking for ffmpeg
ffmpeg path is null, downloading may be affected
Fix v.redd.it was requested, but ffmpeg hasn't been found
Arguments have been generated and are readonly in the textbox
Creating download thread
Created, starting download thread
[RTP] os-novos-gurus-dos-eua: Downloading webpage
Error:
Traceback (most recent call last):
Error:
File "youtube_dl\__main__.py", line 19, in <module>
Error:
File "youtube_dl\__init__.py", line 475, in main
Error:
File "youtube_dl\__init__.py", line 465, in _real_main
Error:
File "youtube_dl\YoutubeDL.py", line 2055, in download
Error:
File "youtube_dl\YoutubeDL.py", line 799, in extract_info
Error:
File "youtube_dl\YoutubeDL.py", line 806, in wrapper
Error:
File "youtube_dl\YoutubeDL.py", line 827, in __extract_info
Error:
File "youtube_dl\extractor\common.py", line 532, in extract
Error:
File "youtube_dl\extractor\rtp.py", line 54, in _real_extract
Error:
File "base64.py", line 87, in b64decode
Error:
binascii.Error: Incorrect padding
Error:
[16320] Failed to execute script __main__

An error occured

tentei sacar de novo a aplicação e não está disponível no mega


youtubr-fl.png


O video é este se conseguires resolver agradeço, ou a quem consiga sacar e disponibilizar.

https://www.rtp.pt/play/p7564/os-novos-gurus-dos-eua
 
@ Red_Acid
Olha, a propósito de estar a experimentar a extensão do recursos estive a tentar descarregar o mp4 pelo seu link à maneira do teu https://rtp-play-downloader.glitch.me/ sem uso da extensão e deu, acho que já podes pôr o site de novo activo já deve funcionar de novo.
Sim, com a extensão do @recursos também percebi que existe um sub-domínio que ainda não bloquearam os downloads directos do ficheiro MP4.
No entanto, até pode demorar e nunca acontecer mas nada impede de entretanto a RTP "bloquear" também esse sub-domínio, pelo que aí teria de se voltar à abordagem que é usada com o youtube-dl que é sacar os ficheiros TS referenciados no ficheiro M3U8 e juntar no final. Além disso, as alterações efectuadas pela RTP na última semana também implicariam mais algumas alterações e testes no código dessa página.

Portanto, que me perdoem, mas não vou perder tempo a fazer isso. Neste momento têm a ferramenta que disponibilizo (que funciona da forma que referi acima e créditos devidos aos devs que fizeram a maior parte do trabalho) e têm a extensão do recursos (cuja página explica muitíssimo bem como proceder) como opções para os downloads, o que é melhor do que existia há 2 semanas e dá para vários gostos. :)
 
Última edição:
@Red_Acid>> (...) nada impede de entretanto a RTP "bloquear" também (...)

É bem verdade.
Enquanto testava a extensão, vi de um dia para o outro
o "código fonte" (page source) mudar 3 vezes nesta página:

https://www.rtp.pt/play/p1636/e199648/flash-7-dias
  1. a primeira variante era trivial, como tem sido usada durante meses;

  2. um dia depois a segunda variante era do tipo:
    file: {hls : atob(decodeURIComponent(["aHR0cH","M6Ly9z","dHJlYW","1pbmct","b25kZW","1hbmQu","cnRwLn","B0L25h","czIuc2","hhcmUv","aDI2NC","81MTJ4","Mzg0L3","AxNjM2","L3AxNj","M2XzFf","MjAxNT","A2MjUv","bWFzdG","VyLm0z","dTg%3D"].join("")))

  3. a terceira variante (a actual) ficou assim:
    file: {hls : decodeURIComponent(["https%3","A%2F%2F","streami","ng-onde","mand.rt","p.pt%2F","nas2.sh","are%2Fp","t%2Fh26","4%2F512","x384%2F","p3227%2","Fp3227_","1_20210","2201611","028581d","%2Fmast","er.m3u8"].join(""))

  4. ambas apontam o mesmo "@Red_Acid sub-domínio que ainda não bloquearam os downloads directos do ficheiro MP4."
Parece que a RTP está a migrar tudo para este estilo.
Penso que não é por mal :=( é só para optimizar o streaming (mas porque razão usar um array sem necessidade?).
Quando decidirem encriptar, aí sim, fica tudo pendurado...
Entretanto, quando falhar numa página, p.f. avisem.

Rec
 
Back
Topo