Print side | Luk vindue

DR NU som podcast

Udskrevet fra: recordere.dk - Danmarks AV Forum
Kategori: Modtagelse og distribution
Forumnavn: IP TV og WebTV
Forumbeskrivelse: TV via bredbånd, fiber og internet. TDC TV, Telia TV, YouSee WebTV m.fl.
Web-adresse: https://forum.recordere.dk/forum_posts.asp?TID=125687
Udskrevet den: 23-November-2024 kl. 02:46


Emne: DR NU som podcast
Skrevet af: Desperate
Emne: DR NU som podcast
Skrevet den: 02-September-2013 kl. 00:42
Jeg har lavet et PHP script, som tager en programserie fra DR NU og leverer den som podcast. Det virker ikke med iTunes, da iTunes skal kende størrelsen på filen, hvilket ikke oplyses i data fra DR. Måske er der en kvik person som kan løse dette?

Scriptet virker som sagt ikke med iTunes, men det virker fint med Miro (www.getmiro.com). Jeg har dog ikke testet med andre klienter end Miro, så forvent ikke meget andet. Og hvis nogen kunne finde på at skrive, at det er for dårligt... så kom selv med en løsning i stedet.

Edit: Med tak fra Kim80 virker det nu perfekt i iTunes.

For at benytte det script som jeg har lavet, skal man have en server der kan håndterer PHP samt JSON. Derudover skal man lave en mappe med navn "videourls" som skal gøres skrivbar, da scriptet spare på antallet af kald til DR, ved kun at hente video-urlen en gang.

For at kalde podcast-feedet skal man henvise til den URL man nu engang har lavet (eks. www.domæne.dk/mappe/podcast.php). Til selve scriptet skal man bruge "programSerieSlug" som skal indsættes i forespørgslen. Vi man eks. abonnerer på Matador, skal man indsætte ?ps=matador i adressen, så den fulde adresse bliver http://www.domæne.dk/mappe/podcast.php?ps=matador
"programSerieSlug " kan findes på denne side:
http://www.dr.dk/nu/api/programseries

Jeg har desuden også lavet et script til at programmer, som står nedenunder podcast-scriptet.

Fordelen ved at benytte dette script til programmerne, også dem som DR selv podcaster er, at kvaliteten er noget højere. Desværre overser DR podcasting som et medie, som folk gerne vil have i ordentlig kvalitet.

podcast.php
<?php
error_reporting(-1);
echo '<?xml version="1.0" encoding="utf-8"?>';
echo "\r\n";

function cleanText($impText) {
$impText = strip_tags($impText);
$impText = htmlspecialchars($impText);
$impText = htmlspecialchars_decode($impText);
$impText = str_replace('&',"&amp;", $impText);
$impText = str_replace('.',". ", $impText);
$impText = str_replace('  '," ", $impText);
return $impText;
}

$erVist = "";

?>
<rss version="2.0" xmlns:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd">
  <channel>
  
 <?php

function DR_NU_FILESIZE($url) {
  $remoteFile = $url;
  $ch = curl_init($remoteFile);
  curl_setopt($ch, CURLOPT_NOBODY, true);
  curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
  curl_setopt($ch, CURLOPT_HEADER, true);
  curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
  $data = curl_exec($ch);
  curl_close($ch);

  $contentLength = 'unknown';
  $status = 'unknown';
  if (preg_match('/^HTTP\/1\.[01] (\d\d\d)/', $data, $matches)) {
    $status = (int)$matches[1];
  }
  if (preg_match('/Content-Length: (\d+)/', $data, $matches)) {
    $contentLength = (int)$matches[1];
  }
return $contentLength;
}

$introXML = "";
$data = join('',file('http://www.dr.dk/nu/api/programseries/'.$_GET['ps'].'/videos'));
$data = json_decode($data);

while (list($a,$obj) = each($data)) {
$broadcastTime = $obj->{'formattedBroadcastTime'};

if (!$introXML) {
$podTitel = cleanText($obj->{'title'});
list($podTitel) = explode(" (",$podTitel);
list($podTitel) = explode(": ",$podTitel);
list($podTitel) = explode(" - ",$podTitel);
list($beskrivelse) = explode(". ", cleanText($obj->{'description'}));
echo "    <title>".$podTitel."</title>\r\n";
echo "    <itunes:category text=\"\">\r\n";
echo "    </itunes:category>\r\n";
echo "    <itunes:image href=\"http://www.dr.dk".$obj->{'webCmsImagePath'}."\">\r\n";
echo "    </itunes:image>\r\n";
echo "    <itunes:author>DR</itunes:author>\r\n";
echo "    <itunes:explicit>no</itunes:explicit>\r\n";
echo "    <itunes:subtitle>\r\n";
echo "    </itunes:subtitle>\r\n";
echo "    <itunes:summary>".$beskrivelse.".</itunes:summary>\r\n";
echo "    <link>http://www.dr.dk</link>\r\n";
echo "    <description>".$beskrivelse.".</description>\r\n";
echo "    <language>da</language>\r\n";
echo "    <copyright>DR</copyright>\r\n";
echo "    <lastBuildDate>\r\n";
echo "    </lastBuildDate>\r\n";
echo "    <ttl>\r\n";
echo "    </ttl>\r\n\r\n";
}

$timediff = time()-strtotime($obj->{'broadcastTime'});
if ($timediff < 5184000) {
$lokalFil = preg_replace("/[^A-Za-z0-9 ]/", '', $obj->{'videoManifestUrl'});
if (file_exists("videourls/".$lokalFil.".txt")) {
$mediaData = join('',file("videourls/".$lokalFil.".txt"));
list($mediaURL,$mediaSize) = explode("||",$mediaData);
} else {
$mediaURL = join('',file($obj->{'videoManifestUrl'}));
$mediaURL = str_replace('rtmp://vod.dr.dk/cms/mp4:', 'http://vodfiles.dr.dk/', $mediaURL);
$mediaSize = DR_NU_FILESIZE($mediaURL);
if ($mediaSize > 200) {
$fp = fopen("videourls/".$lokalFil.".txt", 'w');
fwrite($fp, $mediaURL."||".$mediaSize);
fclose($fp);
}
}
if ($mediaSize > 0 && @$erVist[$obj->{'title'}] != $obj->{'broadcastTime'}) {
list($besket, $beskto, $besktre) = explode(". ", cleanText($obj->{'description'}));
echo "    <item>\r\n";
echo "      <title>".cleanText($obj->{'title'})."</title>\r\n";
echo "      <description>".$besket.". ".$beskto.". ".$besktre.".</description>\r\n";
echo "      <link>".$mediaURL."</link>\r\n";
echo "      <itunes:author>DR</itunes:author>\r\n";
echo "      <itunes:duration>".$obj->{'duration'}."</itunes:duration>\r\n";
echo "      <itunes:summary>".$besket.". ".$beskto.".</itunes:summary>\r\n";
echo "      <itunes:subtitle>".$besket.".</itunes:subtitle>\r\n";
echo "      <itunes:explicit>no</itunes:explicit>\r\n";
echo "      <pubDate>".date("D, j M Y H:i:s O",strtotime($obj->{'broadcastTime'}))."</pubDate>\r\n";
echo "      <enclosure url=\"".$mediaURL."\" length=\"".$mediaSize."\" type=\"video/mp4\" />\r\n";
echo "      <guid isPermaLink=\"false\">DR".$obj->{'id'}."</guid>\r\n";
echo "    </item>\r\n\r\n";
$introXML++;
}
$erVist[$obj->{'title'}] = $obj->{'broadcastTime'};
}
if ($introXML == 5) {
break;
}
}

?>
  </channel>
</rss>

Hvis man vil gøre det lidt ekstra lækkert for sig selv, har jeg også lavet et script til at søge efter "programSerieSlug". Dette script forventer at ovenstående script hedder "podcast.php"

find-podcast.php
<?php
$soegeord = $_GET['q'];
if (!$soegeord) {
 $input = array("hest", "musik", "ding", "dr", "have", "natur", "liv", "matador", "film", "fugl", "fisk", "sommer", "vinter", "forår", "efterår", "zoo", "nyheder", "show", "live");
 $rand_keys = array_rand($input, 2);
 $soegeord = $input[$rand_keys[1]];
}
?>
<html>
<head>
<title>Find programserier</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
</head>
<body bgcolor="#FFFFFF">
<font face="Verdana,Arial" size="2">

<form action="find-podcast.php" method="GET">
Søgeord: <input type="text" name="q" value="<?php echo $soegeord; ?>"> <input type="submit" value="Søg">
</form>
<?php

$soegeord = urlencode($soegeord);
$soegeord = str_replace('+', '%20', $soegeord);
$data = join('',file('http://www.dr.dk/nu/api/search/'.$soegeord.''));
$data = json_decode($data);

while (list($a,$obj) = each($data)) {
echo "<b><a href=\"podcast.php?ps=".$obj->{'programSerieSlug'}."\">".$obj->{'title'}."</a> - (".$obj->{'programSerieSlug'}.")</b><br>\r\n";
echo "".$obj->{'description'}."</a><p>\r\n\r\n";
}

?>

</font>
</body>
</html>

Håber det kan bruges og folk må meget gerne poste ideer til, hvordan koden kan blive bedre (ikke mindst hvis det kan komme til at virke med iTunes)

Edit: Opdateret med ny kode til podcast.php
Den nye kode undlader at se på programmer der er ældre end 60 dage og koden virker nu med iTunes.



Svar:
Skrevet af: kim80
Skrevet den: 02-September-2013 kl. 10:41
Jeg har tidligere lavet noget lignende.

For at få størrelsen på en af MP4 filerne, laver du en funktion som nedenstående.
Den kalder du blot med DR_NU_FILESIZE($mediaurl) og så returnerer den filstørrelsen i bytes. :)


function DR_NU_FILESIZE($url) {
  $remoteFile = $url;
  $ch = curl_init($remoteFile);
  curl_setopt($ch, CURLOPT_NOBODY, true);
  curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
  curl_setopt($ch, CURLOPT_HEADER, true);
  curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true); //not necessary unless the file redirects (like the PHP example we're using here)
  $data = curl_exec($ch);
  curl_close($ch);
  if ($data === false) {
    echo 'cURL failed';
    exit;
  }

  $contentLength = 'unknown';
  $status = 'unknown';
  if (preg_match('/^HTTP\/1\.[01] (\d\d\d)/', $data, $matches)) {
    $status = (int)$matches[1];
  }
  if (preg_match('/Content-Length: (\d+)/', $data, $matches)) {
    $contentLength = (int)$matches[1];
  }
return $contentLength;
}



Skrevet af: Desperate
Skrevet den: 26-September-2013 kl. 20:20
Med stor tak til Kim80 virker scriptet nu i iTunes. Jeg har desuden ændret scriptet sådan at samme titel og sendetidspunk ikke vil fremgå to gange samt at programmer der er blevet vist for mere end 60 dage siden, ville vil indgå i feedet.


Skrevet af: Nagash
Skrevet den: 26-September-2013 kl. 21:30
Skal lige forstå det rigtigt. Kan du få alt på DR NU til at virke som podcast? For en lang række af deres programserier findes jo som podcasts i forvejen.

-------------
https://forum.recordere.dk/topic161144_post1622452.html#1622452" rel="nofollow - Min bio

http://forum.recordere.dk/forum_posts.asp?TID=112448&title=nagash-stuebio-og-andet" rel="nofollow - Min GAMLE bio


Skrevet af: Desperate
Skrevet den: 26-September-2013 kl. 22:08
Ja, det er korrekt forstået. Du kan hente alt fra DR NU, også Broen II.

Det sker dog at DR NU har nogle tekniske problemer og så benytter de en ekstern partner. I de tilfælde kan man ikke hente det enkelte program som podcast.


Skrevet af: Nagash
Skrevet den: 28-September-2013 kl. 21:15
Hvordan får jeg det til at virke? Jeg tror ikke helt jeg fatter hvordan jeg laver de, så iTunes henter en bestemt video.
Hvis jeg nu fx. vil se afsnittene fra serien Danmarks Skønneste Hjem, hvordan skal php'en så se ud?

Link til serien.
http://www.dr.dk/tv/se/danmarks-skoenneste-hjem/danmarks-skoenneste-hjem-koebenhavn-6-10 - http://www.dr.dk/tv/se/danmarks-skoenneste-hjem/danmarks-skoenneste-hjem-koebenhavn-6-10


-------------
https://forum.recordere.dk/topic161144_post1622452.html#1622452" rel="nofollow - Min bio

http://forum.recordere.dk/forum_posts.asp?TID=112448&title=nagash-stuebio-og-andet" rel="nofollow - Min GAMLE bio


Skrevet af: Desperate
Skrevet den: 29-September-2013 kl. 04:12
Oprindeligt skrevet af Nagash Nagash skrev:

Hvordan får jeg det til at virke? Jeg tror ikke helt jeg fatter hvordan jeg laver de, så iTunes henter en bestemt video.
Hvis jeg nu fx. vil se afsnittene fra serien Danmarks Skønneste Hjem, hvordan skal php'en så se ud?

Link til serien.
http://www.dr.dk/tv/se/danmarks-skoenneste-hjem/danmarks-skoenneste-hjem-koebenhavn-6-10 - http://www.dr.dk/tv/se/danmarks-skoenneste-hjem/danmarks-skoenneste-hjem-koebenhavn-6-10
For udsendeler fra 2012, ser det umiddelbart ud til at del er delt ud på flere programserier. Men for 2013 sæsonen burde det være nemt.

Når du har sat scriptet op på din server, skulle du kunne kalde podcast.php?ps=danmarks-skoenneste-hjem fra iTunes og derefter vælge de afsnit som du gerne vil hente.

Hvis du oplever problemer vil jeg anbefale dig at teste URL'en i FireFox, den kan vise podcast-feedet og ved at vise kilden kan du se evt. fejlbeskeder fra serveren.


Skrevet af: ThomasP
Skrevet den: 29-September-2013 kl. 10:55
Jeg synes, at det lyder rigtig spændende, men jeg er ikke sikker på, at jeg har forstået det rigtigt.

Så vidt jeg kan se, understøtter min (billige) NAS ikke PHP eller JSON.

Er der nogen anden måde, jeg så kan downloade programmer fra DR.DK/NU? Altså direkte til en PC eller en Mac?


Skrevet af: Nagash
Skrevet den: 29-September-2013 kl. 12:17
ThomasP - Jeg har hidtil brugt løsningen fra denne side drnu.tumblr.com - drnu.tumblr.com
Det fungerer rigtig fint.


-------------
https://forum.recordere.dk/topic161144_post1622452.html#1622452" rel="nofollow - Min bio

http://forum.recordere.dk/forum_posts.asp?TID=112448&title=nagash-stuebio-og-andet" rel="nofollow - Min GAMLE bio


Skrevet af: ThomasP
Skrevet den: 29-September-2013 kl. 21:14
Oprindeligt skrevet af Nagash Nagash skrev:

ThomasP - Jeg har hidtil brugt løsningen fra denne side drnu.tumblr.com - drnu.tumblr.com
Det fungerer rigtig fint.

Jeg har også installeret scriptet og har hentet flere udsendelser, men ved mange programmer (fx Broen II eller "Gift ved første blik") virker det ikke. Når jeg clicker "Start programskanning" i Firefox, kommer der ingen programmer frem. Det samme sker i Chrome. Derfor leder jeg efter en alternativ løsning.


Skrevet af: Desperate
Skrevet den: 29-September-2013 kl. 22:19
Oprindeligt skrevet af ThomasP ThomasP skrev:

Oprindeligt skrevet af Nagash Nagash skrev:

ThomasP - Jeg har hidtil brugt løsningen fra denne side drnu.tumblr.com - drnu.tumblr.com
Det fungerer rigtig fint.

Jeg har også installeret scriptet og har hentet flere udsendelser, men ved mange programmer (fx Broen II eller "Gift ved første blik") virker det ikke. Når jeg clicker "Start programskanning" i Firefox, kommer der ingen programmer frem. Det samme sker i Chrome. Derfor leder jeg efter en alternativ løsning.
Jeg benytter samme trick som drnu.tumblr.com, så hvis det ikke virker med det script, vil det højst tænkeligt heller ikke virke med mit. Der er dog en lille forskel, nemlig at jeg benytter DR's API.

Det er dog ikke alle programmer der er med i DR's API, da de ofte er begyndt at benytte en ekstern partner. Det gælder eksempelvis Broen II, som ikke er med. Der er også nogle afsnit af Gift ved første blik, som ikke er med i DR's API.


Skrevet af: Desperate
Skrevet den: 29-September-2013 kl. 22:50
Hvis man har Mac og Safari, kan man benytte nedenstående script i et bogmærke.

Set-up:
1. Det kræver at man slår "Udvikler" til under Indstillinger > Avanceret.
2. Derefter skal man skifte til iPad under Udvikler > Brugeragent (dette skal gøres hver gang man har åbnet et nyt vindue - men den husker det så længe man browser rundt)
3. Lav et bogmærke med følgende adresse:
javascript: var videoURL = document.getElementById('player').getElementsByTagName('source')[0].src; var videoURL=videoURL.replace("http://om.gss.dr.dk/mediacache/_definst_/mp4:content","http://vodfiles.dr.dk"); var videoURL=videoURL.replace("http://hls0.11003-od0.dna.qbrick.com/11003-od0/_definst_/mp4:","http://vodfiles.dr.dk"); var videoURL=videoURL.replace("/playlist.m3u8",""); document.getElementById('player').innerHTML = '<center><a href="'+videoURL+'">'+videoURL+'</a>';

For at gemme en video skal man føre følgende
1. Skift brugeragent til iPad
2. Find den video du gerne vil hente
3. Klik på bogmærket
4. Højreklik på det link der erstatter videoen og vælg "Overfør arkiv, der henvises til".

Jeg har testet det på Broen II og Gift ved første blik, og det virker med de programmer.

Scriptet kræver ikke at man installerer noget specielt.

Edit: Jeg har tilrettet javascript koden, som det også kan ses senere i debatten.


Skrevet af: jan348
Skrevet den: 29-September-2013 kl. 22:59
Har tidligere brugt drnu.tumblr.com, men grundet for mange fejl er jeg gået over til at bruge WGET kombineret med "Grab Any Media" til at hente fra DR.NU på min NAS.

Det ser godt nok lidt "bøvlet" ud men det fungerer.

URL'en findes via plugin'et, Grab Any Media, på Google chrome.

F.eks denne: http://www.dr.dk/tv/se/klodens-historie/klodens-historie-2-5 - http://www.dr.dk/tv/se/klodens-historie/klodens-historie-2-5

Med Grab Any Media finder man denne linie :
[{"Width":854,"Height":480,"HardSubtitlesType":"ForeignLanguage","Uri":"rtsp://om.gss.dr.dk/mediacache/_definst_/mp4:content/CMS/Resources/dr.dk/NETTV/DR3/2013/09/07e5fb7f-523e-438b-90e3-5ce9e90e2597/Klodens-historie--2-5-_e4031c9a6d5c408b9cdba0ef7fc4f3b3.mp4?ID=1594801","FileFormat":"mp4","Target":"Android","Bitrate":1126},
For at bruge WGET udskiftes en del at URL så den ser således ud:

http://vodfiles.dr.dk/CMS/Resources/dr.dk/NETTV/DR3/2013/09/07e5fb7f-523e-438b-90e3-5ce9e90e2597/Klodens-historie--2-5-_e4031c9a6d5c408b9cdba0ef7fc4f3b3.mp4?ID=1594801

Syntaxen for at hente med WGET bliver således (med Windows 8):

wget -O 'Klodens_Historie_2_5.mp4' http://vodfiles.dr.dk/CMS/Resources/dr.dk/NETTV/DR3/2013/09/07e5fb7f-523e-438b-90e3-5ce9e90e2597/Klodens-historie--2-5-_e4031c9a6d5c408b9cdba0ef7fc4f3b3.mp4?ID=1594801

På NAS'en bruger jeg SSH, WGET og Screen og syntaxen bliver:

screen
q
cd /c/Video/Blandet/
wget -O Klodens_Historie_2_5.mp4 http://vodfiles.dr.dk/CMS/Resources/dr.dk/NETTV/DR3/2013/09/07e5fb7f-523e-438b-90e3-5ce9e90e2597/Klodens-historie--2-5-_e4031c9a6d5c408b9cdba0ef7fc4f3b3.mp4?ID=1594801
exit
exit

Screen sikrer at hentningen fortsætter når jeg lukker SSH'en.

Jeg ved det ser kompliseret ud men det er faktisk ret enkelt når man lige har prøvet det et par gange. Big smile





Skrevet af: ThomasP
Skrevet den: 30-September-2013 kl. 11:02
Oprindeligt skrevet af Desperate Desperate skrev:

Hvis man har Mac og Safari, kan man benytte nedenstående script i et bogmærke.

Set-up:
1. Det kræver at man slår "Udvikler" til under Indstillinger > Avanceret.
2. Derefter skal man skifte til iPad under Udvikler > Brugeragent (dette skal gøres hver gang man har åbnet et nyt vindue - men den husker det så længe man browser rundt)
3. Lav et bogmærke med følgende adresse:
javascript: var videoURL = document.getElementById('player').getElementsByTagName('source')[0].src; var videoURL=videoURL.replace("http://om.gss.dr.dk/mediacache/_definst_/mp4:content","http://vodfiles.dr.dk"); var videoURL=videoURL.replace("/playlist.m3u8",""); location.href= videoURL;

For at gemme en video skal man føre følgende
1. Skift brugeragent til iPad
2. Find den video du gerne vil hente
3. Klik på bogmærket
4. Højreklik på det link der erstatter videoen og vælg "Overfør arkiv, der henvises til".

Jeg har testet det på Broen II og Gift ved første blik, og det virker med de programmer.

Scriptet kræver ikke at man installerer noget specielt.


Mange tak for vejledningen - og de tilsendte links.

Jeg har delvis fået det til at virke. Når jeg klikker på det installerede bogmærke, får jeg en ny side, hvor kun er videoen. Fx med denne URL
http://vodfiles.dr.dk/CMS/Resources/dr.dk/NETTV/DR3/2013/09/a1cc1856-4cf5-4b31-97d1-bd0a3926e4fc/Gift-ved-foerste-blik--1-8-_42897c036767405c86f072c4dd6f4406.mp4?ID=1575455

Safari giver mig ikke mulighed for at gemme videoen, men hvis jeg kopierer URL'en over i Firefox, kan jeg gemme videoen.

Ved nogle videoer får jeg i stedet blot en side med teksten:

Wowza Media Server 3 Monthly Edition 3.5.2.05 build4530

og URL

http://hls0.11003-od0.dna.qbrick.com/11003-od0/_definst_/mp4:CMS/Resources/dr.dk/NETTV/DR1/2013/09/f94f258a-f399-4f1f-a6c2-da56c9f91992/Gift-ved-foerste-blik--3-8---X_371acfffe360487b8f9c983c81ba9d17.mp4?ID=1584888

Det skyldes sandsynligvis, at videoen er hosted hos en ekstern vært (som du skriver).

Jeg ved ikke, hvorfor jeg aldrig når til
"4. Højreklik på det link der erstatter videoen og vælg "Overfør arkiv, der henvises til"."
-- måske kan jeg ikke finde ud af at gemme javascripts korrekt som bogmærker i Safari.

vh. Thomas



Skrevet af: Desperate
Skrevet den: 30-September-2013 kl. 15:42
Oprindeligt skrevet af ThomasP ThomasP skrev:

Ved nogle videoer får jeg i stedet blot en side med teksten: 

Wowza Media Server 3 Monthly Edition 3.5.2.05 build4530

og URL

http://hls0.11003-od0.dna.qbrick.com/11003-od0/_definst_/mp4:CMS/Resources/dr.dk/NETTV/DR1/2013/09/f94f258a-f399-4f1f-a6c2-da56c9f91992/Gift-ved-foerste-blik--3-8---X_371acfffe360487b8f9c983c81ba9d17.mp4?ID=1584888

Det skyldes sandsynligvis, at videoen er hosted hos en ekstern vært (som du skriver).
Ja, den video er hosted hos en ekstern partner. I nogle tilfælde er det dog muligt selv at omskrive URL'en og så benytte Firefox til at hente den.

Det du skal erstatte er det før "CMS/Resources"... Det vil sige:
http://hls0.11003-od0.dna.qbrick.com/11003-od0/_definst_/mp4:

Det skal erstattes med:
http://vodfiles.dr.dk

I dette tilfælde bliver:
http://hls0.11003-od0.dna.qbrick.com/11003-od0/_definst_/mp4:CMS/Resources/dr.dk/NETTV/DR1/2013/09/f94f258a-f399-4f1f-a6c2-da56c9f91992/Gift-ved-foerste-blik--3-8---X_371acfffe360487b8f9c983c81ba9d17.mp4?ID=1584888

Til:
http://vodfiles.dr.dk/CMS/Resources/dr.dk/NETTV/DR1/2013/09/f94f258a-f399-4f1f-a6c2-da56c9f91992/Gift-ved-foerste-blik--3-8---X_371acfffe360487b8f9c983c81ba9d17.mp4?ID=1584888

Det er dog langtfra sikkert at det vil virke hver gang!

Her er en opdateret version af Javascriptet som også foretager ovenstående handling (altså tilretter linket). Det vil dog kun virke med den adresse som jeg har nævnt. Benytter DR's eksterne partner flere adresser, vil det altså ikke ske automatisk.
javascript: var videoURL = document.getElementById('player').getElementsByTagName('source')[0].src; var videoURL=videoURL.replace("http://om.gss.dr.dk/mediacache/_definst_/mp4:content","http://vodfiles.dr.dk"); var videoURL=videoURL.replace("http://hls0.11003-od0.dna.qbrick.com/11003-od0/_definst_/mp4:","http://vodfiles.dr.dk"); var videoURL=videoURL.replace("/playlist.m3u8",""); location.href= videoURL;

Oprindeligt skrevet af ThomasP ThomasP skrev:

Jeg ved ikke, hvorfor jeg aldrig når til 
"4. Højreklik på det link der erstatter videoen og vælg "Overfør arkiv, der henvises til"."
-- måske kan jeg ikke finde ud af at gemme javascripts korrekt som bogmærker i Safari.
Med højreklik mener jeg "Sekundært klik" på Mac-sprog. Hvis du er i tvivl, så gå ind i Indstillinger > Pegefelt. Hvis Sekundært klik ikke har et flueben, kan du aktivere muligheden ved at sætte det og du kan vælge hvordan du vil fremkalde det sekundære klik.


Skrevet af: ThomasP
Skrevet den: 30-September-2013 kl. 16:24
Oprindeligt skrevet af ThomasP ThomasP skrev:

Oprindeligt skrevet af ThomasP ThomasP skrev:

Jeg ved ikke, hvorfor jeg aldrig når til 
"4. Højreklik på det link der erstatter videoen og vælg "Overfør arkiv, der henvises til"."
-- måske kan jeg ikke finde ud af at gemme javascripts korrekt som bogmærker i Safari.
Med højreklik mener jeg "Sekundært klik" på Mac-sprog. Hvis du er i tvivl, så gå ind i Indstillinger > Pegefelt. Hvis Sekundært klik ikke har et flueben, kan du aktivere muligheden ved at sætte det og du kan vælge hvordan du vil fremkalde det sekundære klik.

Flot arbejde! Det gjorde det muligt at finde fx Gift ved første blik - afsnit 3, som ligger eksternt.

Og nu har jeg også forstået så meget af Javascript, at jeg selv kunne smide et par manglende // ind efter vodfiles.dr.dk:

javascript: var videoURL = document.getElementById('player').getElementsByTagName('source')[0].src; var videoURL=videoURL.replace("http://om.gss.dr.dk/mediacache/_definst_/mp4:content","http://vodfiles.dr.dk/"); var videoURL=videoURL.replace("http://hls0.11003-od0.dna.qbrick.com/11003-od0/_definst_/mp4:","http://vodfiles.dr.dk/"); var videoURL=videoURL.replace("/playlist.m3u8",""); location.href= videoURL;

Med hensyn til pkt 4. er mit problem, at jeg aldrig kommer til en side, hvor videoen er erstattet af et link. Jeg får som nævnt blot en webside med videoen, og et højresklik på denne giver kun muligheden "Inspicer element"




Skrevet af: Desperate
Skrevet den: 30-September-2013 kl. 16:32
Så gik det op for mig... jeg havde postet min "version beta" kode, hvor jeg sendte videre til video-filen.

Prøv denne kode i stedet - så skulle det gerne give mere mening:
javascript: var videoURL = document.getElementById('player').getElementsByTagName('source')[0].src; var videoURL=videoURL.replace("http://om.gss.dr.dk/mediacache/_definst_/mp4:content","http://vodfiles.dr.dk"); var videoURL=videoURL.replace("http://hls0.11003-od0.dna.qbrick.com/11003-od0/_definst_/mp4:","http://vodfiles.dr.dk"); var videoURL=videoURL.replace("/playlist.m3u8",""); document.getElementById('player').innerHTML = '<a href="'+videoURL+'">'+videoURL+'</a>';


Skrevet af: Desperate
Skrevet den: 30-September-2013 kl. 16:41
Og hvis man gerne vil have et preview inden man downloader, så man kan se om der er en video eller ej, kan man benytte følgende i stedet:

javascript: var videoURL = document.getElementById('player').getElementsByTagName('source')[0].src; var videoURL=videoURL.replace("http://om.gss.dr.dk/mediacache/_definst_/mp4:content","http://vodfiles.dr.dk"); var videoURL=videoURL.replace("http://hls0.11003-od0.dna.qbrick.com/11003-od0/_definst_/mp4:","http://vodfiles.dr.dk"); var videoURL=videoURL.replace("/playlist.m3u8",""); document.getElementById('player').innerHTML = '<a href="'+videoURL+'">'+videoURL+'</a><p><video controls="" autoplay="" name="media"><source src="'+videoURL+'" type="video/mp4"></video>';


Skrevet af: csell
Skrevet den: 30-September-2013 kl. 16:44

Hej Jan348.

Du skal have mange tak for vejledningen, jeg har prøvet at hente et par udsendelser.

Hvis jeg bruger wget -O So-ein-Ding.mp4 http://vodfiles.dr.dk/CMS/Resources/dr.dk/NETTV/DR1/2013/09/8ff213dc-0352-45ec-bf66-4a6d4b6b1b70/So-ein-Ding_c166cf1c2c814bf6b5de6298f82ac37f_2.mp4?ID=1593660

hentes So ein Ding stikker til søs fra 24. september. Den fylder kun 51,8 MB og er i lav kvalitet.


Hvis jeg bruger http://drnu.tumblr.com/ kan jeg vælge 1 ud af 4 kvaliteter.

Hvis jeg vælger 'GOD' kvalitet fylder samme 115 MB.


Kan man på nogen måde vælge hvilken kvalitet man ønsker, eller måske bare se hvilken kvalitet man går i gang med at downloade ( før man henter den )?

Hilsen Carsten.



Skrevet af: ThomasP
Skrevet den: 30-September-2013 kl. 16:51
Oprindeligt skrevet af Desperate Desperate skrev:

Og hvis man gerne vil have et preview inden man downloader, så man kan se om der er en video eller ej, kan man benytte følgende i stedet:

javascript: var videoURL = document.getElementById('player').getElementsByTagName('source')[0].src; var videoURL=videoURL.replace("http://om.gss.dr.dk/mediacache/_definst_/mp4:content","http://vodfiles.dr.dk"); var videoURL=videoURL.replace("http://hls0.11003-od0.dna.qbrick.com/11003-od0/_definst_/mp4:","http://vodfiles.dr.dk"); var videoURL=videoURL.replace("/playlist.m3u8",""); document.getElementById('player').innerHTML = '<a href="'+videoURL+'">'+videoURL+'</a><p><video controls="" autoplay="" name="media"><source src="'+videoURL+'" type="video/mp4"></video>';

Mange, mange tak! Nu kører det!

vh. Thomas


Skrevet af: ThomasP
Skrevet den: 30-September-2013 kl. 16:55
Jeg har også prøvet at downloade "So ein Ding" på begge måde, og mine filer er lige store (230 MB)


Skrevet af: jan348
Skrevet den: 30-September-2013 kl. 18:01
Jo da.

Hvis du fjerner _2 lige før .mp4

Så din linie:
wget -O So-ein-Ding.mp4 http://vodfiles.dr.dk/CMS/Resources/dr.dk/NETTV/DR1/2013/09/8ff213dc-0352-45ec-bf66-4a6d4b6b1b70/So-ein-Ding_c166cf1c2c814bf6b5de6298f82ac37f_2.mp4?ID=1593660

bliver til:

wget -O So-ein-Ding.mp4 http://vodfiles.dr.dk/CMS/Resources/dr.dk/NETTV/DR1/2013/09/8ff213dc-0352-45ec-bf66-4a6d4b6b1b70/So-ein-Ding_c166cf1c2c814bf6b5de6298f82ac37f.mp4?ID=1593660


854X480 = c37f.mp4?ID=1593660

640X360 = c37f_1.mp4?ID=1593660

416X234 = c37f_2.mp4?ID=1593660


Det er vigtigt at man bruger den linie der begynder med 
[{"Width":854
Du har nok haft fat i den linie der begynder med 
{"Width":416

Så bliver størrelsen 240.686.091

Håber du forstå hvad jeg mener. Det er ikke så nemt at forklare. Smile





Skrevet af: csell
Skrevet den: 30-September-2013 kl. 18:16
Oprindeligt skrevet af jan348 jan348 skrev:

 
854X480 = c37f.mp4?ID=1593660

640X360 = c37f_1.mp4?ID=1593660

416X234 = c37f_2.mp4?ID=1593660


Håber du forstå hvad jeg mener. Det er ikke så nemt at forklare. Smile

Tak Jan348.
Det er en meget fin forklaring. Jo jeg forstår den.
Nu kan vi selv vælge hvilken kvalitet vi vil downloade,
alt efter hvilken skærm vi skal bruge den til.
Hilsen Carsten.








Print side | Luk vindue