「YouTube API」の編集履歴(バックアップ)一覧はこちら
「YouTube API」(2009/12/07 (月) 04:00:41) の最新版変更点
追加された行は緑色になります。
削除された行は赤色になります。
http://code.google.com/intl/ja-JP/apis/youtube/reference.html
たとえば、動画IDがxxxxxxxxの動画の情報を得るには
"http://gdata.youtube.com/feeds/api/videos/xxxxxxxx" というURLを
ブラウザで開けばよく、この動画に関するXMLファイルのDLが始まります。
同じように、xxxxというユーザのプレイリスト一覧を得るには
"http://gdata.youtube.com/feeds/api/users/xxxx/playlists" というURLを
開けばよく、各 entry のなかの gd:feedlink ノードのurlを使うと
各プレイリストの動画一覧が得られます。
まあ、一度に取得できる動画エントリ数の上限とか、取得範囲の指定とか
細かいことは端折ります。
例:
http://gdata.youtube.com/feeds/api/videos?vq=melty&orderby=published&start-index=1&max-results=50
上のリクエストで得られたXMLからタイトル一覧を作る:
#codehighlight(xml){{
<?xml version="1.0" encoding="Shift_JIS" ?>
<xsl:stylesheet
xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"
xmlns:a="http://www.w3.org/2005/Atom">
<xsl:output method="html" encoding="Shift_JIS"/>
<xsl:template match="/a:feed">
<ol>
<xsl:apply-templates select="a:entry"/>
</ol>
</xsl:template>
<xsl:template match="a:entry">
<li>
<xsl:value-of select="a:title"/>
</li>
</xsl:template>
</xsl:stylesheet>
}}
デフォルトのnamespaceはAtomなので、てきとうにxmlns:aとかつけとく。
大体同じことをするJavaScript:
#codehighlight(html){{
<html>
<head>
<script type="text/javascript">
load_data = function(q){
var opt = "vq=" + q + "&orderby=published&start-index=1&max-results=50";
var i;
var xdoc = new ActiveXObject("Microsoft.XMLDOM");
xdoc.async = false;
xdoc.load("http://gdata.youtube.com/feeds/api/videos?" + opt);
var nodes = xdoc.getElementsByTagName("feed/entry/title");
document.form1.result.value = "";
for(i = 0; i < nodes.length; i++){
document.form1.result.value += "** " + nodes[i].firstChild.nodeValue + "\n\n";
}
}
</script>
</head>
<body>
<form name="form1" onSubmit="return false">
<p>
query: <input type="text" name="query" size="35" value="melty">
<input type="button" value="Run" onclick="load_data(document.form1.query.value)">
</p>
<textarea name="result" rows="15" cols="80"></textarea>
</form>
</body>
</html>
}}
----
http://code.google.com/intl/ja-JP/apis/youtube/reference.html
たとえば、動画IDがxxxxxxxxの動画の情報を得るには
"http://gdata.youtube.com/feeds/api/videos/xxxxxxxx" というURLを
ブラウザで開けばよく、この動画に関するXMLファイルのDLが始まります。
同じように、xxxxというユーザのプレイリスト一覧を得るには
"http://gdata.youtube.com/feeds/api/users/xxxx/playlists" というURLを
開けばよく、各 entry のなかの gd:feedlink ノードのurlを使うと
各プレイリストの動画一覧が得られます。
まあ、一度に取得できる動画エントリ数の上限とか、取得範囲の指定とか
細かいことは端折ります。大体この辺↓
http://code.google.com/intl/ja-JP/apis/youtube/reference.html#Query_parameter_definitions
例:
http://gdata.youtube.com/feeds/api/videos?vq=melty&orderby=published&start-index=1&max-results=50
上のリクエストで得られたXMLからタイトル一覧を作る:
#codehighlight(xml){{
<?xml version="1.0" encoding="Shift_JIS" ?>
<xsl:stylesheet
xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"
xmlns:a="http://www.w3.org/2005/Atom">
<xsl:output method="html" encoding="Shift_JIS"/>
<xsl:template match="/a:feed">
<ol>
<xsl:apply-templates select="a:entry"/>
</ol>
</xsl:template>
<xsl:template match="a:entry">
<li>
<xsl:value-of select="a:title"/>
</li>
</xsl:template>
</xsl:stylesheet>
}}
デフォルトのnamespaceはAtomなので、てきとうにxmlns:aとかつけとく。
大体同じことをするJavaScript:
#codehighlight(html){{
<html>
<head>
<script type="text/javascript">
load_data = function(q){
var opt = "vq=" + q + "&orderby=published&start-index=1&max-results=50";
var i;
var xdoc = new ActiveXObject("Microsoft.XMLDOM");
xdoc.async = false;
xdoc.load("http://gdata.youtube.com/feeds/api/videos?" + opt);
var nodes = xdoc.getElementsByTagName("feed/entry/title");
document.form1.result.value = "";
for(i = 0; i < nodes.length; i++){
document.form1.result.value += "** " + nodes[i].firstChild.nodeValue + "\n\n";
}
}
</script>
</head>
<body>
<form name="form1" onSubmit="return false">
<p>
query: <input type="text" name="query" size="35" value="melty">
<input type="button" value="Run" onclick="load_data(document.form1.query.value)">
</p>
<textarea name="result" rows="15" cols="80"></textarea>
</form>
</body>
</html>
}}
----