Winnie | 10.09.2007
Auch wenn Kathrin Bauerfeind diesen nicht näher genannten Podcast nicht mehr moderiert, so ist er trotzdem einer meiner Lieblingspodcasts. Nur nervt es, sich das Video immer auf der Webseite anschauen zu müssen, weil es keinen Podcastfeed gibt. Aber da kann geholfen werden: ich hab mir einen eigenen Feed mit PHP programmiert und kann nun den Podcast bequem in iTunes laden und anschauen.
Mehr »
Auch wenn Kathrin Bauerfeind diesen nicht näher genannten Podcast nicht mehr moderiert, so ist er trotzdem einer meiner Lieblingspodcasts. Nur nervt es, sich das Video immer auf der Webseite anschauen zu müssen, weil es keinen Podcastfeed gibt. Aber da kann geholfen werden: ich hab mir einen eigenen Feed mit PHP programmiert und kann nun den Podcast bequem in iTunes laden und anschauen.
So geht's:
Zum einen brauchst du die PHP-Klasse Snoopy. Die kopierst du auf deinen Webspace in den Ordner "class". Eine weitere Klasse kommt noch hinzu: xml2obj. Markiere den Quelltext, kopiere sie in einen Texteditor, speichere sie unter dem Dateinamen "xml2obj.class.php" und spiele sie ebenfalls in den Ordner "class" auf deinem Webspace.
Das eigentliche Erstellen des Feeds mit Enclosures für die Videodateien findest du hier:
feed.php. Kopiere dir wieder den Quelltext und spiele ihn in ein neues Dokument in deinen Texteditor. Nun mußt du die URLs "BLOG_RSS_URL" (Zeile 7) und "BLOG_VIDEO_URL" (Zeile 8) von der Podcastwebseite heraussuchen und eintragen. Der Internetauftritt des Podcasts bietet einen normalen Feed an - seine Adresse mußt du bei "BLOG_RSS_URL" eintragen. Die "BLOG_VIDEO_URL" ist die URL zu einem Video sein, aber ohnen den Dateinamen des Films. Damit die Videos auch auf den iPod gesynct werden können, solltest du die Adresse zum Quicktime-Video nehmen. Dann mußt du die Datei unter dem Dateinamen "feed.php" speichern und in den Root-Ordner deines Webspaces spielen. Dann nur noch die "feed.php" im iTunes abonnieren (Advanced -> Subscribe to Podcast) und that's it.
path = "\$this->result";
$this->path = "\$this";
$this->index = 0;
$xml_parser = xml_parser_create($encoding);
xml_set_object($xml_parser, $this);
xml_set_element_handler($xml_parser, 'startElement', 'endElement');
xml_set_character_data_handler($xml_parser, 'characterData');
xml_parse($xml_parser, $data, true);
xml_parser_free($xml_parser);
$this->path = null;
$this->_rawXML = $data;
}
function startElement($parser, $tag, $attributeList) {
eval("\$vars = get_object_vars(".$this->path.");");
$this->path .= "->".$tag;
if ($vars and array_key_exists($tag, $vars))
{
eval("\$data = ".$this->path.";");
if (is_array($data))
{
$index = sizeof($data);
$this->path .= "[".$index."]";
}
else if (is_object($data))
{
eval($this->path." = array(".$this->path.");");
$this->path .= "[1]";
}
}
eval($this->path." = null;");
foreach($attributeList as $name => $value)
{
eval($this->path."->".$name." = \$value;");
}
}
function endElement($parser, $tag) {
$this->path = substr($this->path, 0, strrpos($this->path, "->"));
}
function characterData($parser, $data) {
eval($this->path." .= '".trim($data)."';");
}
}
?>
fetch($submit_url);
// Blog-RSS in Objekt umwandeln
$xmlObj = new xml2obj($snoopy->results, "UTF-8");
// Podcast-Feed erstellen
show_podcastfeed_xml($xmlObj);
// Podcast-Feed erstellen
function show_podcastfeed_xml($uXmlObj)
{
$locDateArray = array();
echo ''."\n";
?>
VERSION))?' version="'.$uXmlObj->RSS->VERSION.'"':'')?>>
RSS->CHANNEL->TITLE))?$uXmlObj->RSS->CHANNEL->TITLE:'')?>
RSS->CHANNEL->LINK))?$uXmlObj->RSS->CHANNEL->LINK:'')?>
RSS->CHANNEL->DESCRIPTION))?$uXmlObj->RSS->CHANNEL->DESCRIPTION:'')?>
RSS->CHANNEL->LANGUAGE))?$uXmlObj->RSS->CHANNEL->LANGUAGE:'')?>
RSS->CHANNEL->ITEM))
{
foreach ($uXmlObj->RSS->CHANNEL->ITEM as $podcast)
{
$locText = $podcast->DESCRIPTION;
$locLink = $podcast->LINK;
$locLinkArray = explode("/", $locLink);
// Datum des Postings für das Videodatum ermitteln
$locDate = $locLinkArray[3]."-".$locLinkArray[4]."-".$locLinkArray[5];
?>
]]>
Kategorien: Blog | 2 Kommentare