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

ตัวอย่างต่อไปนี้แสดงวิธีใช้ 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
  

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

เนื่องจาก 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 ให้เสร็จสมบูรณ์ คุณต้องตั้งค่าของพร็อพเพอร์ตี้ 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"
      }
    }

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

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