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

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

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

เนื่องจากโปรแกรมสำรวจ 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 คุณต้องตั้งค่าพร็อพเพอร์ตี้ 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 คุณต้องตั้งค่าพร็อพเพอร์ตี้ id

    https://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 ไม่รองรับความสามารถในการอัปโหลดไฟล์สื่อ ซึ่งเป็นข้อกำหนดของเมธอดนี้

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

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