使用PHP的SimpleXML扩展处理YouTube数据并将其集成到PHP应用程序中

使用PHP 的SimpleXML 扩展处理YouTube 数据并将其集成到PHP 应用程序中
简介
常用缩写词
∙API:应用程序编程接口(application programming interface)
∙HTTP:超文本传输协议(Hypertext Transfer Protocol)
∙PEAR:PHP 扩展和应用库(PHP Extension and Application Repository)
∙PHP:超文本预处理语言(PHP Hypertext Preprocessor)
∙REST:具象状态传输(Representational state transfer)
∙RSS:真正简单的连锁(Really Simple Syndication
∙URL:统一资源定位符(Uniform Resource Locator
∙XML:可扩展标记语言(Extensible Markup Language)
谈到在线视频共享,目前最流行的站点非YouTube 莫属,该站点每天会增加几十亿个页面视图和数十万个视频文件。它不仅仅提供家庭录像:如今,YouTube 还提供音乐节目录像、电视节目剪辑、即将上映的影片片花、动漫剪辑等大量内容。它还允许用户使用关键字为视频添加标记,在任何时刻都可以观看最受欢迎的视频文件。
YouTube 的一个出特性就是它的YouTube Data API,该特性允许开发人员通过基于REST 的API 访问和搜索YouTube 视频数据,并将数据集成到自己的支持XML 的应用程序中。这个过程实现起来并不困难—编写应用程序级别的代码发送REST 请求、解析和解码响应,然后将结果数据集成到应用程序接口。如果使用PHP,那么您可以通过YouTube 的PHP Client Library 执行这些任务,也可以手动解析REST 请求的XML 响应。
本文将讨论后一种方法,展示如何通过YouTube API 访问公共内容并使用SimpleXML 将这些内容集成到您的PHP 应用程序中。本文提供的示例将检索特定类别中的视频清单;根据关键字搜索视频;检索视频元数据,包括缩略图和统计信息;并访问用户个人信息。
回页首了解YouTube 数据格式
在深入研究PHP 代码之前,首先简单介绍一下YouTube Data API。与所有基于REST 的服务一样,首先从一个发送到指定资源的HTTP 请求开始。这个HTTP 请求包含一个查询,具有一个或多个输入参
数;服务器使用Atom 或RSS 格式的响应回复该查询,该响应适合在支持XML 的任何客户机内进行解析。要了解工作原理,请在您喜爱的Web 浏览器中访问
URL utube/feeds/api/standardfeeds/most_ viewed。这个REST 方法返回YouTube 上当前查看次数最多的视频列表。该方法的原始XML 响应(您可以通过结果页面的源代码查看)包含关于这些视频的详细信息,内容类似清单  1 所示:
xmlns:gml='www.opengis/gml' xmlns:georss='/georss'  xmlns:media='search.yahoo/mrss/'
xmlns:yt='utube/schemas/2007'
xmlns:gd='le/g/2005'>
<id>utube/feeds/api/standardfeeds/most_viewed</id>
<updated>2008-03-06T14:43:27.000-08:00</updated>
<category scheme='le/g/2005#kind'
term='utube/schemas/2007#video'/>
<title type='text'>Most Viewed</title>
<logo>utube/img/pic_youtubelogo_123x63.gif</logo>
<link rel='alternate' type='text/html' href='utube/browse?s=mp'/>  <link rel='le/g/2005#feed' type='application/atom+xml'
href='utube/feeds/api/standardfeeds/most_viewed'/>
<link rel='self' type='application/atom+xml'
尺码圈
href='utube/feeds/api/standardfeeds/most_viewed
start-index=1&max-results=5'/>
<link rel='next' type='application/atom+xml'
href='utube/feeds/api/standardfeeds/most_viewed
start-index=6&max-results=5'/>
<author>
<name>YouTube</name>
<uri>utube/</uri>
</author>
<generator version='beta' uri='utube/'>
YouTube data API</generator>
<openSearch:totalResults>94</openSearch:totalResults>
<openSearch:startIndex>1</openSearch:startIndex>
<openSearch:itemsPerPage>5</openSearch:itemsPerPage>
<entry>
<id>utube/feeds/api/videos/dMH0bHeiRNg</id>
<published>2006-04-06T14:30:53.000-07:00</published>
<updated>2008-03-12T00:22:25.000-07:00</updated>
<category scheme='utube/schemas/2007/keywords.cat'
term='Dancing'/>
<category scheme='le/g/2005#kind'
term='utube/schemas/2007#video'/>
<category scheme='utube/schemas/2007/keywords.cat'
term='comedy'/>
<category scheme='utube/schemas/2007/categories.cat'
term='Comedy' label='Comedy'/>
<title type='text'>Evolution of Dance</title>
<content type='text'>The funniest 6 minutes you will ever see!
Remember how many of these you have done!
Judson Laipply is dancing -
www.evolutionofdance -
for more info including song list!</content>
<link rel='alternate' type='text/html'
href='utube/watch?v=dMH0bHeiRNg'/>
<link rel='utube/schemas/sponses'
type='application/atom+xml'
href='utube/feeds/api/videos/dMH0bHeiRNg/responses'/>
<link rel='utube/schemas/lated'
type='application/atom+xml'
href='utube/feeds/api/videos/dMH0bHeiRNg/related'/>
<link rel='self' type='application/atom+xml'
href='utube/feeds/api/standardfeeds/most_viewed/dMH0bHeiRNg'/>
<author>
<name>judsonlaipply</name>
<uri>utube/feeds/api/users/judsonlaipply</uri>
</author>
<media:group>
<media:title type='plain'>Evolution of Dance</media:title>
<media:description type='plain'>The funniest 6 minutes you will ever see!
Remember how many of these you have done!
Judson Laipply is dancing -
www.evolutionofdance -
for more info including song list!</media:description>
<media:keywords>comedy, Dancing</media:keywords>
<yt:duration seconds='360'/>
<media:category label='Comedy'
scheme='utube/schemas/2007/categories.cat'>Comedy
</media:category>
windows下刷bios<media:content
url='utube/v/dMH0bHeiRNg' type='application/x-shockwave-flash'
medium='video' isDefault='true' expression='full' duration='360' yt:format='5'/>
<media:content
url='rtsp://utube/ChoLENy73wIaEQnYRKJ3bPTBdBMYDSANFEgGDA==
/0/0/0/video.3gp' type='video/3gpp' medium='video' expression='full' duration='360'        yt:format='1'/>
<media:content
url='rtsp://utube/ChoLENy73wIaEQnYRKJ3bPTBdBMYESARFEgGDA==
/0/0/0/video.3gp' type='video/3gpp' medium='video' expression='full' duration='360'        yt:format='6'/>
<media:player url='utube/watch?v=dMH0bHeiRNg'/>
<media:thumbnail
url='utube/vi/dMH0bHeiRNg/2.jpg' height='97' width='130'
time='00:03:00'/>
<media:thumbnail
新型玉米脱粒机
快速查看这些输出,熟悉其中的主要元素:
∙YouTube Data API 对REST 请求的响应是一个包含所请求数据的提要。提要的内容多种多样:视频提要、视频评论提要、用户播放列表提要、用户提要,等等。因此,在大多数情况下,XML 响应包含一个<feed> 元素作为根元素。<feed> 元素包含<link> 元素,后者包含当
前、上一个、下一个结果集页面的URL,以及一个包含搜索的摘要统计数据的<openSearch:> 元素。
∙最外层的<feed> 元素封装了一个或多个<entry> 元素,分别代表一个与查询匹配的视频。每个<entry> 包含它所表示的视频的更多信息,包括类别、标题、描述、发布日期、作者和持续时间。
每个<entry> 中还包含<link> 元素,通过其中的链接可以查看视频、视频回复和YouTube Web 站点中其他相关的视频。
∙每个<entry> 中的<media:group> 元素包含关于视频的详细信息:标题、描述、各种格式的可用性、缩略图链接和视频播放器链接。
∙每个<entry> 中的<yt:statistics> 元素提供视频观看者的统计信息,而<gd:rating> 元素提供该视频的平均得分,以及对该视频进行打分的用户总数。
这无疑包含了大量信息—可能超出了您的想象。正是这些丰富的信息库使YouTube Data API 变得引人注目,因为它允许开发人员自由地构建创新性的应用程序。
并不是所有的YouTube Data API 功能都可以通过这种方式进行公开访问。某些功能—尤其是修改站点数据的功能,包括上传视频、编辑内容或用户个人信息、添加评论或为视频打分—只能通过开发锁
(developer key)和身份验证令牌访问。要访问这些API 功能,需要在YouTube 注册为一名开发人员(参加参考资料中的链接)。本文讨论的内容仅限于那些不需要开发锁的API 功能;您不久将看到,这些功能足以让您应接不暇!除垢器
回页首检索视频清单
现在让我们查看一个使用PHP 处理YouTube Data API 提要的示例。清单  2 从清单  1 获取提要并使用SimpleXML 从中提取有关的数据片段,然后将它格式化到一个Web 页面:
清单  2. 使用一个PHP 脚本列出观看次数最多的YouTube 视频
家具附件<!DOCTYPE html
PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="/1999/xhtml" xml:lang="en" lang="en">
<head>
<title>Listing most viewed videos</title>
<style type="text/css">
div.item {
border-top: solid black 1px;
margin: 10px;
padding: 2px;
width: auto;
padding-bottom: 20px;
}
span.thumbnail {
float: left;
margin-right: 20px;
padding: 2px;
border: solid silver 1px;
font-size: x-small;
text-align: center
}
span.attr {
font-weight: bolder;
蜗轮滚刀}
span.title {
font-weight: bolder;
font-size: x-large
}
img {
border: 0px;
}
a {

本文发布于:2024-09-21 11:12:24,感谢您对本站的认可!

本文链接:https://www.17tex.com/tex/1/145818.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:视频   数据   包含   提要   用户   内容   请求
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议