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

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

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

ตัวอย่างนี้จะเรียกวิดีโอที่อัปโหลดไปยังช่องใดช่องหนึ่ง ตัวอย่างนี้มีขั้นตอนสองขั้นตอน:

  • ขั้นตอนที่ 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 เมื่อเรียกข้อมูลรายการนี้ คุณจะตั้งค่าพารามิเตอร์ต่อไปนี้ 1 หรือทั้ง 2 รายการได้ด้วย

  • regionCode: สั่งให้ API แสดงผลรายการวิดีโอสําหรับภูมิภาคที่ระบุ
  • videoCategoryId: ระบุหมวดหมู่วิดีโอที่ควรดึงข้อมูลวิดีโอที่ได้รับความนิยมมากที่สุด

คําขอด้านล่างนี้ดึงข้อมูลวิดีโอกีฬาที่ได้รับความนิยมที่สุดในสเปน

https://developers.google.com/apis-explorer/#p/youtube/v3/youtube.search.list?
        part=snippet
        &chart=mostPopular
        &regionCode=es
        &videoCategoryId=17

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

เนื่องจาก API Explorer ไม่รองรับความสามารถในการอัปโหลดไฟล์ คําอธิบายนี้จึงไม่ได้ลิงก์กับตัวอย่างที่ดําเนินการได้ แหล่งข้อมูลต่อไปนี้จะช่วยคุณในการแก้ไขแอปพลิเคชันเพื่อให้แอปพลิเคชันสามารถอัปโหลดวิดีโอโดยใช้ v3 API:

  • เอกสารสําหรับเมธอด 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 ของ v3 API เพื่ออัปโหลดภาพขนาดย่อที่กําหนดเองและตั้งค่าสําหรับวิดีโอ ในคําขอ ค่าพารามิเตอร์ของ videoId จะระบุวิดีโอที่จะใช้ภาพขนาดย่อ

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

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

ลบวิดีโอ

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

  • ขั้นตอนที่ 1: ดึงรหัสวิดีโอ

    ทําตามขั้นตอนด้านบนเพื่อเรียกวิดีโอที่อัปโหลดสําหรับช่องของผู้ใช้ที่ได้รับการตรวจสอบสิทธิ์ในปัจจุบัน รายการนี้อาจใช้เพื่อแสดงรายการวิดีโอ โดยใช้รหัสของแต่ละวิดีโอเป็นคีย์

    หมายเหตุ: มีวิธีอื่นๆ มากมายในการรับรหัสวิดีโอ เช่น การดึงผลการค้นหาหรือการแสดงรายการในเพลย์ลิสต์ อย่างไรก็ตาม เนื่องจากมีเพียงเจ้าของวิดีโอเท่านั้นที่ลบวิดีโอได้ การดึงรายการวิดีโอของผู้ใช้ที่อนุญาตคําขอ API จึงน่าจะเป็นขั้นตอนแรกในกระบวนการ

  • ขั้นตอนที่ 2: ลบวิดีโอ

    เรียกใช้เมธอด videos.delete เพื่อลบวิดีโอที่เฉพาะเจาะจง ในคําขอ พารามิเตอร์ id จะระบุรหัสวิดีโอของวิดีโอที่คุณกําลังลบ คําขอต้องได้รับอนุญาตโดยใช้ OAuth 2.0 หากทดสอบคําค้นหานี้ใน API Explorer คุณจะต้องแทนที่รหัสวิดีโอที่ถูกต้องสําหรับค่าพารามิเตอร์ 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