YouTube RSS Feed per PHP auslesen

Schwarzwald

Grünschnabel
Hallo,

ich moechte gerne per PHP Script meinen eigenen UserRSS Feed bei YouTube auslesen, und diesen dann spaeter auf meiner eigenen Website anzeigen lassen. Bislang habe ich einen Script, der auch gut funktioniert (s.u.). Er liesst aber nur die sogenannten Title (Uberschriften) aus und zeigt mir diese aufgelistet als Title-Links an. So weit so gut. Doch ich moechte zusaetzlich noch die Videobeschreibung (Videoinfos) dazu anzeigen lassen, evtl. noch das kleine Thumb zu den Videos, das man ja im eigentlichen Feed auch sehen kann. Kann mir jemand weiterhelfen. Ich komme nicht weiter, mache nun schon seit 5 Tagen dran rum und habe auch schon alle Foren durchsucht, bislang bin ich aber nur bis zu dem o.g. Script gekommen. Hier mal der bisherige Script... Vielen Dank fuer Antworten und eure Hilfe.

<?php
$quelle = @file('http://www.youtube.com/rss/user/USERNAME/videos.rss');
$data = implode ("", $quelle);

if(isUTF8($data)) $utf8 = 1;
else $utf8 = 0;

preg_match_all("|<item>(.*)</item>|Uism",$data, $items, PREG_PATTERN_ORDER);
if (count($items[1])==0) {
preg_match_all("|<item .*>(.*)</item>|Uism",$data, $items, PREG_PATTERN_ORDER);
}
for ($i=0; $i<count($items[1]); $i++) {
preg_match_all("|<title>(.*)</title>(.*)<link>(.*)</link>|Uism",$items[1][$i], $regs, PREG_PATTERN_ORDER);

if($utf8 == 1) $title = utf8_decode($regs[1][0]);
else $title = $regs[1][0];

echo "<a href=\"".$regs[3][0]."\" target=\"_blank\">".$title."</a><br>\n";
}

function isUTF8($str) {
if ($str === mb_convert_encoding(mb_convert_encoding($str, "UTF-32", "UTF-8"), "UTF-8", "UTF-32")) {
return true;
} else {
return false;
}
}
?>
 
Ich rate dir erst einmal mit einem richtigen XML-Parser zu arbeiten wie etwa SimpleXML. Beispielsweise:
PHP:
$xml = simplexml_load_string(file_get_contents('http://www.youtube.com/rss/user/example/videos.rss'));
$items = $xml->xpath('/rss/channel/item');
echo '<dl>';
foreach( $items as $item ) {
	echo '<dt><a href="'.htmlspecialchars($item->link).'">'.htmlspecialchars($item->title).'</a></dt>';
	echo '<dd>'.$item->description.'</dd>';
}
echo '</dl>';
 
Zurück