ตัวอย่างต่อไปนี้แสดงวิธีใช้ 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
อัปโหลดวิดีโอ
เนื่องจาก API Explorer ไม่รองรับความสามารถในการอัปโหลดไฟล์ คำอธิบายนี้จึงไม่ได้ลิงก์ไปยังตัวอย่างที่เรียกใช้งานได้ แหล่งข้อมูลต่อไปนี้จะช่วยคุณแก้ไขแอปพลิเคชันเพื่อให้สามารถอัปโหลดวิดีโอโดยใช้ API เวอร์ชัน 3 ได้
-
เอกสารประกอบสำหรับเมธอด videos.insert ของ API มีตัวอย่างโค้ดหลายรายการที่อธิบายวิธีอัปโหลดวิดีโอโดยใช้ภาษาโปรแกรมต่างๆ
-
คู่มือการอัปโหลดต่อจะอธิบายลำดับคำขอ HTTP ที่แอปพลิเคชันใช้ในการอัปโหลดวิดีโอโดยใช้กระบวนการอัปโหลดต่อ คู่มือนี้มีไว้สำหรับนักพัฒนาซอฟต์แวร์ที่ไม่สามารถใช้ไลบรารีของไคลเอ็นต์ Google API เป็นหลัก ซึ่งบางไลบรารีรองรับการอัปโหลดต่อได้แบบเนทีฟ
-
ตัวอย่าง JavaScript สำหรับการอัปโหลดวิดีโอใช้ CORS (การแชร์ทรัพยากรข้ามโดเมน) เพื่อแสดงวิธีอัปโหลดไฟล์วิดีโอผ่านหน้าเว็บ ไลบรารีการอัปโหลด CORS ที่ API v3 ใช้รองรับการอัปโหลดต่อได้โดยอัตโนมัติ นอกจากนี้ ตัวอย่างยังแสดงวิธีตรวจสอบสถานะของวิดีโอที่อัปโหลดโดยการดึงข้อมูลส่วน
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 Explorer ให้เสร็จสมบูรณ์ คุณต้องตั้งค่าของพร็อพเพอร์ตี้
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 Explorer ให้เสร็จสมบูรณ์ คุณต้องตั้งค่าของพร็อพเพอร์ตี้
idhttps://developers.google.com/apis-explorer/#p/youtube/v3/youtube.videos.update? part=snippet
อัปโหลดรูปภาพภาพปกที่ทำเองและตั้งเป็นภาพปกของวิดีโอ
คุณสามารถใช้วิธี thumbnails.set ของ API เวอร์ชัน 3 เพื่ออัปโหลดรูปภาพภาพปกที่กำหนดเองและตั้งค่าให้วิดีโอได้ ในคำขอ ค่าของ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 Explorer หากต้องการทดสอบการค้นหา คุณต้องแทนที่ค่าพร็อพเพอร์ตี้videoIdด้วยรหัสวิดีโอที่ถูกต้อง โปรดทราบว่าการส่งคำขอนี้จะเป็นการแจ้งว่าวิดีโอดังกล่าวไม่เหมาะสมhttps://developers.google.com/apis-explorer/#p/youtube/v3/youtube.videos.reportAbuse