หน้านี้แสดงตัวอย่างคำขอไปยัง YouTube Data API คุณใช้ YouTube Data API เพื่อดึงข้อมูลและจัดการทรัพยากรของ YouTube เช่น วิดีโอ ช่อง และเพลย์ลิสต์ ตัวอย่างแต่ละรายการจะลิงก์ไปยังและป้อนข้อมูลของ Google API Explorer เพื่อให้คุณสามารถเรียกใช้ตัวอย่างและดูการตอบกลับได้
ดูข้อมูลเกี่ยวกับการอัปโหลดเนื้อหาโดยใช้ YouTube Data API ได้ที่การอัปโหลดที่ดำเนินการต่อได้
ภาพรวม
เพื่อความชัดเจนในการนำเสนอ ตัวอย่างในหน้านี้แสดงองค์ประกอบเฉพาะของคำขอแต่ละรายการ และย่อ URL ฐานสำหรับโฮสต์ที่ประมวลผลคำขอ Data API (https://www.googleapis.com/youtube/v3
) หากต้องการส่งคำขอนอกบริบทของตัวอย่าง คุณต้องใส่ URL แบบเต็ม
เช่น ต่อไปนี้เป็นคำขอตัวอย่างตามที่ปรากฏในหน้านี้
GET {base-URL}/channels?part=contentDetails &mine=true
URL ที่สมบูรณ์สำหรับคำขอนี้คือ:
GET https://www.googleapis.com/youtube/v3/channels?part=contentDetails &mine=true
คำขอหลายคำขอจะเรียกดูข้อมูลที่เจ้าของช่อง YouTube เข้าถึงได้เท่านั้น เช่น รายชื่อผู้ติดตาม โดยเจ้าของช่องต้องให้สิทธิ์นักสำรวจ Google API ในการส่งคำขอ YouTube Data API ในนามของเจ้าของช่องในคำขอเหล่านี้ (ดูรายละเอียดเกี่ยวกับการให้สิทธิ์เข้าถึงข้อมูลช่องส่วนตัว) ได้ที่การใช้การตรวจสอบสิทธิ์ OAuth 2.0 หลังจากลิงก์กับ API Explorer แล้ว ให้คลิกปุ่มให้สิทธิ์คำขอโดยใช้ OAuth 2.0 ขั้นตอนนี้จะให้สิทธิ์ API Explorer ในการส่งคำขอในนามของเจ้าของ นอกจากนี้ คุณยังเลือกขอบเขตของการให้สิทธิ์ได้ ซึ่งจะระบุประเภทคำขอที่ API Explorer ดำเนินการได้
การตอบกลับคำขอแต่ละรายการคือการแสดงไฟล์ JSON ของทรัพยากรใน YouTube พารามิเตอร์ part
ในคำขอจะระบุส่วนของทรัพยากรที่รวมอยู่ในการตอบกลับ พารามิเตอร์จะระบุพร็อพเพอร์ตี้ทรัพยากรระดับบนสุด (ไม่ได้ซ้อน) อย่างน้อย 1 รายการที่ควรรวมอยู่ในการตอบกลับ ตัวอย่างเช่น บางส่วนของแหล่งข้อมูลวิดีโอมีดังนี้
- ตัวอย่างข้อมูล
- contentDetails
- ผู้เล่น
- สถิติ
- สถานะ
ส่วนต่างๆ ทั้งหมดนี้คือออบเจ็กต์ที่มีพร็อพเพอร์ตี้ที่ซ้อนกันอยู่ ซึ่งคุณอาจคิดว่าออบเจ็กต์เหล่านี้เป็นกลุ่มของช่องข้อมูลเมตาที่เซิร์ฟเวอร์ API อาจดึง (หรืออาจไม่ได้) ดังนั้นพารามิเตอร์ part
จึงกำหนดให้คุณต้องเลือกคอมโพเนนต์ทรัพยากรที่แอปพลิเคชันใช้จริงโปรดดูข้อมูลเพิ่มเติมที่เริ่มต้นใช้งาน API ข้อมูลของ YouTube
ดึงข้อมูลช่อง
คำขอนี้ใช้วิธีการ channels.list
เพื่อเรียกข้อมูลรายละเอียดเกี่ยวกับช่องที่เป็นของผู้ใช้ที่ตรวจสอบสิทธิ์แล้ว
GET {base_URL}/channels?part=contentDetails &mine=true
การตอบกลับคำขอนี้รวมถึงรหัสช่องและ contentDetails
สำหรับช่องของผู้ใช้ที่ผ่านการตรวจสอบสิทธิ์แล้ว contentDetails
มีเพลย์ลิสต์ที่ระบบสร้างขึ้นหลายรายการซึ่งเชื่อมโยงกับช่อง คำขอที่ตามมาหลายรายการต้องการรหัสช่องหรือรหัสเพลย์ลิสต์อย่างใดอย่างหนึ่ง การบันทึกจึงเป็นสิ่งสำคัญ
{ "id": {CHANNEL_ID}, "kind": "youtube#channel", "etag": etag, "contentDetails": { "relatedPlaylists": { "likes": {LIKES_PLAYLIST_ID}, "favorites": {FAVORITES_PLAYLIST_ID}, "uploads": {UPLOADS_PLAYLIST_ID}, "watchHistory": {WATCHHISTORY_PLAYLIST_ID}, "watchLater": {WATCHLATER_PLAYLIST_ID} }, "googlePlusUserId": string }, }
วิดีโอที่อัปโหลดและเพลย์ลิสต์ที่ระบบสร้างขึ้น
YouTube จะเพิ่มวิดีโอที่อัปโหลดทั้งหมดลงในเพลย์ลิสต์ที่เชื่อมโยงกับช่อง หากต้องการดูรายการวิดีโอที่อัปโหลด ให้ค้นหาด้วยคำว่า "อัปโหลด" แสดงเพลย์ลิสต์ไว้ในการตอบกลับสำหรับข้อมูลช่องที่แสดงด้านบน โดยใช้เมธอด playlistItems.list
เพื่อดึงข้อมูลวิดีโอในเพลย์ลิสต์นั้น
ก่อนดำเนินการตามคำขอตัวอย่างต่อไปนี้ใน Google API Explorer ให้แทนที่ {UPLOADS_PLAYLIST_ID} ด้วยรหัสเพลย์ลิสต์จากคำขอก่อนหน้า
GET {base_URL}/playlistItems?part=contentDetails &playlistId={UPLOADS_PLAYLIST_ID}
โปรดทราบว่าค่า "id"
สำหรับสินค้าแต่ละรายการที่ส่งกลับมาจะเป็นรหัสรายการเล่นของรายการนั้น รหัสวิดีโอของรายการเพลย์ลิสต์คือ videoId
ในส่วน contentDetails
คุณสามารถเรียกดูรายการโปรด การกดชอบ ประวัติการดู หรือรายการดูภายหลังของผู้ใช้โดยใช้คำขอข้างต้นโดยแทนที่รหัสเพลย์ลิสต์ที่สอดคล้องกันจากการตอบกลับข้อมูลช่อง
เพลย์ลิสต์ที่ผู้ใช้สร้างขึ้น
คำขอนี้ใช้เมธอด playlists.list
เพื่อเรียกข้อมูลเพลย์ลิสต์ที่เชื่อมโยงกับช่องที่ตรวจสอบสิทธิ์แล้ว โปรดทราบว่าคำขอนี้จะไม่เรียกข้อมูลเพลย์ลิสต์ที่ระบบสร้างขึ้นซึ่งรวมอยู่ในข้อมูลช่อง (การอัปโหลด ประวัติการดู และอื่นๆ) ดึงข้อมูลเฉพาะเพลย์ลิสต์ที่ผู้ใช้สร้างขึ้นเท่านั้น
GET {base_URL}/playlists?part=snippet &mine=true
เมื่อมีรหัสเพลย์ลิสต์แล้ว คุณจะเรียกข้อมูลรายการจากเพลย์ลิสต์ได้โดยใช้คำขอที่แสดงในส่วนก่อนหน้า
คุณขอข้อมูลเกี่ยวกับเพลย์ลิสต์สาธารณะของช่องได้โดยไม่ต้องตรวจสอบสิทธิ์ เมื่อคุณส่งคำขอที่ไม่ได้ตรวจสอบสิทธิ์ คุณต้องใส่อาร์กิวเมนต์ key
ที่ระบุ คีย์ API ที่ไม่ซ้ำกันสำหรับแอปพลิเคชันที่ส่งคำขอ ตัวอย่างเช่น คำขอนี้เรียกข้อมูลเพลย์ลิสต์ที่เชื่อมโยงกับช่อง Google Developers
GET {base_URL}/playlists?part=snippet &channelId=UC_x5XG1OV2P6uZZ5FSM9Ttw &key={YOUR_API_KEY}
เรียกข้อมูลการสมัครใช้บริการ
แหล่งข้อมูล subscription
ระบุความสัมพันธ์ระหว่างผู้ใช้ YouTube (ผู้ติดตาม) กับช่อง เมธอด subscriptions.list
จะเรียกผู้ติดตามจากช่องหรือการติดตามของผู้ใช้ที่เฉพาะเจาะจง โดยขึ้นอยู่กับพารามิเตอร์ที่คุณรวมไว้ในคำขอ
ผู้ติดตามช่อง
คำขอนี้เรียกรายชื่อผู้ติดตามของช่องที่ตรวจสอบสิทธิ์แล้ว
GET {base_URL}/subscriptions?part=snippet &mySubscribers=true
การสมัครใช้บริการของผู้ใช้
คุณสามารถใช้วิธีเดียวกันกับการแสดงรายชื่อผู้ติดตาม (subscriptions.list
) ในการแสดงช่องที่ผู้ใช้ติดตาม คำขอนี้ใช้พารามิเตอร์ mine
เพื่อเรียกข้อมูลรายการช่อง YouTube ที่ผู้ใช้ที่ได้รับการตรวจสอบสิทธิ์ติดตาม
GET {base_URL}/subscriptions?part=snippet &mine=true
เรียกข้อมูลกิจกรรมของผู้ใช้
แหล่งข้อมูล activity
ประกอบด้วยข้อมูลเกี่ยวกับการดำเนินการที่ช่องหรือผู้ใช้ที่เฉพาะเจาะจงดำเนินการบน YouTube เช่น การอัปโหลดวิดีโอ การติดตามช่อง และอื่นๆ เมธอด activities.list
จะดึงการดำเนินการที่เชื่อมโยงกับช่องหรือผู้ใช้ที่ตรงกับเกณฑ์คำขอ ตัวอย่างเช่น คุณสามารถดึงการกระทำที่เชื่อมโยงกับช่องใดช่องหนึ่ง การติดตามของผู้ใช้ หรือหน้าแรก YouTube ที่กำหนดเองของผู้ใช้
กิจกรรมในช่วงระยะเวลาหนึ่ง
คำขอนี้เรียกการทำงานทั้งหมดที่ผู้ใช้ที่ได้รับการตรวจสอบสิทธิ์ทำในช่วงเดือนเมษายน 2013
GET {base_URL}/activities?part=snippet,contentDetails &mine=true &publishedAfter=2013-04-01T00%3A00%3A00Z &publishedBefore=2013-05-01T00%3A00%3A00Z
กิจกรรมในหน้าแรก
คำขอนี้จะเรียกฟีดกิจกรรมที่กำหนดเองซึ่งแสดงในหน้าแรกของ YouTube ของผู้ใช้ที่ผ่านการตรวจสอบสิทธิ์
GET {base_URL}/activities?part=snippet,contentDetails &home=true
คุณต้องใช้ API ของข้อมูลวิเคราะห์ YouTube ในการดึงข้อมูลสถิติการดู เมตริกความนิยม และข้อมูลประชากรสำหรับวิดีโอและช่อง YouTube หน้าตัวอย่างคำขอ API จะแสดงวิธีเรียกดูรายงานทั่วไปจาก YouTube Analytics
ค้นหา
เมธอด search.list
จะช่วยให้คุณค้นหาวิดีโอ ช่อง หรือเพลย์ลิสต์ใน YouTube ที่ตรงกับเกณฑ์ที่ระบุได้ คุณสามารถค้นหาตามพร็อพเพอร์ตี้วิดีโอ คีย์เวิร์ด หรือหัวข้อ (หรือทั้งสองอย่างรวมกัน) และสามารถจัดเรียงผลลัพธ์ตามปัจจัยต่างๆ เช่น วันที่สร้าง จำนวนการดู หรือการให้คะแนน
เมธอด search.list
จะแสดงการแทน JSON ของแหล่งข้อมูล YouTube เช่นเดียวกับคำขอ API ข้อมูลของ YouTube อื่นๆ แต่ผลการค้นหาจะไม่ใช่วัตถุถาวรที่มีรหัสที่ไม่ซ้ำกัน ซึ่งต่างจากแหล่งข้อมูลอื่นๆ ของ YouTube
คำขอจำนวนมากค้นหาเนื้อหาที่เผยแพร่ต่อสาธารณะจึงไม่จำเป็นต้องมีการตรวจสอบสิทธิ์ ในตัวอย่างด้านล่างนี้ มีเพียงรายการแรกเท่านั้นที่ต้องตรวจสอบสิทธิ์ เนื่องจากระบบจะขอ "my" เป็นการเฉพาะ วิดีโอ เมื่อคุณส่งคำขอที่ไม่ได้ตรวจสอบสิทธิ์ คุณต้องใส่อาร์กิวเมนต์ key
ที่ระบุ คีย์ API ที่ไม่ซ้ำกันสำหรับแอปพลิเคชัน
วิดีโอที่มีคนดูมากที่สุดของฉัน
คำขอนี้จะเรียกวิดีโอทั้งหมดของผู้ใช้ที่ผ่านการตรวจสอบสิทธิ์แล้ว และแสดงตามลำดับจากมากไปน้อยตามจำนวนการดู
GET {base_URL}/search?part=snippet &forMine=true &order=viewCount &type=video
วิดีโอความละเอียดสูงแบบฝังได้
คำขอนี้จะค้นหาวิดีโอที่มีคุณสมบัติบางอย่าง ได้แก่ วิดีโอความละเอียดสูงที่สามารถฝังบนเว็บไซต์อื่นได้ ซึ่งจะแสดงผลลัพธ์โดยเรียงตามลำดับจากมากไปน้อย
GET {base_URL}/search?part=snippet &order=rating &type=video &videoDefinition=high &videoEmbeddable=true &key={YOUR_API_KEY}
วิดีโอเกี่ยวกับหัวข้อใดหัวข้อหนึ่ง
คำขอนี้จะดำเนินการค้นหาคีย์เวิร์ดสำหรับวิดีโอเกี่ยวกับ YouTube Data API ที่มีคำบรรยาย
GET {base_URL}/search?part=snippet &q=YouTube+Data+API &type=video &videoCaption=closedCaption &key={YOUR_API_KEY}
การค้นหาตามหัวข้อ
วิธีที่มีความซับซ้อนมากขึ้นในการค้นหาวิดีโอเกี่ยวกับหัวข้อใดหัวข้อหนึ่งคือการใช้หัวข้อ Freebase แทนคีย์เวิร์ด ทรัพยากรของช่องและวิดีโอ YouTube ทั้งหมดจะมีออบเจ็กต์ topicDetails ที่มีรายการรหัสหัวข้อ Freebase ที่เชื่อมโยงกับทรัพยากร การค้นหาตามหัวข้อชาญฉลาดกว่าการค้นหาด้วยคีย์เวิร์ด เนื่องจากหัวข้อแบบ Freebase จะแสดงแง่มุมทั้งหมดของแนวคิดหรือสิ่งต่างๆ ที่มีอยู่จริง
หากต้องการค้นหาโดยใช้หัวข้อ Freebase คุณต้องเรียกข้อมูลรหัสหัวข้อโดยใช้ Freebase API ก่อน คำขอนี้แสดงผลวิดีโอที่เชื่อมโยงกับหัวข้อ Freebase สำหรับ Python ซึ่งมีรหัสหัวข้อคือ /m/05z1_
GET {base_URL}/search?part=snippet &topicId=/m/05z1_ &type=video &key={YOUR_API_KEY}
การค้นหาเพลย์ลิสต์หรือช่อง
การค้นหาไม่ได้จำกัดเฉพาะวิดีโอเท่านั้น นอกจากนี้ คุณยังสามารถค้นหาเพลย์ลิสต์หรือช่องได้อีกด้วย คำขอนี้เรียกเพลย์ลิสต์ที่ตรงกับคีย์เวิร์ด "ฟุตบอล"
GET {base_URL}/search?part=snippet &q=soccer &type=playlist &key={YOUR_API_KEY}
หากคุณต้องการค้นหาช่องฟุตบอล เพียงแค่เปลี่ยนพารามิเตอร์ type
GET {base_URL}/search?part=snippet &q=soccer &type=channel &key={YOUR_API_KEY}
หากต้องการดูเนื้อหาเกี่ยวกับฟุตบอลทั้งหมด (ช่อง เพลย์ลิสต์ และวิดีโอ) คุณสามารถใช้การค้นหาแบบทั่วไปได้ หากคุณไม่ใส่พารามิเตอร์ type
คำขอจะดึงเนื้อหาทุกประเภท
GET {base_URL}/search?part=snippet &q=soccer &key={YOUR_API_KEY}
สร้างและอัปเดตทรัพยากร
คำขอทั้งหมดที่เราได้ตรวจสอบจนถึงตอนนี้จะใช้เมธอด HTTP GET เพื่อเรียกข้อมูล YouTube นอกจากนี้ API ข้อมูลของ YouTube ยังมีเมธอดที่ใช้ HTTP POST ในการสร้างหรืออัปเดตทรัพยากร YouTube เช่น วิดีโอ เพลย์ลิสต์ หรือช่อง คำขอต่อไปนี้แสดงตัวอย่าง
เมธอด POST จะมี Request body
ซึ่งเป็นการแสดงแทน JSON ของทรัพยากรที่กำลังสร้างหรืออัปเดต คุณสามารถสร้างการแสดง JSON ใน Google API Explorer โดยใช้เครื่องมือแบบอินเทอร์แอกทีฟ
สร้างการสมัครใช้บริการ
คำขอนี้จะติดตามผู้ใช้ที่ผ่านการตรวจสอบสิทธิ์แล้วไปยังช่อง GoogleDevelopers กล่าวคือ เป็นการสร้างทรัพยากรการสมัครใช้บริการ
POST {base_URL}/subscriptions?part=snippet
Request body: { 'snippet': { 'resourceId': { 'kind': 'youtube#channel', 'channelId': 'UC_x5XG1OV2P6uZZ5FSM9Ttw' } } }
สร้างเพลย์ลิสต์
คำขอนี้สร้างเพลย์ลิสต์สาธารณะใหม่
POST {base_URL}/playlists?part=snippet
Request body: { 'snippet': { 'title': 'New playlist', 'description': 'Sample playlist for Data API', } }
การเพิ่มวิดีโอในเพลย์ลิสต์
เมื่อเราสร้างเพลย์ลิสต์เรียบร้อยแล้ว เรามาเพิ่มวิดีโอลงในเพลย์ลิสต์กัน คำขอนี้เพิ่มวิดีโอไปยังจุดเริ่มต้นของเพลย์ลิสต์ ('position': 0
)
POST {base_URL}/playlistItems?part=snippet Request body: { 'snippet': { 'playlistId': '{PLAYLIST_ID}', 'resourceId': { 'kind': 'youtube#video', 'videoId': '{VIDEO_ID}' } 'position': 0 } }