YoutubeAPI使用
YoutubeAPI使用
1 Youtube API能干什么
2 Youtube API
2.0 Youtube简介
2.1 如何使用Youtube API
2.1.1 获取Youtube 的开发者ID
2.1.2 Youtube API使用
2.3 如何播放检索到的video
2.3.1 使用http请求播放
2.3.2 将播放窗体嵌入到自己的页面内播放
3 Sample实现
1 Youtube API能干什么
服务网站:http://www.youtube.com/
l Youtube API支持搜索用户信息和video信息, 支持多种搜索适用。
l 能很方便的在APP中播放检索到的短片; 只能在播放前设置播放窗口的大小, 但不能实现各种播放模式。
l 提供sample。
相关资源:
http://www.youtube.com/dev Youtube 开发
http://www.youtube.com/dev_docs Youtube API 文档
http://www.youtube.com/dev_intro 使用Youtube API起点
2 Youtube API
2.0 Youtube简介
YouTube是一个因特网网站,让使用者上载观看及分享短片。它是一个可供网民上载观看及分享短片的网站,至今已成为同类型网站的翘楚,并造就多位网上名人和激发网上创作。
2.1 如何使用Youtube API
使用Youtube API首先要申请一个开发者ID(该ID会作为API参数)。API的调用是一个http请求,返回的是一个xml结果集。
2.1.1 获取Youtube 的开发者ID
首先需要申请一个Youtube 帐户, 然后设置developer profile, 设置成功后会产生developer ID。 我申请到的ID是:Gy-vvp-8HnE, 如下:
|
Developer ID: |
Gy-vvp-8HnE |
|
Purpose for Using APIs: |
|
|
Site Name: |
|
|
Site URL: |
|
|
Secret: |
|
|
Platform(s): |
C# |
2.1.2 Youtube API使用
Youtube API功能如下表:
|
User Information |
Video Viewing |
|
由于这些API使用类似,这里举两个例子,详细使用见:http://www.youtube.com/dev_docs。
youtube.users.list_favorite_videos函数说明
描述:通过输入用户名(Yubube的注册用户名),检索出该用户的喜爱的video
参数:
User:Yubube的注册用户名
调用举例:
返回结果中共显示了10条机记录:这里只列举出一条信息。
<?xml version="1.0" encoding="utf-8"?>
<ut_response status="ok">
<video_list>
<total></total>
<video>
<author>j1j8</author>
<id>_pbHmupg-4M</id>
<title>Free Hugs Campaign Aberdeen</title>
<length_seconds></length_seconds>
<rating_avg>4.71</rating_avg>
<rating_count></rating_count>
<description>http://FreeHugsScotland.bebo.com Give a FREE HUG!!!! thats all i can say!!! If you spotted me please post it as a video response!</description>
<view_count></view_count>
<upload_time></upload_time>
<comment_count></comment_count>
<tags>Aberdeen Aberdeenshire free hugs hug guy peace smile happy love John gives city sign hugging sharing friendship human</tags>
<url>http://www.youtube.com/?v=_pbHmupg-4M</url>
<thumbnail_url>http://sjl-static2.sjl.youtube.com/vi/_pbHmupg-4M/2.jpg</thumbnail_url>
</video>
<video>
...
</video>
...
</video_list>
</ut_response>
youtube.videos.list_by_tag (with paging) 函数说明
描述:通过输入的tag, 检索出所有的video;
参数:
l Method:youtube.videos.list_by_tag
l Dev_id:申请的developer ID,即Gy-vvp-8HnE
l Tag:检索的关键字
l Page:如果按页显示,取第几页数据。 可选项参数
l Per_page:一页显示记录的条数。 可选项参数
调用举例:
返回结果:显示了3条记录(2、3条记录略),其中粗体的信息是比较重要的。
<?xml version="1.0" encoding="utf-8" ?>
<ut_response status="ok">
<video_list>
<total></total>
<video>
<author>MollywoodTO</author>
<id>b06exGCPThQ</id>
<title>THE GAYEST SPORT ON EARTH</title>
<length_seconds></length_seconds>
<rating_avg>4.25</rating_avg>
<rating_count></rating_count>
<description>Spandex Alert-The gayest sport on earth Hard-bodied men strut their stuff but in an oh, so gay, way. (and I mean that in a good way! lol)</description>
<view_count></view_count>
<upload_time></upload_time>
<comment_count>None</comment_count>
<tags>sport men sexy spandex athletic competition mollywoodto</tags>
<url>http://www.youtube.com/?v=b06exGCPThQ</url>
<thumbnail_url>http://sjc-static5.sjc.youtube.com/vi/b06exGCPThQ/2.jpg</thumbnail_url>
</video>
<video>
…
</video>
<video>
…
</video>
</video_list>
</ut_response>
youtube.videos.get_details 函数说明
描述:获取video的详细信息;
参数:
l Method:youtube.videos.get_details
l Dev_ID:申请的developer ID,即Gy-vvp-8HnE
l Video_ID:Video的ID,在前一个检索结果中有, 即 b06exGCPThQ。
调用举例:
返回结果:
<?xml version="1.0" encoding="utf-8"?>
<ut_response status="ok">
<video_details>
<author>Sander79</author>
<title>Lost & Found</title>
<rating_avg>4.56</rating_avg>
<rating_count></rating_count>
<tags>stopmotion stop-motion stop motion animation clay claymation</tags>
<description>Some stopmotion animations I lost over the years. I'm glad that I one day made a copy. Finding the copy was a lot more difficult : ) Enjoy!</description>
<update_time></update_time>
<view_count></view_count>
<comment_count></comment_count>
<upload_time></upload_time>
<length_seconds></length_seconds>
<recording_date />
<recording_location />
<recording_country />
<comment_list>
<comment>
<author>joelsheldon</author>
<text>This is immense</text>
<time></time>
</comment>
<comment>
...
</comment>
...
</comment_list>
<channel_list>
<channel>Film & Animation</channel>
</channel_list>
<thumbnail_url>http://sjl-static1.sjl.youtube.com/vi/ss_619Vlyzs/2.jpg</thumbnail_url>
<embed_status>ok</embed_status>
</video_details>
</ut_response>
2.3 如何播放检索到的video
2.3.1 使用http请求播放
请求URL:http://www.youtube.com/watch?v=ss_619Vlyzs
参数v:Videoid,可以通过搜索得到。
返回的是一个网页,其中包含了包放窗体,以及该video的相关信息。
2.3.2 将播放窗体嵌入到自己的页面内播放
如果想要将播放窗体嵌入到自己的页面内需要在html中加入如下代码:
<object>
<param name="movie" value="http://www.youtube.com/v/ss_619Vlyzs"></param>
<param name="wmode" value="transparent"></param>
<embed src="http://www.youtube.com/v/ss_619Vlyzs" type="application/x-shockwave-flash" wmode="transparent" width="" height=""></embed>
</object>
下面是一个完整的播放例子,将其保存为html文档即可运行。
<html>
<head>
</head>
<body>
<object>
<param name="movie" value="http://www.youtube.com/v/ss_619Vlyzs"></param>
<param name="wmode" value="transparent"></param>
<embed src="http://www.youtube.com/v/ss_619Vlyzs" type="application/x-shockwave-flash" wmode="transparent" width="" height=""></embed>
</object>
</body>
</html>
说明:由于我网速太慢,在测试中能播放的时候很少(我只播放成功三次),多数情况是显示的Loading状态,见下图:
3 Sample实现
例子说明: 通过Youtube的搜索API获取video信息。在从信息中得到video的id,使用此ID就能播放该媒体。我们不需关心媒体的格式。
由于播放控件是嵌入到页面中的,而且没有提供多种播放模式, 我们只能改变播放窗口的大小。 我们只能在播放前将设置播放窗口的大小,播放过程中无法改变其大小。
Sample提供两种收缩功能:
l 用户的喜爱的video搜索,即youtube.users.list_favorite_videos
l 关键字搜索,即youtube.videos.list_by_tag
操作说明:
l 01 选择检索模式
l 02 输入检索条件;电击SearchButton
l 03 选择播放媒体播放
l 04 播放该媒体
YoutubeAPI使用的更多相关文章
- iOS网络高级编程:iPhone和iPad的企业应用开发之错误处理
本章内容 watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvcWluZ2h1YXdlbmthbmc=/font/5a6L5L2T/fontsize/400/fi ...
- crontab中的%
crontab中的%是换行的意思,在使用时需要使用\做转义. ----------------- 在用crontab执行一段定时任务时,想要把数据输出到一个日期命名的文件中 * * * * * cd ...
随机推荐
- [c++菜鸟]《Accelerate C++》习题解答
第0章 0-0 编译并运行Hello, world! 程序. #include <iostream> using namespace std; int main() { cout < ...
- 学会读懂 MySql 的慢查询日志
在前边的博客<何时.怎样开启 MySql 日志?>中,我们了解到了怎样启用 MySql 的慢查询日志. 今天我们来看一下怎样去读懂这些慢查询日志.在跟踪慢查询日志之前.首先你得保证最少发生 ...
- 10934 - Dropping water balloons(DP)
这道题的思路非常难想. 问你须要的最少实验次数,这是非常难求解的.并且我们知道的条件仅仅有三个.k.n.实验次数 . 所以我们最好还是改变思路,转而求最高所能确定的楼层数 . 那么用d[i][j]表 ...
- 现成Android 5.0系统源代码
让Android融入我的生活! 写Android一段时间了,每次看到网上一些大牛的博客.分析Android底层Zygote启动.Activity启动.View的绘制过程.SurfaceFlinger. ...
- Fighting regressions with git bisect---within git bisect algorithm
https://www.kernel.org/pub/software/scm/git/docs/git-bisect-lk2009.html Fighting regressions with gi ...
- java关于数组之间的相互赋值
java中数组是被当作对象看待,假设a,b为两个已经初始化的数组,那么语句a=b就表示把b数组对象的引用赋值给a,那么a和b就指向了同一个数组,无论用哪个来操作都影响其指向的数组.原来a指向的数组现在 ...
- JS 怎么把数组类型的参数传递到后台,后台怎么获取
说明:开发环境 vs2012 asp.net mvc4 c# 1.HTML前端代码 <%@ Page Language="C#" AutoEventWireup=" ...
- jquery插件pagination实现分页
1.效果 2.HTML代码 <%@ Page Language="C#" AutoEventWireup="true" CodeBehind=" ...
- machine learning for hacker记录(4) 智能邮箱(排序学习&推荐系统)
本章是上一章邮件过滤技术的延伸,上一章的内容主要是过滤掉垃圾邮件,而这里要讲的是对那些正常的邮件是否可以加入个性化元素,由于每个用户关心的主题并非一样(有人喜欢技术类型的邮件或者购物促销方便的内容邮件 ...
- Dockder的CS模式:
Docker的守护进程一直运行, yw1989@ubuntu:~$ ps -ef | grep docker : 就是docxker的守护进程 root : ? :: /usr/bin/dockerd ...