ตัวอย่างคําขอ API

หน้านี้แสดงตัวอย่างคําขอไปยัง YouTube Data API คุณใช้ YouTube Data API เพื่อเรียกดูและจัดการแหล่งข้อมูล YouTube เช่น วิดีโอ ช่อง และเพลย์ลิสต์ ตัวอย่างแต่ละรายการจะลิงก์และป้อนข้อมูลไปยัง Google APIs Explorer เพื่อให้คุณเรียกใช้ตัวอย่างและดูการตอบกลับได้

ดูข้อมูลเกี่ยวกับการอัปโหลดเนื้อหาโดยใช้ YouTube Data API ได้ที่การอัปโหลดที่กลับมาทํางานอีกครั้ง

ภาพรวม

เพื่อความชัดเจนของการนําเสนอ ตัวอย่างในหน้านี้แสดงองค์ประกอบที่โดดเด่นของคําขอแต่ละรายการและย่อ URL ฐานของโฮสต์ที่ประมวลผลคําขอ Data API (https://www.googleapis.com/youtube/v3) คุณต้องขอ URL แบบเต็มนอกคําขอของตัวอย่าง

ลองดูตัวอย่างคําขอตามที่ปรากฏในหน้านี้

GET {base-URL}/channels?part=contentDetails
                       &mine=true

URL ที่สมบูรณ์ของคําขอนี้คือ

GET https://www.googleapis.com/youtube/v3/channels?part=contentDetails
                                                  &mine=true

คําขอหลายรายการจะเรียกข้อมูลที่เจ้าของช่อง YouTube เข้าถึงได้เท่านั้น เช่น รายชื่อผู้ติดตาม คําขอเหล่านี้กําหนดให้เจ้าของช่องต้องให้สิทธิ์ Google APIs Explorer ในการส่งคําขอ YouTube Data API ในนามของตน (โปรดดูการใช้การตรวจสอบสิทธิ์ OAuth 2.0 เพื่อดูรายละเอียดเกี่ยวกับการให้สิทธิ์เข้าถึงช่องส่วนตัว) หลังจากลิงก์กับ API Explorer แล้ว ให้คลิกปุ่มให้สิทธิ์คําขอโดยใช้ OAuth 2.0 ขั้นตอนนี้จะให้สิทธิ์ API Explorer ส่งคําขอในนามของเจ้าของ และคุณยังเลือกขอบเขตของการให้สิทธิ์ ซึ่งจะระบุประเภทคําขอที่ API Explorer ทําได้

การตอบกลับคําขอแต่ละรายการคือการนําเสนอ JSON ของทรัพยากร YouTube พารามิเตอร์ part ในคําขอจะระบุว่าส่วนใดของทรัพยากรรวมอยู่ในการตอบกลับ พารามิเตอร์จะระบุพร็อพเพอร์ตี้ทรัพยากรระดับบนสุด (ไม่ซ้อน) อย่างน้อย 1 รายการที่ควรรวมไว้ในการตอบกลับ ตัวอย่างเช่น บางส่วนของทรัพยากรวิดีโอมีดังนี้

  • ตัวอย่างข้อมูล
  • รายละเอียดเนื้อหา
  • ผู้เล่น
  • สถิติ
  • สถานะ

ชิ้นส่วนเหล่านี้ทั้งหมดคือออบเจ็กต์ที่มีพร็อพเพอร์ตี้ที่ซ้อนกัน และคิดว่าออบเจ็กต์เหล่านี้เป็นกลุ่มช่องข้อมูลเมตาที่เซิร์ฟเวอร์ API อาจ (หรืออาจไม่ดึง) ด้วยเหตุนี้ พารามิเตอร์ part จึงต้องเลือกคอมโพเนนต์ทรัพยากรที่แอปพลิเคชันใช้จริงดูข้อมูลเพิ่มเติมได้ที่การเริ่มต้นใช้งาน API ข้อมูลของ YouTube

เรียกข้อมูลช่อง

คําขอนี้จะใช้เมธอด channels.list เพื่อดึงข้อมูลรายละเอียดเกี่ยวกับช่องของผู้ใช้ที่ตรวจสอบสิทธิ์แล้ว

GET {base_URL}/channels?part=contentDetails
                       &mine=true

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

{
  "id": {CHANNEL_ID},
  "kind": "youtube#channel",
  "etag": etag,
  "contentDetails": {
    "relatedPlaylists": {
      "likes": {LIKES_PLAYLIST_ID},
      "favorites": {FAVORITES_PLAYLIST_ID},
      "uploads": {UPLOADS_PLAYLIST_ID},
      "watchHistory": {WATCHHISTORY_PLAYLIST_ID},
      "watchLater": {WATCHLATER_PLAYLIST_ID}
    },
    "googlePlusUserId": string
  },
}

วิดีโอที่อัปโหลดและเพลย์ลิสต์ที่ระบบสร้างขึ้น

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

ก่อนดําเนินการตามคําขอตัวอย่างต่อไปนี้ใน Google APIs Explorer ให้แทนที่ {UPLOADS_PLAYLIST_ID} ด้วยรหัสเพลย์ลิสต์จากคําขอก่อนหน้า

GET {base_URL}/playlistItems?part=contentDetails
                            &playlistId={UPLOADS_PLAYLIST_ID}

โปรดทราบว่าค่า "id" สําหรับสินค้าแต่ละรายการที่ส่งคืนคือรหัสเพลย์ลิสต์นั้น รหัสวิดีโอของรายการเพลย์ลิสต์คือ videoId ในส่วน contentDetails

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

เพลย์ลิสต์ที่ผู้ใช้สร้างขึ้น

คําขอนี้จะใช้เมธอด playlists.list เพื่อดึงข้อมูลเพลย์ลิสต์ที่เชื่อมโยงกับช่องที่ตรวจสอบสิทธิ์แล้ว โปรดทราบว่าคําขอนี้ไม่ได้เรียกเพลย์ลิสต์ที่ระบบสร้างขึ้นซึ่งอยู่ในข้อมูลของช่อง (การอัปโหลด, ประวัติการดู และอื่นๆ) โดยจะเรียกดูเฉพาะเพลย์ลิสต์ที่ผู้ใช้สร้างขึ้นเท่านั้น

GET {base_URL}/playlists?part=snippet
                        &mine=true

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

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

GET {base_URL}/playlists?part=snippet
                        &channelId=UC_x5XG1OV2P6uZZ5FSM9Ttw
                        &key={YOUR_API_KEY}

เรียกดูการสมัครใช้บริการ

ทรัพยากร subscription จะกําหนดความสัมพันธ์ระหว่างผู้ใช้ YouTube (ผู้ติดตาม) กับช่อง เมธอด subscriptions.list จะดึงผู้ติดตามไปยังช่องใดช่องหนึ่งหรือการสมัครใช้บริการของผู้ใช้หนึ่งๆ โดยขึ้นอยู่กับพารามิเตอร์ที่คุณระบุไว้ในคําขอ

ผู้ติดตามช่อง

คําขอนี้จะดึงข้อมูลรายชื่อสมาชิกของช่องที่ตรวจสอบสิทธิ์แล้ว

GET {base_URL}/subscriptions?part=snippet
                            &mySubscribers=true

การสมัครใช้บริการของผู้ใช้

วิธีการเดียวกับที่แสดงรายชื่อผู้ติดตาม (subscriptions.list) คือเพื่อแสดงรายชื่อช่องที่ผู้ใช้ติดตาม คําขอนี้ใช้พารามิเตอร์ mine เพื่อดึงข้อมูลรายการช่อง YouTube ที่ผู้ใช้ที่ได้รับการตรวจสอบสิทธิ์ติดตาม

GET {base_URL}/subscriptions?part=snippet
                            &mine=true

ดึงข้อมูลกิจกรรมของผู้ใช้

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

กิจกรรมในช่วงระยะเวลา

คําขอนี้ดึงข้อมูลการกระทําทั้งหมดที่ผู้ใช้ที่ตรวจสอบสิทธิ์แล้วทําในช่วงเดือนเมษายน 2013

GET {base_URL}/activities?part=snippet,contentDetails
                         &mine=true
                         &publishedAfter=2013-04-01T00%3A00%3A00Z
                         &publishedBefore=2013-05-01T00%3A00%3A00Z

กิจกรรมในหน้าแรก

คําขอนี้จะเรียกฟีดกิจกรรมที่กําหนดเองซึ่งจะแสดงในหน้าแรกของ YouTube ของผู้ใช้ที่ตรวจสอบสิทธิ์แล้ว 

GET {base_URL}/activities?part=snippet,contentDetails
                         &home=true

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

เมธอด search.list ช่วยให้คุณค้นหาวิดีโอ YouTube, ช่อง หรือเพลย์ลิสต์ที่ตรงกับเกณฑ์ที่ระบุไว้ได้ คุณสามารถค้นหาตามพร็อพเพอร์ตี้วิดีโอ คีย์เวิร์ด หรือหัวข้อ (หรือทั้ง 2 อย่างรวมกันก็ได้) และจัดเรียงผลลัพธ์ตามปัจจัยต่างๆ เช่น วันที่สร้าง ยอดดู หรือการจัดประเภทได้

เมธอด search.list จะแสดงผล JSON ของทรัพยากร YouTube เช่นเดียวกับคําขอ API อื่นๆ ของ YouTube อย่างไรก็ตาม ผลการค้นหานี้ไม่ใช่ออบเจ็กต์ถาวรที่มีรหัสที่ไม่ซ้ํากัน ซึ่งต่างจากทรัพยากรอื่นๆ ของ YouTube

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

วิดีโอที่มีคนดูมากที่สุดของฉัน

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

GET {base_URL}/search?part=snippet
                     &forMine=true
                     &order=viewCount
                     &type=video

วิดีโอความละเอียดสูงแบบฝังได้

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

GET {base_URL}/search?part=snippet
                     &order=rating
                     &type=video
                     &videoDefinition=high
                     &videoEmbeddable=true
                     &key={YOUR_API_KEY}

วิดีโอเกี่ยวกับหัวข้อที่เฉพาะเจาะจง

คําขอนี้จะค้นหาคีย์เวิร์ดสําหรับวิดีโอเกี่ยวกับ YouTube Data API ที่มีคําบรรยาย

GET {base_URL}/search?part=snippet
                     &q=YouTube+Data+API
                     &type=video
                     &videoCaption=closedCaption
                     &key={YOUR_API_KEY}

การค้นหาตามหัวข้อ

วิธีที่มีความซับซ้อนมากขึ้นในการค้นหาวิดีโอเกี่ยวกับหัวข้อใดหัวข้อหนึ่งคือการใช้หัวข้อ Freebase แทนคีย์เวิร์ด ทรัพยากรของช่องและวิดีโอ YouTube ทั้งหมดมีออบเจ็กต์ topicDetails ที่มีรายการรหัสหัวข้อ Freebase ที่เชื่อมโยงกับทรัพยากรดังกล่าว การค้นหาตามหัวข้ออาจฉลาดกว่าการค้นหาคีย์เวิร์ด เนื่องจากหัวข้อฟรีเบสแสดงถึงแนวคิดหรือสิ่งต่างๆ ในชีวิตจริง

หากต้องการค้นหาโดยใช้หัวข้อ Freebase คุณต้องดึงรหัสหัวข้อโดยใช้ Freebase API ก่อน คําขอนี้จะแสดงวิดีโอที่เชื่อมโยงกับหัวข้อ Freebase สําหรับ Python ซึ่งมีรหัสหัวข้อคือ /m/05z1_

GET {base_URL}/search?part=snippet
                     &topicId=/m/05z1_
                     &type=video
                     &key={YOUR_API_KEY}

การค้นหาเพลย์ลิสต์หรือช่อง

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

GET {base_URL}/search?part=snippet
                     &q=soccer
                     &type=playlist
                     &key={YOUR_API_KEY}

หากต้องการหาช่องฟุตบอล ก็เปลี่ยนพารามิเตอร์ type ได้เลย

GET {base_URL}/search?part=snippet
                     &q=soccer
                     &type=channel
                     &key={YOUR_API_KEY}

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

GET {base_URL}/search?part=snippet
                     &q=soccer
                     &key={YOUR_API_KEY}

สร้างและอัปเดตทรัพยากร

คําขอที่เราตรวจสอบไปทั้งหมดนั้นใช้เมธอด HTTP GET เพื่อดึงข้อมูล YouTube นอกจากนี้ YouTube Data API ยังมีเมธอดที่ใช้ HTTP POST ในการสร้างหรืออัปเดตทรัพยากรของ YouTube เช่น วิดีโอ เพลย์ลิสต์ หรือช่องด้วย คําขอต่อไปนี้มีตัวอย่าง

เมธอด POST ประกอบด้วย Request body ซึ่งเป็นการนําเสนอ JSON ของทรัพยากรที่กําลังสร้างหรืออัปเดต คุณสามารถสร้างข้อมูล JSON ได้ใน Google APIs Explorer โดยใช้เครื่องมือแบบอินเทอร์แอกทีฟ

สร้างการสมัครใช้บริการ

คําขอนี้จะติดตามผู้ใช้ที่ตรวจสอบสิทธิ์แล้วของช่อง Google Developers กล่าวคือสร้างทรัพยากรการสมัครใช้บริการ

POST {base_URL}/subscriptions?part=snippet
Request body: {   'snippet': {     'resourceId': {       'kind': 'youtube#channel',       'channelId': 'UC_x5XG1OV2P6uZZ5FSM9Ttw'     }   } }

สร้างเพลย์ลิสต์

คําขอนี้จะสร้างเพลย์ลิสต์สาธารณะใหม่

POST {base_URL}/playlists?part=snippet
Request body: {   'snippet': {     'title': 'New playlist',     'description': 'Sample playlist for Data API',   } }

การเพิ่มวิดีโอในเพลย์ลิสต์

เมื่อสร้างเพลย์ลิสต์แล้ว ให้เพิ่มวิดีโอลงในเพลย์ลิสต์ คําขอนี้จะเพิ่มวิดีโอไปยังตอนต้นของเพลย์ลิสต์ ('position': 0)

POST {base_URL}/playlistItems?part=snippet
  Request body:
  {
    'snippet': {
      'playlistId': '{PLAYLIST_ID}', 
      'resourceId': {
          'kind': 'youtube#video',
          'videoId': '{VIDEO_ID}'
        }
     'position': 0
      }
   }