我想創建一些可以搜索YouTube視頻的東西,並自動播放所有結果。我一直在搜索YouTube的API,沒有發現任何關係。任何人都知道一個地方上手?我知道Javascript,PHP和MySQL,如果有人有腳本或地方開始,我將不勝感激。使用API,Javascript或PHP搜索並播放YouTube結果
4
A
回答
3
你是對的,YouTube API太複雜了,找不到答案,但這是一個很好的Getting Started guide。
無論如何看看Youtube Simple Embed。
This page允許您在線試用Google Data API(無需編程)以瞭解您可以執行的操作。這裏還有API documentation for YouTube search。
0
我已經在我的網絡中使用了javasript的數組來連續播放Youtube視頻。請您嘗試一下下面的地址:
http://play-videos.url.ph/v3/search-play.html
tit = []; vid = [];
portion = 50; // portion should be <= 50
var maxRes = portion;
var nextPageToken;
var searchText = "";
var want = 150;
sum = 0; sumN = 0;
function start(num){
want = num;
searchVid()
}
function searchVid(PageToken){
var searchText= $('#searchtext1').val();
$('#response1').html("<b>Searching for "+searchText+"</b>");
$.get(
"https://www.googleapis.com/youtube/v3/search",{
part : 'snippet',
q : searchText,
maxResults : maxRes, /* 50 */
pageToken : PageToken,
key: 'AIz*********************************zm4'},
/* REPLACE with your API KEY */
function myPlan(response){
nextPageToken=response.nextPageToken;
var resultCount = response.pageInfo.totalResults;
stList = '';
if(want >= resultCount){ want = resultCount}
itemsLen = response.items.length;
for (var i=0; i<response.items.length;i++){
var videoID =response.items[i].id.videoId;
if(typeof videoID != 'undefined'){
var titSt =response.items[i].snippet.title;
vid.push(videoID);
tit.push(titSt);
ss='<tr>'+
'<td style="width:80px;">'+
'<img width="80" height="60" src="http://img.youtube.com/vi/'+
videoID +'/default.jpg">'+
'</td><td><b>'+ (sumN+1) +'</b> <a href="#" '+
'onclick="playVid('+sumN +', this); return false">'+
titSt +'</a></td></tr>';
stList += ss;
document.getElementById('foundText').innerHTML =
'<span style="color:green"><b>'+sum+'</b></span>';
document.getElementById('wantSpan').innerHTML = sumN + '';
sum++ ; sumN++ ;
if((sum == want)||(sum == resultCount)){
document.getElementById('foundText').innerHTML =
'<span style="color:red"><b>'+sum+'</b></span>';
document.getElementById('wantSpan').innerHTML =
'<span style="color:#6600FF">'+ sumN + '</span>';
document.getElementById('r1').innerHTML += stList;
sum = 0;
want = 150;
len = vid.length;
last = len - 1;
return;
}
} /* End of if(typeof ... */
} /* End of for(i=... */
document.getElementById('r1').innerHTML += stList;
x = want - sum;
if(x >= portion){
maxRes = portion;
}else{
maxRes = x;
}
searchVid(nextPageToken);
}); /* End of $.get(... */
}
normalW = '980';
normalH = '551'
var player;
startvid = 'otPNwTrva0I';
var jj = 0;
var tag = document.createElement('script');
tag.src = "http://www.youtube.com/player_api";
var firstScriptTag = document.getElementsByTagName('script')[0];
firstScriptTag.parentNode.insertBefore(tag, firstScriptTag);
function onYouTubePlayerAPIReady() {
player = new YT.Player('player', {
width: normalW,
height:normalH,
videoId: startvid,
playerVars: { 'autoplay': 0, 'rel': 0, 'showinfo': 0, 'showsearch': 0, },
events: {
'onStateChange': onPlayerStateChange,
'onError': onPlayerError
}
});
}
function onPlayerError(error){
if (error){
nextVid();
}
}
function onPlayerStateChange(event) {
if (event.data == 0) {
nextVid();
return false;
}
}
function playVid(num){
jj=num;
showTit(num);
ide = vid[num];
player.loadVideoById(ide, "large");
ob = document.getElementById('list1')
ar = ob.getElementsByTagName('tr');
for(i=0;i<ar.length;i++){
if(ar[i].style.backgroundColor != "#EEEEEE"){
ar[i].style.backgroundColor = "#EEEEEE"
}
}
ar[num].style.backgroundColor = '#CCFF99';
}
function nextVid(){
len = vid.length;
if(len > 0){
last = len-1;
if(jj <= last){jj=jj+1};
if (jj > last){jj=0};
playVid(jj);
}else{
alert('At the openning, this page has only one video.\n\n'+
'You should search them more')
}
}
function showTit(k){
document.getElementById("vtitle").innerHTML = (k+1) +
'/'+ vid.length + ' : ' + tit[k];
}
function init(){
document.getElementById("vtitle").innerHTML = 'Pepito (Lisa del Bo)';
}
function readyTerm(term){
$("#searchtext1").val(term);
}
body{background-color:#999999; margin:0px;padding:0px;
font-family:Arial;font-size:10pt;}
td{border:1px solid gray;font-size:10pt;}
a{text-decoration:none;}
a:hover{color:green;}
input[type="button"], button{
background-color:#DDDDDD;cursor:pointer;padding:0px;
}
#vtitle{
width:980px;height:25px;color:white;background-color:#1B1B1B;
margin-top:-2px;overflow:hidden;padding-top:10px;
}
#header1{font-weight:bold;width:100%;height:24px;
background-color:#006699;padding:3px;position: fixed;left: 0px;top: 0px;}
#header1 td {border: none;}
<body onload="init()">
<div align="center">
<table id="header1" width=100% height="42px" style="margin-bottom:-7px;">
<tr>
<td width="50%" style="color:white;font-family:'Time New Roman';font-size:14pt">
<b><i> SEARCH AND PLAY CONTINUOUSLY</i></b>
</td>
<td width="50%" align="right">
<button type="button" onclick="player.pauseVideo();">|| Pause</button>
<button type="button" onclick="player.playVideo();">> Play</button>
<button type="button" onclick="nextVid();">>> Next</button>
</td>
</tr>
</table>
<div id='player' style="margin-top:37px"></div>
<div id="vtitle"></div><br>
<div id="menu" style="background-color:#99CCFF;padding:4px;width:100%">
<table ><tr style="font-size:10pt;">
<td style="background-color:white" style="border:1px gray solid">
<b>All: <span id="wantSpan"
style="font-size:12pt;font-style: italic">0</span></b>
<b><i>Found:</i>
<span id="foundText" style="font-size:12pt;font-style: italic;color:green">0
</span> </td></b>
<td style="border:1px gray solid;vertical-align:middle">
<b><i style="color:black;font-size:10pt">Search Text:</i></b> <input type="text"
value="Folli Michelangelo"
id="searchtext1" size="72" style="border-style:inset">
<button type="button" onclick="start(150)">S150</button>
<button type="button" onclick="start(300)">S300</button>
</td>
</tr></table>
</div><br>
<div id="tip" style =
"width:780px;height:15px;overflow:auto;background-color:white;text-align:left;padding:10px;line-height:160%">
<a href="#" onclick="readyTerm('Ricky King'); return false">Ricky King</a>,
<a href="#" onclick="readyTerm('Paul Mauriat'); return false">Paul Mauriat</a>,
<a href="#" onclick="readyTerm('Richard Clayderman'); return false">Richard Clayderman</a>,
<a href="#" onclick="readyTerm('Folli Michelangelo'); return false">Folli Michelangelo</a>
</div><br>
<b>SEARCH RESULTS</b>
<br><br>
<div id="list1"
style="width:800px;;height:300px;overflow:auto;background-color:white;text-align:left">
<table id="tableA" width="100%"><tbody id="r1">
</tbody></table>
</div><br>
</div> <!-- center -->
相關問題
- 1. Youtube Data API v3搜索結果排名
- 2. 使用Google Youtube API播放
- 3. Youtube API搜索使用PHP不工作
- 4. 如何使用YouTube JavaScript API播放播放列表
- 5. Youtube使用android api搜索
- 6. YouTube的JavaScript播放器API seekTo()調用
- 7. 已棄用YouTube JavaScript播放器API
- 8. 無法使用YouTube Android播放器API播放Youtube視頻
- 9. 使用YouTube播放器API播放不同的YouTube視頻
- 10. Android - 在ListView中使用YouTube播放器API播放Youtube視頻
- 11. 的Youtube API布爾搜索結果給我錯誤的結果
- 12. 執行JavaScript函數時,YouTube的視頻播放(使用YouTube API)
- 13. Youtube API搜索
- 14. Youtube搜索API
- 15. 使用libspotify播放列表搜索:缺少結果
- 16. Youtube API:搜索可在移動設備上播放的視頻
- 17. ASP.NET中的YouTube API - 播放視頻,按標題搜索
- 18. 搜索中的YouTube API播放列表的視頻
- 19. Youtube API搜索不返回播放列表
- 20. Youtube播放列表插入API Javascript
- 21. 的Javascript的YouTube API - 載入播放器
- 22. 如何使用YouTube Android Player API播放YouTube直播視頻流?
- 23. php搜索結果
- 24. 的Youtube API V3 - 播放限制(PHP)
- 25. 使用Android Youtube API播放實時流
- 26. 使用Youtube API播放音頻
- 27. 如何通過YouTube API檢索用戶的YouTube播放列表?
- 28. 在Android中搜索並播放Youtube視頻
- 29. Javascript搜索視頻使用YouTube API通過API密鑰
- 30. youtube api結果
究竟你 「自動播放所有結果」 是什麼意思?在平行下?一個接一個地?在哪裏 - 在瀏覽器中? – 2012-03-23 00:53:53
一個接一個,抱歉有任何困惑。在瀏覽器中。 – 2012-03-23 00:55:47
這裏是一個加載的問題。你的意思是播放所有搜索出來的視頻,比如說「視頻」?如果是這樣,你可以抓住頁面,然後抓取結果的網址,然後按照你的意願去做。 – qitch 2012-03-23 01:06:56