全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:2099
推到 Plurk!
推到 Facebook!

youtube API

答題得分者是:老大仔
boy330077
一般會員


發表:39
回覆:59
積分:19
註冊:2009-10-15

發送簡訊給我
#1 引用回覆 回覆 發表時間:2015-09-17 10:25:35 IP:211.20.xxx.xxx 訂閱
google 上打上    youtube api 
搜尋出來的結果,除了GOOGLE的官方文件,其他幾乎都是 HTML5或是JAVA 的範例。

不曉得有沒人知道怎麼從DELPHI去讀YOUTUBE的影片?_
老大仔
尊榮會員


發表:78
回覆:837
積分:1088
註冊:2006-07-06

發送簡訊給我
#2 引用回覆 回覆 發表時間:2015-09-18 07:29:24 IP:210.61.xxx.xxx 未訂閱
假如只是要播放的話 使用TWebBrowser應該就可以了
編輯記錄
老大仔 重新編輯於 2015-09-18 08:18:19, 註解 無‧
boy330077
一般會員


發表:39
回覆:59
積分:19
註冊:2009-10-15

發送簡訊給我
#3 引用回覆 回覆 發表時間:2015-09-21 09:12:24 IP:211.20.xxx.xxx 訂閱
謝謝老大,但是我不想瀏覽YOUTUBE網頁,

難道沒有辦法透過YOUTUBE的API讀取影片資訊,跟載入影片嗎。
boy330077
一般會員


發表:39
回覆:59
積分:19
註冊:2009-10-15

發送簡訊給我
#4 引用回覆 回覆 發表時間:2015-09-21 17:29:30 IP:211.20.xxx.xxx 訂閱
更新


[code delphi]
procedure TForm2.GetPlayList(const ListId: string);
procedure Readflv(o:TJSONArray);
var
i:Integer;
v1, v2, v3, v4:TJSONObject;
p:pflv;
begin
for i := 0 to o.Size - 1 do begin
New(p);
v1:=o.Get(i) as TJSONObject;
v2:=(v1.Get('snippet').JsonValue as TJSONObject);
p.Title:=v2.Get('title').JsonValue.Value;
if p.Title='Deleted video' then begin
Dispose(p);
Continue;
end;
v3:=(v2.Get('thumbnails').JsonValue as TJSONObject);
v4:=(v3.Get('high').JsonValue as TJSONObject);
p.img:=v4.Get('url').JsonValue.Value;
v3:=(v2.Get('resourceId').JsonValue as TJSONObject);
p.id:=v3.Get('videoId').JsonValue.Value;

playList.AddObject(p.id, TObject(p));
ListBox1.Items.AddObject(p.Title, TObject(p));
end;
end;
var
StrURL, StrPage:String;
o1, o2:TJSONObject;
TotalResult, Page:Integer;
begin
ListBox1.Clear;
ListBox1.Items.BeginUpdate;
playList.Clear;
StrUrl:=
'https://www.googleapis.com/youtube/v3/playlistItems?part=snippet'
'&maxResults=50'
'&playlistId=' ListId
'&key=' BrowseApiKey;
StrPage:='';
o1:=TJSONObject.ParseJSONValue(TEncoding.utf8.getbytes(IdHTTP1.get(StrURL)), 0) as TJSONObject;

try
Page:=50;
TotalResult:=StrToIntDef(((o1.Get('pageInfo').JsonValue as TJSONObject).Get('totalResults').JsonValue.Value),-1);
if TotalResult<=0 then Exit;

Readflv(o1.Get('items').JsonValue as TJSONArray);
while Page StrPage:='&pageToken=' o1.Get('nextPageToken').JsonValue.Value;
FreeAndNil(o1);
o1:=TJSONObject.ParseJSONValue(TEncoding.utf8.getbytes(IdHTTP1.get(StrURL strPage)), 0) as TJSONObject;
Readflv(o1.Get('items').JsonValue as TJSONArray);
inc(Page, 50);
end;
finally
FreeAndNil(o1);
Caption:=Format('%d', [ListBox1.Items.Count]);
ListBox1.Items.EndUpdate;
end;
end;
[/code]



以上 配合 自己的 播放清單 ID 以及 GOOGLE CONSOLE 的 BROWSEKEY 我已經取得我清單內所有影片的ID

接下來想要播放他,以及知道他哪時候結束 想透過

類似 "這樣" 的做法

( 連結 貼不上去 http://blog.elaine-iic.tw/2015/07/youtube-iframe-player-api.html)

不知道有沒有人嘗試過

2. 第一次用 JSON 不知道用法,不知道什麼狀況才有需要FREE
編輯記錄
boy330077 重新編輯於 2015-09-22 08:39:51, 註解 無‧
boy330077 重新編輯於 2015-09-22 08:43:01, 註解 排版亂掉‧
系統時間:2024-12-04 1:16:52
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!