générateurs de flux iTunes et Roku

Cette rubrique contient un exemple de code PHP permettant de générer des flux pour iTunes et Roku

Introduction

Vous trouverez ci-dessous deux applications PHP permettant de générer des flux pour iTunes et Ruku, en utilisant l'API de lecture comme source d'informations vidéo.

générateur de flux iTunes

«) ;
  écho "\ n » ;
  print('') ;
 écho "\ n » ;
 print ('') ;
 écho "\ n » ;
 print ('	'. $titre. '') ;
 écho "\ n » ;
 print ('	'. $link. '') ;
 écho "\ n » ;
 print ('	'. $lang. '') ;
 écho "\ n » ;
 print ('	'. $copyright. '') ;
 écho "\ n » ;
 print ('	'. $subtitle. '') ;
 écho "\ n » ;
 print ('	'. $auteur. '') ;
 écho "\ n » ;
 print ('	'. $PubDate. '') ;
 écho "\ n » ;
 print ('	') ;
 écho "\ n » ;
 print ('	') ;
 écho "\ n » ;
 print ('	') ;
 écho "\ n » ;
 print ('		'. $nom_propriétaire. '') ;
 écho "\ n » ;
 print ('		'. $owneremail. '') ;
 écho "\ n » ;
 print ('	') ;
 écho "\ n » ;
 print ('	') ;
 écho "\ n » ;
 print ('	') ;
 écho "\ n » ;
 print ('	'. $explicite. '') ;
 echo « \ n » ;
 echo « \ n » ;
  
  
 fonction FormatSeconds ($seconds)
 {
$seconds = ($secondes/1 000) ;
 $hours = 0 ;
 $millisecondes = str_replace (« 0. «, «, $secondes - étage ($secondes)) ;
  
 if ($secondes > 3600)
 {
$heures = étage ($secondes/3600) ;
}
 $secondes = $secondes % 3600 ;
  
  
 return str_pad ($hours, 2, '0', STR_PAD_LEFT). gmdate (':i:s', $secondes) ;
}
  
  
  
 $ch = curl_init () ;
 $timeout = 5 ;//mis à zéro pour qu'il n'y ait pas de délai d'attente 
curl_setopt ($ch), CURLOPT_URL, $baseUrl. $accountId. '/playlists/'. $playlistid) ;
 curl_setopt ($ch), CURLOPT_HTTPHEADER, array (('Autorization:BCOV-Policy '). $policyKey), ('Politique BCoV : '). $policyKey), ('Accept:application/JSON ; pk='. $policyKey))) ;
 curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1) ;
 curl_setopt ($ch, CURLOPT_CONNECTTIMEOUT, $timeout) ;
 $file_contents = curl_exec ($ch) ;
 curl_close ($ch) ;
  
 $returndata = json_decode ($file_contents) ;
  
 $each (returndata->vidéos (sous forme de $items)
 {
print (')	') ;
 écho "\ n » ;
 print ('		') ;
 print_r ($items-> {"nom"}) ;
 print ('') ;
 écho "\ n » ;
   
 print ('		') ;
 print_r ($items->champ_personnalisés-> {"itunesartist"}) ;
 print ('') ;
 écho "\ n » ;
   
 print ('		') ;
 print_r ($items-> {"description"}) ;
 print ('') ;
 écho "\ n » ;
  
 print ('		') ;
 print_r ($items-> {"description"}) ;
 print ('') ;
 écho "\ n » ;
   
 print ('		') ;
 print_r ($items-> {"affiche"}) ;
 print ('') ;
 echo "\ n » ;
   
 print (' 		<enclosure url="') ;
 $newurl = $items->sources [4] -> {"src"} ;
 print_r ($newurl) ;
 print ('» length="') ;
 print_r ($items-> {"duration"}) ;
 print (' » type="video/mp4" />') ; 
echo "\ n » ;
   
 print ('		') ;
 print_r ($items-> {"id"}) ;
 print ('') ;
 écho "\ n » ;
   
 print ('		') ;
 print_r (date (DATE_RFC2822, ($items-> {"published_at"}))) ;
 print ('') ;
 écho "\ n » ;
   
 print ('		') ;
 print ($duration = formatSeconds ($items-> {"duration"})) ;
 print ('') ;
 écho "\ n » ;
  
 print ('		') ;
 print_r ($items->champ_personnalisés-> {"explicite"}) ;
 print ('') ;
 écho "\ n » ;
  
   
 print ('	') ;
 écho "\ n » ;
}
  
 écho "\ n » ;
  
 print ('') ;
 écho "\ n » ;
 print ('«) ;
  
  ? >

Générateur de flux Roku

');
  echo"\n";
  print('');
  echo"\n";
  print('	'. $title .'');
  echo"\n";
  print('	'. $link .'');
  echo"\n";
  print('	');
  echo"\n";
  
  $ch = curl_init();
  $timeout = 5; // set to zero for no timeout
  curl_setopt ($ch, CURLOPT_URL, $baseURL . $accountId . '/playlists/'. $playlistid);
  curl_setopt ($ch, CURLOPT_HTTPHEADER, array(('Authorization:BCOV-Policy '. $policyKey),('BCOV-Policy:'. $policyKey),('Accept:application/json;pk='. $policyKey)));
  curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1);
  curl_setopt ($ch, CURLOPT_CONNECTTIMEOUT, $timeout);
  $file_contents = curl_exec($ch);
  curl_close($ch);
  
  $returndata = json_decode($file_contents);
  
  foreach($returndata->videos as $items)
  {
  print('	');
  echo"\n";
  
  print('		');
  print_r($items->{"id"});
  print('');
  echo"\n";
  
  print('		');
  print_r(date(DATE_RFC2822,($items->{"published_at"})));
  print('');
  echo"\n";
  
  print('		');
  print_r($items->{"name"});
  print('');
  echo"\n";
  
  print('		');
  print_r($items->{"description"});
  print('');
  echo"\n";
  
  print('		');
  print_r($items->custom_fields->{"roku_category"});
  print('');
  echo"\n";
  
  print('		');
  echo"\n";
  
  
  print('		');
  echo"\n";
  
  
  print('		');
  echo"\n";
  
  // print_r($items);  DUMP THE ENTIRE ARRAY FOR TESTING
   
  print('	');
  echo"\n";
  }
  
  echo"\n";
  
  print('');
  echo"\n";
  print('');
  
  ?>