this post was submitted on 10 Oct 2024
10 points (100.0% liked)

Teknologi

193 readers
15 users here now

For debat og nyheder omkring teknologi af alle former.

founded 1 year ago
MODERATORS
 

Hvordan trækker man et link til seneste TV-Avis på DRTV?

top 13 comments
sorted by: hot top controversial new old
[–] [email protected] 5 points 1 week ago (1 children)
[–] [email protected] 3 points 1 week ago

Tak, men ak ingen TV-avis.

[–] [email protected] 4 points 1 week ago* (last edited 1 week ago) (3 children)

Jeg forsøger at kunne trække et link til den [relativt seneste] TV-Avis her inde: https://www.dr.dk/drtv/serie/tv-avisen_358871 til offline brug med yt-dlp.

Men jeg kan ikke gennemskue hvordan. Er der en @[email protected] til stede?

[–] [email protected] 3 points 5 days ago* (last edited 5 days ago) (1 children)

Jeg sidder også i dag og forsøger at downloade indhold fra DRTV med yt-dlp og kan desværre ikke få det til at virke.

Edit: Så lykkedes det! Jeg brugte yt-dlp --cookies-from-browser firefox, men fik også 404 da jeg bare pastede URL'en fra browserens adressebar ind. Til gengæld lykkedes det da jeg pausede programmet, åbnede developer tools og derefter så hvilke .mp4 strømme der blev hentet. Da jeg kopierede den med den den højeste bitrate virkede det sgu!

[–] [email protected] 2 points 4 days ago* (last edited 4 days ago) (1 children)

Sådan, Dolle!

Jeg prøver at replikere, men er det ikke en unik URL, vi ser i dev tools, som ændrer sig for hver udsendelse?

Så kan det vel ikke automatiseres, eller er der noget, jeg overser?

Edit: ~~Del evt. dit fund i førnævnte GitHub issue for internet goodwill~~. Merged / closed

Edit: Du får en URL til mp4 - jeg ser kun .ts links på TV-avisen. VideoDownloadHelper vil gerne lege med (vælger en .m3u8 stream), men yt-dlp giver HTTP Error 403 uanset. Nørder videre...

[–] [email protected] 2 points 4 days ago

Der er helt sikkert en måde at automatisere det på, men jeg ved ikke hvor svært det er. Hvis man er heldig kan man ekstrahere URL'en fra HTML'en, men der er nok også en vis risiko for at den sammensættes af noget JavaScript.

[–] [email protected] 4 points 1 week ago

Nu har jeg lige været inde i inspect element, og kan se at hvert felt med en TV-avis er en class for sig, hvor den nyeste ender med "__episode--active". Kunne man ikke lave et script der tjekker efter denne, måske med følgende fremgangsmåde:

Find klassen "d1-drtv-episode col col-phone-24 col-phablet-12 col-laptop-8 col-desktopWide-6 d1-drtv__episode d1-drtv__episode--active"
Kopier titel fra klassen "d1-drtv-episode-title-and-details__contextual-title"
Kopier dato for udsendelsen fra klassen "d1-drtv-episode-title-and-details__contextual-title-extra-details"
Linket kræver lidt tilpasning, da det ikke umiddelbart fremgår, men i klassen "d1-drtv-episode-title-and-details d1-drtv-episode-description__title-and-details" indgår et link, hvor "episode" skal erstattes med "se" for at komme til videoen. Det burde være muligt at trylle med det
Tjek med det sidst downloadede afsnit, om dato/tid strengen fra "d1-drtv-episode-title-and-details__contextual-title-extra-details" er den samme. Hvis det er tilfældet er der ikke kommet et nyt afsnit, og så skal vi stoppe.
   Ellers kan vi downloade ved hjælp af fx yt-dlp.

Det er så en fremgangsmåde der kræver noget webscraping, så det er ikke sikkert at det altid vil virke. Men jeg tror bestemt at det er muligt at implementere. Jeg gjorde noget lignende da jeg under OL lavede daglige tråde inde på [email protected]. Der webscrapede jeg TV2's tvtid for at finde de relevante programmer for en given dag. Jeg mener at jeg brugte pythonpakken BeutifulSoup, som kan hjælpe med at parse html. Du kan sikkert på ChatGPT til at hjælpe med at skrive scriptet.

[–] [email protected] 3 points 1 week ago (1 children)

Jeg tror også du får problemer med yt-dlp. DR har lige implementeret at man skal være logget ind for at se gamle programmer, inklusiv udsendelser af tv avisen. Det bliver nok sværere at downloade når man skal logge ind.

[–] [email protected] 5 points 1 week ago (2 children)

Man kan fodre yt-dlp med ens browser cookies, så hvis man lige logger ind på DR med sin konto, og dernæst langer nogle småkager over disken til yt-dlp, så kan det være det kan fungere. Men jeg er ikke sikker.

[–] [email protected] 6 points 1 week ago (1 children)

Nu får jeg lige pludselig lyst til at lave småkager, som jeg kan lange over disken herhjemme... Er det for tidligt at lave diverse julesmåkager?

[–] [email protected] 6 points 1 week ago (1 children)

Bare form dem som græskar og kranier. Det er ikke julekager, det er Halloween-kager.

[–] [email protected] 6 points 1 week ago

Selvom de måske lidt har formen, så tror jeg alligevel at pebernødder er for små til at kunne gå for at ligne et græskar...

[–] [email protected] 5 points 1 week ago* (last edited 6 days ago)

Tusind tak for forslagene. Har nu et script, der kan finde seneste TV-avis... men desværre virker yt-dlp ikke længere med DRTV pga. det ny login-halløj. Forsøgte at parse min browser cookie uden held (disclaimer: jeg ved ikke, hvad jeg laver 🙃)

Status: Nær ved og næsten.


Prøver jeg at isolere yt-dlp, får jeg samme HTTP 404 error som dem her: https://github.com/yt-dlp/yt-dlp/issues/11137


Edit: Forsøgte også at hente min cookie ned lokalt, men det hjalp ikke. Må være yt-dlp, der ikke vil lege med DR's ny login system.