Toon posts:

Uitzending gemist downloader

Pagina: 1
Acties:

  • Anoniem: 28958
  • Registratie: Juni 2001
  • Niet online
Is er iemand die een programma heeft geschreven om het volgende te doen:

Gegeven een programma naam (die beschikbaar is op uitzendinggemist.nl) en bijv. twee datums, vind alle mms URLs van deze programma's die uitgezonden zijn tussen deze twee datums?

Ik kan zelf ook wel een soort van crawler maken, maar ik heb er niet echt de tijd voor en het lijkt me dat iemand anders al zoiets geschreven heeft.

  • Resistor
  • Registratie: April 2001
  • Niet online

Resistor

Niet meggeren!

Wel voor Windows: DUG: Download uitzendingen van Uitzending Gemist

-edit-
Staat in de HK.
Voorwaarden aanvragen huiskamer (HK) toegang

[Voor 34% gewijzigd door Resistor op 04-10-2009 15:43]

What will end humanity? Artificial intelligence or natural stupidity?


  • PowerSp00n
  • Registratie: Februari 2002
  • Laatst online: 22-04 17:58

PowerSp00n

There is no spoon

En om even uit dat topic te quoten ;)
DeMoN schreef op maandag 06 november 2006 @ 10:25:
Gebruik gewoon mplayer -dumpstream, werkt perfect, doe ik al tijden zo :)

  • Xander
  • Registratie: Oktober 2002
  • Laatst online: 07:26
PowerSp00n schreef op zondag 04 oktober 2009 @ 15:59:
En om even uit dat topic te quoten ;)
[...]
Dat zijn 2 manieren om één videobestand te downloaden. Dat zoekt de TS toch niet? Hij wil de naam van een programma invullen, een begindatum en een einddatum invullen en het programma zelf de verschillende uitzendingen bij elkaar laten zoeken.

PC specs!---Pulse mee voor GoT!
[22:49:37] <@Remy> ik wil een opblaasbare dSLR :+


  • MrNGm
  • Registratie: Augustus 2004
  • Laatst online: 29-03 12:14
Heb wel een PHP scriptje geschreven die zoiets doet... Je input de aflID en hij output de Titel, beschrijving en geeft een lijstje met eerdere afleveringen (en de mms link voor die specifieke aflevering niet te vergeten).

  • Anoniem: 28958
  • Registratie: Juni 2001
  • Niet online
MrNGm schreef op zondag 04 oktober 2009 @ 16:10:
Heb wel een PHP scriptje geschreven die zoiets doet... Je input de aflID en hij output de Titel, beschrijving en geeft een lijstje met eerdere afleveringen (en de mms link voor die specifieke aflevering niet te vergeten).
Zou je dat hier neer kunnen zetten?

  • MrNGm
  • Registratie: Augustus 2004
  • Laatst online: 29-03 12:14
Dat zou kunnen :+

Nog even een kleine aanpassing d'r aan doen :)

  • MrNGm
  • Registratie: Augustus 2004
  • Laatst online: 29-03 12:14
Als het goed is werkt ie, succes d'r mee...

PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
<?php

/***
 * Uitzendinggemist Uitzending info retriever
 * (c) Gerdriaan Mulder, 2009
 * Gebruik / aanpassen op eigen risico
 */

ini_set('user_agent', $_SERVER['HTTP_USER_AGENT']);
//header('Content-Type: text/html;charset=UTF-8;');
echo '<meta http-equiv="Content-Type" content="text/html; charset=UTF-8;" />';
function disguise_curl($url, $cookies) 
{ 
  $curl = curl_init(); 

  // Setup headers - I used the same headers from Firefox version 2.0.0.6 
  // below was split up because php.net said the line was too long. :/ 
  $header[0] = "Accept: text/xml,application/xml,application/xhtml+xml,"; 
  $header[0] .= "text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5"; 
  $header[] = "Cache-Control: max-age=0"; 
  $header[] = "Connection: keep-alive"; 
  $header[] = "Keep-Alive: 300"; 
  $header[] = "Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7"; 
  $header[] = "Accept-Language: en-us,en;q=0.5"; 
  $header[] = "Pragma: "; // browsers keep this blank. 

  curl_setopt($curl, CURLOPT_URL, $url); 
  curl_setopt($curl, CURLOPT_USERAGENT, $_SERVER['HTTP_USER_AGENT']); 
  curl_setopt($curl, CURLOPT_HTTPHEADER, $header); 
  curl_setopt($curl, CURLOPT_COOKIE, $cookies);
  curl_setopt($curl, CURLOPT_REFERER, 'http://www.uitzendinggemist.nl'); 
  curl_setopt($curl, CURLOPT_ENCODING, 'gzip,deflate'); 
  curl_setopt($curl, CURLOPT_AUTOREFERER, true); 
  curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); 
  curl_setopt($curl, CURLOPT_TIMEOUT, 10); 

  $html = curl_exec($curl); // execute the curl command 
  curl_close($curl); // close the connection 

  return $html; // and finally, return $html 
}

if (!isset($_GET['aflID']) && empty($_GET)) {
  ?>
  <form method="get" action="./omroep.php">
  <input type="text" name="aflID" />
  <input type="submit" value="Vraag MMS op" />
  </form>
  <?
} else {
  if (is_numeric($_GET['aflID'])) {
    // Grab js/initialization.js.php?aflID=$_GET['aflID']
    $headers = get_headers('http://player.omroep.nl/?aflID='.$_GET['aflID'], 1);
    $cookies = $headers['Set-Cookie'];
    $url = 'http://player.omroep.nl/js/initialization.js.php?aflID='.$_GET['aflID'];
    $content = disguise_curl($url, $cookies);
    $regexp = "/var\ securityCode\ \=\ '(\w{32})';/";
    $i = preg_match($regexp, $content, $match);
    $md5 = $match[1];
    if (!empty($md5)) {
      // Grab metaplayer.xml.php
      $meta = 'http://player.omroep.nl/xml/metaplayer.xml.php?aflID='.$_GET['aflID'].'&md5='.$md5;
      $metacontent = disguise_curl($meta, $cookies);
      //echo $metacontent;
      
      //$bbreg = "/<stream\ compressie_kwaliteit\=\'bb\'\ compressie_formaat\=\'wmv\'>(.*)</stream>\r\n/"
      $xml = simplexml_load_string($metacontent);
      //print_r($xml);
      $streams = $xml->xpath('//stream[@compressie_kwaliteit="bb" and @compressie_formaat="wmv"]');
      $stream = $streams[0][0];
      // Programmanaam
      $naam = $xml->xpath('//program');
      $omroep = $xml->xpath('//omroep');
      $info = $xml->xpath('//gids_tekst');
      $genre = $xml->xpath('//genre');
      $afl = $xml->xpath('//tab[@titel="Meer afleveringen"]/link');
      //print_r($genre);
      echo $omroep[0][0].' '.ucfirst($naam[0][0]).' (';
      foreach($genre as $g) {
        echo $g[0].' ';
      }
      echo ')<br /><br />';
      echo '<div style="width: 600px;">'.$info[0][0].'</div><br />';
      
      $mms = file_get_contents($stream);
      $mmsregexp = '/<Ref\ href\ \=\ "(.*)"\/>/';
      $j = preg_match($mmsregexp, $mms, $mmsurl);
      echo '<a href="'.$mmsurl[1].'">'.$mmsurl[1].'</a><br /><br />Meer afleveringen:<br />';
      foreach ($afl as $obj) {
        $data = $obj->attributes();
        //print_r($data);
        echo '<a href="./omroep.php?aflID='.$data[0].'">'.$data[1].' '.$obj[0].'</a><br />';
      }
    } else {
      trigger_error('Geen MD5 gevonden :\'(', E_USER_ERROR);
    }
  }
}
Pagina: 1


Tweakers maakt gebruik van cookies

Tweakers plaatst functionele en analytische cookies voor het functioneren van de website en het verbeteren van de website-ervaring. Deze cookies zijn noodzakelijk. Om op Tweakers relevantere advertenties te tonen en om ingesloten content van derden te tonen (bijvoorbeeld video's), vragen we je toestemming. Via ingesloten content kunnen derde partijen diensten leveren en verbeteren, bezoekersstatistieken bijhouden, gepersonaliseerde content tonen, gerichte advertenties tonen en gebruikersprofielen opbouwen. Hiervoor worden apparaatgegevens, IP-adres, geolocatie en surfgedrag vastgelegd.

Meer informatie vind je in ons cookiebeleid.

Sluiten

Toestemming beheren

Hieronder kun je per doeleinde of partij toestemming geven of intrekken. Meer informatie vind je in ons cookiebeleid.

Functioneel en analytisch

Deze cookies zijn noodzakelijk voor het functioneren van de website en het verbeteren van de website-ervaring. Klik op het informatie-icoon voor meer informatie. Meer details

janee

    Relevantere advertenties

    Dit beperkt het aantal keer dat dezelfde advertentie getoond wordt (frequency capping) en maakt het mogelijk om binnen Tweakers contextuele advertenties te tonen op basis van pagina's die je hebt bezocht. Meer details

    Tweakers genereert een willekeurige unieke code als identifier. Deze data wordt niet gedeeld met adverteerders of andere derde partijen en je kunt niet buiten Tweakers gevolgd worden. Indien je bent ingelogd, wordt deze identifier gekoppeld aan je account. Indien je niet bent ingelogd, wordt deze identifier gekoppeld aan je sessie die maximaal 4 maanden actief blijft. Je kunt deze toestemming te allen tijde intrekken.

    Ingesloten content van derden

    Deze cookies kunnen door derde partijen geplaatst worden via ingesloten content. Klik op het informatie-icoon voor meer informatie over de verwerkingsdoeleinden. Meer details

    janee