SimplePie解析为查找Youtube视频链接

时间:2013-01-28 23:02:48

标签: php xml parsing simplepie

我正在使用SimplePie解析我们的教会RSS Feed,其中包含每周布道,包括音频和视频。我能够获得标题和mp3链接,但很难获得youtube链接。以下是包含youtube视频的XML Feed中的内容示例。

正在使用[CDATA]

我正在使用$item->get_content(),但这似乎不包含以下任何标记数据。 Feed的网址为http://lakeforest.org/feed。当我在浏览器中显示此网址时,我可以看到嵌入的YouTube视频。

非常感谢任何帮助。

注意: - 我评论下面的html只显示

<!--
<description><![CDATA[Huntersville Campus Mike Moses, Lead Pastor Series Discussion Questions: SHAPE, Part 2 Spiritual Gifts Inventory VIDEO AUDIO]]></description>
                <content:encoded><![CDATA[<h3>Huntersville Campus</h3>
<p>Mike Moses, Lead Pastor<br />
<a href="http://lakeforest.org/wp-content/uploads/2013/01/SDQ_SHAPEPt2.pdf">Series Discussion Questions: SHAPE, Part 2</a><br />
<a href="http://www.churchgrowth.org/cgi-cg/gifts.cgi?intro=1 <http://www.churchgrowth.org/cgi-cg/gifts.cgi?intro=1" target="_blank">Spiritual Gifts Inventory</a></p>
<h4>VIDEO</h4>
<p><iframe width="420" height="315" src="http://www.youtube.com/embed/4Uv8U8c6isg" frameborder="0" allowfullscreen></iframe></p>
<h4>AUDIO</h4>
<img src="http://feeds.feedburner.com/~r/LakeForest/~4/qMoLVpI1tGI" height="1" width="1"/>]]>  -->

2 个答案:

答案 0 :(得分:1)

SimplePie默认删除embedobjectiframe等标签,因为它们可能很危险。

如果您想要恢复视频,则应忽略它们,但要小心源网址,因为这可能是一个安全问题。

$feed = new SimplePie();
$feed->set_feed_url('http://simplepie.org/blog/feed/');

// Remove these tags from the list
$strip_htmltags = $feed->strip_htmltags;
array_splice($strip_htmltags, array_search('object', $strip_htmltags), 1);
array_splice($strip_htmltags, array_search('param', $strip_htmltags), 1);
array_splice($strip_htmltags, array_search('embed', $strip_htmltags), 1);
array_splice($strip_htmltags, array_search('iframe', $strip_htmltags), 1);

$feed->strip_htmltags($strip_htmltags);

Source

答案 1 :(得分:0)

我刚注意到您的Feed网址,这不是我所期待的,我期待这样的事情:

  

http://gdata.youtube.com/feeds/base/videos?q=painting+miniatures+tutorial&orderby=published&client=ytapi-youtube-search&v=2

这是来自YouTube的搜索结果Feed,我将其传递给SimplePie here。您声明$ item的其余PHP代码也很有用。我今晚回答了类似的问题,基本上多年来YouTube改变了他们的API和Feed,你可能不得不更新到他们的API / feed的更新版本,即使你可以找到它的旧例子。

SimplePie可以处理一些(如果不是全部)YouTube Feed,但无法保证Google(YouTube)会为您提供缩略图以及他们在YouTube.com上拥有的所有元数据。 API通常通过API提供其数据库中包含的数据的子集,他们希望人们访问他们的网站,以便他们可以向他们展示广告并更好地跟踪它们。

不是你想要的答案,但没有更多的信息,这是我能做的最好的。

如果您想深入了解Feed并获取视频网址然后为其创建播放器,那么这非常重要。你必须使用像simple_html_dom这样的东西,然后你需要创建一个格式正确的iframe或javascript调用来创建在浏览器中。 SimplePie没有get_contents() - &gt;视频