การใช้งาน: วิดีโอ

ตัวอย่างต่อไปนี้แสดงวิธีใช้ YouTube Data API (v3) เพื่อดำเนินการฟังก์ชันที่เกี่ยวข้องกับวิดีโอ

ดึงข้อมูลวิดีโอที่อัปโหลดของช่อง

ตัวอย่างนี้จะดึงข้อมูลวิดีโอที่อัปโหลดไปยังช่องหนึ่งๆ ตัวอย่างมี 2 ขั้นตอน ดังนี้

  • ขั้นตอนที่ 1: ดึงข้อมูลรหัสเพลย์ลิสต์สำหรับวิดีโอที่อัปโหลดของช่อง

    เรียกใช้เมธอด channels.list เพื่อดึงข้อมูลรหัสของเพลย์ลิสต์ที่มีวิดีโอที่ช่องอัปโหลด ค่าพารามิเตอร์ part ของคำขอต้องมี contentDetails เป็นส่วนหนึ่งของทรัพยากร channel ที่กำลังดึงข้อมูล ในคำตอบของ API พร็อพเพอร์ตี้ contentDetails.relatedPlaylists.uploads จะมีรหัสเพลย์ลิสต์

    คุณระบุช่องได้หลายวิธี ดังนี้

  • ขั้นตอนที่ 2: ดึงข้อมูลรายการวิดีโอที่อัปโหลด

    เรียกใช้เมธอด playlistItems.list เพื่อดึงรายการวิดีโอที่อัปโหลด ตั้งค่าพารามิเตอร์ playlistId เป็นค่าที่ได้ในขั้นตอนที่ 1 ในตัวอย่างนี้ ค่าพารามิเตอร์จะตั้งเป็น UUK8sQmJBp8GCxrOtXWBpyEA ซึ่งเป็นรายการวิดีโอที่อัปโหลดไปยังช่อง YouTube อย่างเป็นทางการของ Google

    https://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
        &regionCode=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

อัปโหลดวิดีโอ

เนื่องจากโปรแกรมสำรวจ APIs ไม่รองรับความสามารถในการอัปโหลดไฟล์ คำอธิบายนี้จึงไม่ได้ลิงก์ไปยังตัวอย่างที่เรียกใช้งานได้ แหล่งข้อมูลต่อไปนี้จะช่วยคุณแก้ไขแอปพลิเคชันเพื่อให้สามารถอัปโหลดวิดีโอโดยใช้ 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 ด้วย

    คำขอที่อยู่ด้านล่างจะตรวจสอบสถานะของวิดีโอ หากต้องการส่งคำขอในโปรแกรมสำรวจ APIs ให้เสร็จสมบูรณ์ คุณต้องตั้งค่าพร็อพเพอร์ตี้ id

    https://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"
      }
    }

    หากต้องการดำเนินการคำขอในโปรแกรมสำรวจ APIs ให้เสร็จสมบูรณ์ คุณต้องตั้งค่าidพร็อพเพอร์ตี้

    https://developers.google.com/apis-explorer/#p/youtube/v3/youtube.videos.update?
            part=snippet

อัปโหลดรูปภาพปกวิดีโอที่ทำเองและตั้งค่าให้วิดีโอ

คุณใช้เมธอด thumbnails.set ของ API เวอร์ชัน 3 เพื่ออัปโหลดภาพปกวิดีโอที่ทำเองและตั้งค่าให้วิดีโอได้ ในคำขอ ค่าของพารามิเตอร์ videoId จะระบุวิดีโอที่จะใช้ภาพปกวิดีโอที่ทำเอง

คุณทดสอบการค้นหานี้โดยใช้โปรแกรมสำรวจ API ไม่ได้ เนื่องจากโปรแกรมสำรวจ API ไม่รองรับความสามารถในการอัปโหลดไฟล์สื่อ ซึ่งเป็นข้อกำหนดสำหรับวิธีนี้

ตัวอย่างโค้ดที่เกี่ยวข้อง: PHP, Python

ลบวิดีโอ

ตัวอย่างนี้แสดงวิธีลบวิดีโอ ตัวอย่างมีขั้นตอนดังนี้

  • ขั้นตอนที่ 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 ด้านบนในโปรแกรมสำรวจ APIs หากต้องการทดสอบการค้นหา คุณต้องแทนที่ค่าพร็อพเพอร์ตี้ videoId ด้วยรหัสวิดีโอที่ถูกต้อง โปรดทราบว่าการส่งคำขอนี้จะเป็นการแจ้งว่าวิดีโอดังกล่าวไม่เหมาะสม

    https://developers.google.com/apis-explorer/#p/youtube/v3/youtube.videos.reportAbuse