</ Einen Playlisten Newsfeed von Youtube auslesen und verarbeiten >
Wie schon im Titel erwähnt zeige ich euch wie man einen Playlisten Newsfeed von Youtube auslesen und weiter verarbeiten kann.
Ein Playlisten Newsfeed Link sieht so aus: https://www.youtube.com/feeds/videos.xml?playlist_id=PLEr-nsxmCBgnjEyJoBo-XmMG2LghnyI3j
Um diesen zu verarbeiten rufen wir ihn mit PHP auf.
/*BEISPIEL erstzt du durch deine Playlisten ID*/
$youtube = file_get_contents("https://www.youtube.com/feeds/videos.xml?playlist_id=BEISPIEL");
$xml = simplexml_load_string($youtube, "SimpleXMLElement", LIBXML_NOCDATA);
$json = json_encode($xml);
$youtube = json_decode($json, true);
$yt_vids = array();
$count = 0;
foreach ($youtube['entry'] as $k => $v) {
/*Hier lesen wir die Urls der Youtbevideos aus und entfernen den Link damit wir nur die Video ID behalten*/
$id = str_replace('https://www.youtube.com/watch?v=','',$v['link']['@attributes']['href']);
/*Hier lesen wir den Titel der Youtbevideos aus*/
$title = $v['title'];
$count++;
}
Jetzt verarbeite ich das Ganze weiter. In meinem Beispiel speicher ich die Informationen in einer Textdatei und vergleiche aber vorher ob die neuen Infos mit den vorhandenen übereinstimmen. Wen sich an den Feed was geändert hat, wird die schon vorhandene Datei überschrieben.
$youtube = file_get_contents("https://www.youtube.com/feeds/videos.xml?playlist_id=BEISPIEL");
$xml = simplexml_load_string($youtube, "SimpleXMLElement", LIBXML_NOCDATA);
$json = json_encode($xml);
$youtube = json_decode($json, true);
$yt_vids = array();
$count = 0;
foreach ($youtube['entry'] as $k => $v) {
/*Jetzt fasse ich die ID und Titel zusammen und trenne es mit einem | */
$var1 .= str_replace('https://www.youtube.com/watch?v=','',$v['link']['@attributes']['href']) .'|'.$v['title']."\n";
$count++;
}
/*Die vorhandene Datei einlesen*/
$file_content = file_get_contents("beispiel.txt");
$var2 = $file_content;
/*Alle Zeilenumbrüche entfernen und beide Strings vergleichen*/
if (preg_replace('#\r|\n#', '', $var1) == preg_replace('#\r|\n#', '', $var2)) {
echo '$var1 ist gleich $var2 bei einem Vergleich.';
} else {
/*Wenn nicht gleich dann in die Datei überschreiben*/
$datei = fopen("beispiel.txt","w+");
fwrite($datei, trim($var1)/*Mit trim enfernen wir den letzen Zeilenumbruch*/);
rewind($datei);
fclose($datei);
echo 'Gespeichert.';
}
Wie wir dann die Datei weiter verarbeiten erkläre ich dann ein anderes mal.
Permanentlink:https://twus.info/258