Ik heb een RSS feed die ik wil uitlezen met PHP: https://www.youtube.com/feeds/videos.xml?user=vespinonl. Simpel zat zou je zeggen:


$rss=simplexml_load_file('https://www.youtube.com/feeds/videos.xml?user=vespinonl');

if($rss) {
	foreach($rss->entry as $entry) {

	}
}


Probleem is alleen dat er een hoop mist als je de feed met simplexml uit leest. Zaken zoals "yt:videoId" en "media:group", etc, etc zijn niet benaderbaar. Iemand een oplossing hiervoor?
<?php
$url = "https://www.youtube.com/feeds/videos.xml?user=vespinonl";;
$data = simplexml_load_file($url);

foreach($data->entry as $myData){
echo "Titel: " . $myData->title."<br />";
echo "Link :" . $myData->link['href']."<br />";
}
?>
Dat lijkt me hetzelfde. Heb inmiddels dit gevonden, zo eens testen:

<?php
$languages = simplexml_load_file("languages.xml");
$ns = $languages->getNamespaces(true);

foreach($languages->lang as $lang) {
    $dc = $lang->children($ns["dc"]);
    printf(
        "<p>%s appeared in %d and was created by %s.</p>",
        $lang["name"],
        $lang->appeared,
        $dc->creator
    );
}
Zie mijn geupdated code.
Dit is zo'n beetje de oplossing:

<?php
$rss=@simplexml_load_file('https://www.youtube.com/feeds/videos.xml?user=vespinonl');
$ns=$rss->getNamespaces(true);

//set
$return=array();

foreach($rss->entry as $entry) {
	//namespaces
    $yt=$entry->children($ns["yt"]);
	$media=$entry->children($ns["media"]);

	//get id
	$id=trim($yt->videoId);

	$description=$media->group->description;

	//etc
}
?>


Het lukt me alleen nog niet dit uit te lezen:

<media:thumbnail url="https://i4.ytimg.com/vi/kNLYonlYWuo/hqdefault.jpg" width="480" height="360"/>
Waarom doe je het uberhaupt via XML? Je kan toch gebruik maken van youtube API..
Voorbeelden om het beter te doen zijn altijd welkom, maar ik vond niet direct een feed met mijn uploads, dus vandaar deze oplossing.

Reageren