ตัวอย่างต่อไปนี้แสดงวิธีใช้ YouTube Data API (v3) เพื่อเรียกใช้ฟังก์ชันที่เกี่ยวข้องกับวิดีโอ
ดึงข้อมูลวิดีโอที่อัปโหลดของช่อง
ตัวอย่างนี้จะดึงข้อมูลวิดีโอที่อัปโหลดไปยังช่องหนึ่งๆ โดยมี 2 ขั้นตอนดังนี้
-
ขั้นตอนที่ 1: ดึงข้อมูลรหัสเพลย์ลิสต์สำหรับวิดีโอที่อัปโหลดของช่อง
เรียกใช้เมธอด
channels.listเพื่อดึงข้อมูลรหัสของเพลย์ลิสต์ที่มีวิดีโอที่อัปโหลดของช่อง ค่าพารามิเตอร์partของคำขอต้องมีcontentDetailsเป็นส่วนหนึ่งของทรัพยากรchannelที่ดึงข้อมูล ในการตอบกลับจาก API พร็อพเพอร์ตี้contentDetails.relatedPlaylists.uploadsจะมีรหัสเพลย์ลิสต์คุณระบุช่องได้หลายวิธี ดังนี้
-
ตั้งค่าพารามิเตอร์
mineเป็นtrueเพื่อดึงข้อมูลสำหรับช่อง YouTube ของผู้ใช้ที่ตรวจสอบสิทธิ์แล้วในปัจจุบัน คำขอต้องได้รับอนุญาตโดยใช้ OAuth 2.0https://developers.google.com/apis-explorer/#p/youtube/v3/youtube.channels.list? part=contentDetails &mine=true
-
ตั้งค่าพารามิเตอร์
forUsernameเป็นชื่อผู้ใช้ YouTube เพื่อดึงข้อมูลสำหรับช่องที่เชื่อมโยงกับชื่อผู้ใช้ดังกล่าว ตัวอย่างนี้ตั้งค่าพารามิเตอร์forUsernameเป็นGoogleเพื่อดึงข้อมูลสำหรับช่อง YouTube อย่างเป็นทางการของ Googlehttps://developers.google.com/apis-explorer/#p/youtube/v3/youtube.channels.list? part=contentDetails &forUsername=Google
-
ตั้งค่าพารามิเตอร์
idเป็นรหัสช่อง YouTube ที่ระบุช่องที่คุณต้องการดึงข้อมูลได้อย่างไม่ซ้ำกัน ตัวอย่างนี้ตั้งค่าพารามิเตอร์idเป็นUCK8sQmJBp8GCxrOtXWBpyEAซึ่งระบุช่อง YouTube อย่างเป็นทางการของ Google ด้วยhttps://developers.google.com/apis-explorer/#p/youtube/v3/youtube.channels.list? part=contentDetails &id=UCK8sQmJBp8GCxrOtXWBpyEA
-
-
ขั้นตอนที่ 2: ดึงข้อมูลรายการวิดีโอที่อัปโหลด
เรียกใช้เมธอด
playlistItems.listเพื่อดึงข้อมูลรายการวิดีโอที่อัปโหลด ตั้งค่าพารามิเตอร์playlistIdเป็นค่าที่ได้รับในขั้นตอนที่ 1 ในตัวอย่างนี้ ค่าพารามิเตอร์ตั้งเป็นUUK8sQmJBp8GCxrOtXWBpyEAซึ่งเป็นรายการวิดีโอที่อัปโหลดไปยังช่อง YouTube อย่างเป็นทางการของ Googlehttps://developers.google.com/apis-explorer/#p/youtube/v3/youtube.playlistItems.list? part=snippet,contentDetails,status &playlistId=UUK8sQmJBp8GCxrOtXWBpyEA
ดึงข้อมูลวิดีโอยอดนิยม
ตัวอย่างนี้แสดงวิธีดึงข้อมูลรายการวิดีโอยอดนิยมของ YouTube ซึ่งเลือกโดยใช้อัลกอริทึมที่รวมสัญญาณต่างๆ มากมายเพื่อพิจารณาความนิยมโดยรวม
หากต้องการดึงข้อมูลรายการวิดีโอยอดนิยม ให้เรียกใช้เมธอด videos.list และตั้งค่าพารามิเตอร์ chart เป็น mostPopular
ชาร์ต mostPopular ประกอบด้วยมิวสิกวิดีโอ ภาพยนตร์ และวิดีโอการเล่นเกมที่กำลังมาแรง
จากนั้นคุณจะตั้งค่าพารามิเตอร์ต่อไปนี้ก็ได้
regionCode: สั่งให้ API แสดงรายการวิดีโอสำหรับภูมิภาคที่ระบุ ค่าพารามิเตอร์คือรหัสประเทศ ISO 3166-1 alpha-2 คุณสามารถใช้เมธอดi18nRegions.listเพื่อดึงข้อมูลรายการรหัสภูมิภาคที่ YouTube รองรับvideoCategoryId: ระบุหมวดหมู่วิดีโอที่ควรดึงข้อมูลวิดีโอยอดนิยม คุณสามารถใช้เมธอดvideoCategories.listเพื่อดึงข้อมูลรายการรหัสหมวดหมู่ที่ YouTube รองรับ
ตัวอย่างเช่น คำขอต่อไปนี้จะดึงข้อมูลวิดีโอกีฬายอดนิยมในสเปน
https://developers.google.com/apis-explorer/#p/youtube/v3/youtube.videos.list? part=snippet &chart=mostPopular ®ionCode=es &videoCategoryId=17
ดึงข้อมูลสถิติของวิดีโอเป็นกลุ่ม
ตัวอย่างนี้จะดึงข้อมูลสถิติสำหรับรายการวิดีโอโดยใช้เมธอด videos.batchGetStats
หากต้องการใช้เมธอดนี้ ให้ตั้งค่าพารามิเตอร์ id ของคำขอเป็นรายการที่คั่นด้วยคอมมาของรหัสวิดีโอ YouTube ซึ่งคุณต้องการดึงข้อมูลสถิติ ตั้งค่าพารามิเตอร์ part เป็นรายการที่คั่นด้วยคอมมาของส่วนของทรัพยากร videoStat ที่คุณต้องการให้คำตอบมี ส่วนที่รองรับ ได้แก่ snippet, statistics, contentDetails และ id
คุณต้องตรวจสอบสิทธิ์เพื่อใช้เมธอดนี้กับวิดีโอที่ไม่เป็นสาธารณะ แต่ไม่จำเป็นสำหรับวิดีโอสาธารณะ หากคำขอจะดึงข้อมูลสำหรับวิดีโอที่ไม่เป็นสาธารณะ คำขอจะต้องได้รับอนุญาตอย่างถูกต้อง
คำขอต่อไปนี้จะดึงข้อมูลสถิติสำหรับรหัสวิดีโอ VIDEO_ID_1 และ VIDEO_ID_2
https://developers.google.com/apis-explorer/#p/youtube/v3/youtube.videos.batchGetStats? part=snippet,statistics &id=VIDEO_ID_1,VIDEO_ID_2
อัปโหลดวิดีโอ
เนื่องจากโปรแกรมสำรวจ API ไม่รองรับความสามารถในการอัปโหลดไฟล์ คำอธิบายนี้จึงไม่มีลิงก์ไปยังตัวอย่างที่เรียกใช้ได้ ทรัพยากรต่อไปนี้จะช่วยคุณแก้ไขแอปพลิเคชันเพื่อให้แอปพลิเคชันอัปโหลดวิดีโอโดยใช้ v3 API ได้
-
เอกสารประกอบสำหรับเมธอด videos.insert ของ API มีตัวอย่างโค้ดหลายรายการที่อธิบายวิธีอัปโหลดวิดีโอโดยใช้ภาษาโปรแกรมต่างๆ
-
คู่มือการอัปโหลดที่ดำเนินการต่อได้อธิบายลำดับคำขอ HTTP ที่แอปพลิเคชันใช้เพื่ออัปโหลดวิดีโอโดยใช้กระบวนการอัปโหลดที่ดำเนินการต่อได้ คู่มือนี้มีไว้สำหรับนักพัฒนาซอฟต์แวร์ที่ไม่สามารถใช้ไลบรารีของไคลเอ็นต์ Google API ซึ่งบางรายการรองรับการอัปโหลดต่อได้โดยเฉพาะ
-
ตัวอย่าง JavaScript สำหรับการอัปโหลดวิดีโอใช้ CORS (การแชร์ทรัพยากรแบบข้ามต้นทาง) เพื่อแสดงวิธีอัปโหลดไฟล์วิดีโอผ่านหน้าเว็บ ไลบรารีการอัปโหลด CORS ที่ v3 API ใช้รองรับการอัปโหลดที่ดำเนินการต่อได้โดยธรรมชาติ นอกจากนี้ ตัวอย่างยังแสดงวิธีตรวจสอบสถานะของวิดีโอที่อัปโหลดโดยการดึงข้อมูลส่วน
processingDetailsของทรัพยากรvideoรวมถึงวิธีจัดการการเปลี่ยนแปลงสถานะสำหรับวิดีโอที่อัปโหลด
ตรวจสอบสถานะของวิดีโอที่อัปโหลด
ตัวอย่างนี้แสดงวิธีตรวจสอบสถานะของวิดีโอที่อัปโหลด วิดีโอที่อัปโหลดจะปรากฏในฟีดวิดีโอที่อัปโหลดของผู้ใช้ที่ตรวจสอบสิทธิ์แล้วทันที อย่างไรก็ตาม วิดีโอจะไม่ปรากฏบน YouTube จนกว่าจะได้รับการประมวลผล
-
ขั้นตอนที่ 1: อัปโหลดวิดีโอ
เรียกใช้เมธอด
videos.insertเพื่อ อัปโหลดวิดีโอ หากคำขอสำเร็จ การตอบกลับจาก API จะมีทรัพยากรvideoที่ระบุรหัสวิดีโอที่ไม่ซ้ำกันสำหรับวิดีโอที่อัปโหลด -
ขั้นตอนที่ 2: ตรวจสอบสถานะของวิดีโอ
เรียกใช้เมธอด
videos.listเพื่อตรวจสอบสถานะของวิดีโอ ตั้งค่าพารามิเตอร์idเป็นรหัสวิดีโอที่ได้รับในขั้นตอนที่ 1 ตั้งค่าพารามิเตอร์partเป็นprocessingDetailsหากระบบจัดการคำขอสำเร็จ การตอบกลับจาก API จะมีทรัพยากร
videoตรวจสอบค่าของพร็อพเพอร์ตี้processingDetails.processingStatusเพื่อดูว่า YouTube ยังคงประมวลผลวิดีโออยู่หรือไม่ ค่าของพร็อพเพอร์ตี้จะเปลี่ยนเป็นค่าอื่นที่ไม่ใช่processingเช่นsucceededหรือfailedเมื่อ YouTube ประมวลผลวิดีโอเสร็จแล้วเนื้อหาของคำขอคือทรัพยากร
videoซึ่งพร็อพเพอร์ตี้idจะระบุรหัสวิดีโอของวิดีโอที่คุณกำลังลบ ในตัวอย่างนี้ ทรัพยากรยังมีออบเจ็กต์recordingDetailsด้วยคำขอต่อไปนี้จะตรวจสอบสถานะของวิดีโอ หากต้องการส่งคำขอในโปรแกรมสำรวจ API คุณต้องตั้งค่าพร็อพเพอร์ตี้
idhttps://developers.google.com/apis-explorer/#p/youtube/v3/youtube.videos.list? part=snippet,processingDetails &id=VIDEO_ID
หมายเหตุ: แอปพลิเคชันของคุณสามารถโพล API เพื่อตรวจสอบสถานะของวิดีโอที่อัปโหลดใหม่เป็นระยะๆ ได้ เมื่อวิดีโอได้รับการประมวลผลแล้ว แอปพลิเคชันของคุณจะสร้างประกาศหรือดำเนินการอื่นๆ ต่อได้โดยขึ้นอยู่กับสถานะของวิดีโอ
อัปเดตวิดีโอ
ตัวอย่างนี้แสดงวิธีอัปเดตวิดีโอเพื่อเพิ่มข้อมูลเกี่ยวกับเวลาและสถานที่ที่บันทึกวิดีโอ โดยมีขั้นตอนดังนี้
-
ขั้นตอนที่ 1: ดึงข้อมูลรหัสวิดีโอ
ทำตามขั้นตอนด้านบนเพื่อดึงข้อมูลวิดีโอที่อัปโหลดสำหรับช่องของผู้ใช้ที่ตรวจสอบสิทธิ์แล้วในปัจจุบัน คุณสามารถใช้รายการนี้เพื่อแสดงรายการวิดีโอ โดยใช้รหัสของวิดีโอแต่ละรายการเป็นคีย์
หมายเหตุ: คุณสามารถรับรหัสวิดีโอได้หลายวิธี เช่น การดึงข้อมูลผลการค้นหาหรือการแสดงรายการในเพลย์ลิสต์ อย่างไรก็ตาม เนื่องจากเจ้าของเท่านั้นที่อัปเดตวิดีโอได้ การดึงข้อมูลรายการวิดีโอที่เป็นเจ้าของโดยผู้ใช้ที่ให้สิทธิ์คำขอ API จึงเป็นขั้นตอนแรกที่น่าจะเป็นไปได้ในกระบวนการนี้
-
ขั้นตอนที่ 2: อัปเดตวิดีโอ
เรียกใช้เมธอด
videos.updateเพื่ออัปเดตวิดีโอหนึ่งๆ ตั้งค่าพารามิเตอร์partเป็นrecordingDetails(ค่าพารามิเตอร์จะขึ้นอยู่กับช่องข้อมูลเมตาของวิดีโอที่จะอัปเดต)เนื้อหาของคำขอคือทรัพยากร
videoซึ่งพร็อพเพอร์ตี้idจะระบุรหัสวิดีโอของวิดีโอที่คุณกำลังอัปเดต ในตัวอย่างนี้ ทรัพยากรยังมีออบเจ็กต์recordingDetailsด้วยทรัพยากรตัวอย่างด้านล่างระบุว่าวิดีโอบันทึกเมื่อวันที่ 30 ตุลาคม 2013 ที่บอสตัน
{ "id": "VIDEO_ID", "recordingDetails": { "location": { "latitude": "42.3464", "longitude": "-71.0975" } "recordingDate": "2013-10-30T23:15:00.000Z" } }หากต้องการส่งคำขอในโปรแกรมสำรวจ API คุณต้องตั้งค่าพร็อพเพอร์ตี้
idhttps://developers.google.com/apis-explorer/#p/youtube/v3/youtube.videos.update? part=snippet
จัดการสิทธิ์เข้าถึงของพาร์ทเนอร์แบรนด์ (สิทธิ์เข้าถึงของพาร์ทเนอร์แบรนด์ที่ครีเอเตอร์เป็นผู้เริ่ม)
สิทธิ์เข้าถึงของพาร์ทเนอร์แบรนด์ที่ครีเอเตอร์เป็นผู้เริ่ม (CI BPA) ช่วยให้เจ้าของวิดีโอแชร์สิทธิ์เข้าถึงวิดีโอของตนกับช่องพาร์ทเนอร์แบรนด์ได้ ซึ่งต้องใช้ส่วน brandPartner
สร้างสิทธิ์เข้าถึง (Insert)
หากต้องการสร้างสิทธิ์เข้าถึงเมื่ออัปโหลดวิดีโอ ให้ใส่ brandPartner ในพารามิเตอร์ part และระบุออบเจ็กต์ brandPartner ในเนื้อหาของคำขอ คุณต้องระบุ channelId (รหัสช่องภายนอกที่ขึ้นต้นด้วย "UC") หรือ channelHandle (ขึ้นต้นด้วย "@") เพื่อระบุช่องของแบรนด์
POST /youtube/v3/videos?part=snippet,status,brandPartner { "snippet": { "title": "Video Title", "description": "Video Description", "categoryId": "22" }, "status": { "privacyStatus": "private" }, "brandPartner": { "channelHandle": "@brandchannel" } }
ระบบจะแสดงเฉพาะ channelId ที่แก้ไขแล้วในการตอบกลับ
อัปเดตหรือนำสิทธิ์เข้าถึงออก (Update)
หากต้องการอัปเดตสิทธิ์เข้าถึงช่องของแบรนด์อื่นหรือนำสิทธิ์เข้าถึงออก ให้เรียกใช้เมธอด videos.update โดยมี brandPartner ในพารามิเตอร์ part
หากต้องการแทนที่สิทธิ์เข้าถึง ให้ระบุ channelId หรือ channelHandle ใหม่ในเนื้อหาของคำขอ
PUT /youtube/v3/videos?part=brandPartner
{
"id": "VIDEO_ID",
"brandPartner": {
"channelId": "UC_SOME_BRAND_CHANNEL_ID"
}
}หากต้องการนำสิทธิ์เข้าถึงออก ให้ส่งคำขอโดยมี brandPartner ในพารามิเตอร์ part แต่มีออบเจ็กต์ brandPartner ว่างเปล่าในเนื้อหาของคำขอ
PUT /youtube/v3/videos?part=brandPartner
{
"id": "VIDEO_ID",
"brandPartner": {}
}อัปโหลดภาพปกวิดีโอที่ทำเองและตั้งค่าให้วิดีโอ
คุณสามารถใช้เมธอด thumbnails.set ของ v3 API เพื่ออัปโหลดภาพปกวิดีโอที่ทำเองและตั้งค่าให้วิดีโอได้ ในคำขอ ค่าพารามิเตอร์ videoId จะระบุวิดีโอที่จะใช้ภาพปก
คุณไม่สามารถทดสอบคําค้นหานี้โดยใช้โปรแกรมสำรวจ API ได้เนื่องจากโปรแกรมสำรวจ API ไม่รองรับความสามารถในการอัปโหลดไฟล์สื่อ ซึ่งเป็นข้อกำหนดของเมธอดนี้
ลบวิดีโอ
ตัวอย่างนี้แสดงวิธีลบวิดีโอ โดยมีขั้นตอนดังนี้
-
ขั้นตอนที่ 1: ดึงข้อมูลรหัสวิดีโอ
ทำตามขั้นตอนด้านบนเพื่อดึงข้อมูลวิดีโอที่อัปโหลดสำหรับช่องของผู้ใช้ที่ตรวจสอบสิทธิ์แล้วในปัจจุบัน คุณสามารถใช้รายการนี้เพื่อแสดงรายการวิดีโอ โดยใช้รหัสของวิดีโอแต่ละรายการเป็นคีย์
หมายเหตุ: คุณสามารถรับรหัสวิดีโอได้หลายวิธี เช่น การดึงข้อมูลผลการค้นหาหรือการแสดงรายการในเพลย์ลิสต์ อย่างไรก็ตาม เนื่องจากเจ้าของเท่านั้นที่ลบวิดีโอได้ การดึงข้อมูลรายการวิดีโอที่เป็นเจ้าของโดยผู้ใช้ที่ให้สิทธิ์คำขอ API จึงเป็นขั้นตอนแรกที่น่าจะเป็นไปได้ในกระบวนการนี้
-
ขั้นตอนที่ 2: ลบวิดีโอ
เรียกใช้เมธอด
videos.deleteเพื่อลบวิดีโอหนึ่งๆ ในคำขอ พารามิเตอร์idจะระบุรหัสวิดีโอของวิดีโอที่คุณกำลังลบ คำขอต้องได้รับอนุญาตโดยใช้ OAuth 2.0 หากคุณทดสอบคำค้นหานี้ในโปรแกรมสำรวจ API คุณจะต้องแทนที่ค่าพารามิเตอร์idด้วยรหัสวิดีโอที่ถูกต้องhttps://developers.google.com/apis-explorer/#p/youtube/v3/youtube.videos.delete? id=VIDEO_ID
รายงานวิดีโอที่มีเนื้อหาไม่เหมาะสม
ตัวอย่างนี้แสดงวิธีรายงานวิดีโอที่มีเนื้อหาที่เป็นการละเมิด โดยมีขั้นตอนดังนี้
-
ขั้นตอนที่ 1: ดึงข้อมูลรหัสที่อธิบายเหตุผลในการรายงานวิดีโอ
ส่งคำขอที่ได้รับอนุญาตไปยังเมธอด
videoAbuseReportReasons.listเพื่อดึงข้อมูลรายการเหตุผลที่ถูกต้องในการติดธงวิดีโอ ทรัพยากรvideoAbuseReportReasonตัวอย่างด้านล่างมีข้อมูลสำหรับการติดธงวิดีโอที่มีสแปมหรือเนื้อหาที่ทำให้เข้าใจผิด{ "kind": "youtube#videoAbuseReportReason", "etag": "\"tbWC5XrSXxe1WOAx6MK9z4hHSU8/Or2VqBIilpHU7j__oPzUFCvGVBw\"", "id": "S", "snippet": { "label": "Spam or misleading", "secondaryReasons": [ { "id": "27", "label": "Spam or mass advertising" }, { "id": "28", "label": "Misleading thumbnail" }, { "id": "29", "label": "Malware or phishing" }, { "id": "30", "label": "Pharmaceutical drugs for sale" }, { "id": "31", "label": "Other misleading info" } ] } }ดังที่แสดงในทรัพยากร เหตุผลนี้เชื่อมโยงกับรายการเหตุผลรอง เมื่อติดธงวิดีโอว่ามีสแปม คุณต้องระบุรหัสของเหตุผลและขอแนะนำอย่างยิ่งให้ระบุเหตุผลรองด้วย
-
ขั้นตอนที่ 2: แจ้งวิดีโอว่ามีเนื้อหาที่เป็นการละเมิด
ส่งคำขอที่ได้รับอนุญาตไปยังเมธอด
พร็อพเพอร์ตี้videos.reportAbuseเพื่อรายงานวิดีโอ เนื้อหาของคำขอคือออบเจ็กต์ JSON ที่ระบุทั้งวิดีโอที่ติดธงและเหตุผลในการติดธง ดังที่ระบุไว้ในขั้นตอนที่ 1 เหตุผลบางประเภทรองรับและขอแนะนำอย่างยิ่งให้ระบุเหตุผลรองvideoIdของออบเจ็กต์ JSON จะระบุวิดีโอที่ติดธงออบเจ็กต์ JSON ตัวอย่างด้านล่างจะติดธงวิดีโอว่ามีสแปมหรือเนื้อหาที่ทำให้เข้าใจผิด และโดยเฉพาะอย่างยิ่งคือใช้ภาพปกวิดีโอที่ทำให้เข้าใจผิด ดังที่แสดงในออบเจ็กต์ JSON ตัวอย่างด้านบน รหัสสำหรับเนื้อหาสแปมหรือทำให้เข้าใจผิด คือ S รหัสสำหรับภาพปกวิดีโอที่ทำให้เข้าใจผิด คือ 28
{ "videoId": "VIDEO_ID", "reasonId": "S", "secondaryReasonId": "28", "comments": "Testing the video flagging feature.", "language": "en" }คำขอ
videos.reportAbuseต้องได้รับอนุญาตโดยใช้ OAuth 2.0 ลิงก์ด้านล่างจะโหลดออบเจ็กต์ JSON ด้านบนในโปรแกรมสำรวจ API หากต้องการทดสอบคำค้นหา คุณต้องแทนที่ค่าพร็อพเพอร์ตี้videoIdด้วยรหัสวิดีโอที่ถูกต้อง โปรดทราบว่าการส่งคำขอนี้จะติดธงวิดีโอhttps://developers.google.com/apis-explorer/#p/youtube/v3/youtube.videos.reportAbuse