Search: list

แสดงผลคอลเล็กชันของผลการค้นหาที่ตรงกับพารามิเตอร์การค้นหาที่ระบุในคำขอ API โดยค่าเริ่มต้น ชุดผลการค้นหาจะระบุทรัพยากร video, channel และ playlist ที่ตรงกัน แต่คุณยังสามารถกำหนดค่าการค้นหาให้ดึงเฉพาะทรัพยากรประเภทที่ระบุได้ด้วย

ผลกระทบของโควต้า: การเรียกใช้วิธีการนี้มีค่าใช้จ่ายโควต้าเท่ากับ 100 หน่วย

Use Case ทั่วไป

ส่งคำขอ

คำขอ HTTP

GET https://www.googleapis.com/youtube/v3/search

พารามิเตอร์

ตารางต่อไปนี้แสดงพารามิเตอร์ที่การค้นหานี้รองรับ พารามิเตอร์ทั้งหมดที่แสดงอยู่เป็นพารามิเตอร์การค้นหา

พารามิเตอร์
พารามิเตอร์ที่จำเป็น
part string
พารามิเตอร์ part จะระบุรายการพร็อพเพอร์ตี้ทรัพยากร search อย่างน้อย 1 รายการที่คั่นด้วยเครื่องหมายจุลภาค ซึ่งจะรวมการตอบกลับจาก API ไว้ด้วย ตั้งค่าพารามิเตอร์เป็น snippet
ตัวกรอง (ระบุ 0 หรือ 1 ในพารามิเตอร์ต่อไปนี้)
forContentOwner boolean
พารามิเตอร์นี้ใช้ได้เฉพาะในคำขอที่ได้รับอนุญาตที่เหมาะสม และมีไว้สำหรับพาร์ทเนอร์เนื้อหาของ YouTube โดยเฉพาะ

พารามิเตอร์ forContentOwner จะจำกัดการค้นหาให้ดึงเฉพาะวิดีโอของเจ้าของเนื้อหาที่ระบุโดยพารามิเตอร์ onBehalfOfContentOwner เท่านั้น หากตั้งค่า forContentOwner เป็น "จริง" คำขอต้องเป็นไปตามข้อกำหนดเหล่านี้ด้วย
  • ต้องระบุพารามิเตอร์ onBehalfOfContentOwner
  • ผู้ใช้ที่ให้สิทธิ์คำขอต้องใช้บัญชีที่ลิงก์กับเจ้าของเนื้อหาที่ระบุ
  • ค่าพารามิเตอร์ type ต้องได้รับการตั้งค่าเป็น video
  • ไม่สามารถตั้งค่าพารามิเตอร์อื่นๆ ต่อไปนี้: videoDefinition, videoDimension, videoDuration, videoEmbeddable, videoLicense, videoPaidProductPlacement, videoSyndicated, videoType
forDeveloper boolean
พารามิเตอร์นี้ใช้ได้เฉพาะในคำขอที่ได้รับอนุญาตที่เหมาะสมเท่านั้น พารามิเตอร์ forDeveloper จะจำกัดการค้นหาให้ดึงเฉพาะวิดีโอที่อัปโหลดผ่านแอปพลิเคชันหรือเว็บไซต์ของนักพัฒนาซอฟต์แวร์เท่านั้น เซิร์ฟเวอร์ API จะใช้ข้อมูลเข้าสู่ระบบการให้สิทธิ์ของคำขอเพื่อระบุนักพัฒนาซอฟต์แวร์ พารามิเตอร์ forDeveloper ใช้ร่วมกับพารามิเตอร์การค้นหาที่ไม่บังคับได้ เช่น พารามิเตอร์ q

สำหรับฟีเจอร์นี้ วิดีโอที่อัปโหลดแต่ละรายการจะได้รับการติดแท็กโดยอัตโนมัติด้วยหมายเลขโปรเจ็กต์ที่เชื่อมโยงกับแอปพลิเคชันของนักพัฒนาซอฟต์แวร์ใน Google Developers Console

เมื่อคำขอการค้นหากำหนดพารามิเตอร์ forDeveloper เป็น true ในภายหลัง เซิร์ฟเวอร์ API จะใช้ข้อมูลเข้าสู่ระบบการให้สิทธิ์ของคำขอเพื่อระบุนักพัฒนาแอป ดังนั้น นักพัฒนาซอฟต์แวร์จึงจำกัดผลการค้นหาให้แสดงเฉพาะวิดีโอที่อัปโหลดผ่านแอปหรือเว็บไซต์ของนักพัฒนาแอปเองได้ แต่จำกัดให้แสดงเฉพาะวิดีโอที่อัปโหลดผ่านแอปหรือเว็บไซต์อื่นๆ
forMine boolean
พารามิเตอร์นี้ใช้ได้เฉพาะในคำขอที่ได้รับอนุญาตที่เหมาะสมเท่านั้น พารามิเตอร์ forMine จะจํากัดการค้นหาให้ดึงเฉพาะวิดีโอของผู้ใช้ที่ตรวจสอบสิทธิ์แล้วเท่านั้น หากคุณตั้งค่าพารามิเตอร์นี้เป็น true ก็จะต้องตั้งค่าของพารามิเตอร์ type เป็น video ด้วย นอกจากนี้ ไม่สามารถตั้งค่าพารามิเตอร์อื่นๆ ต่อไปนี้ในคำขอเดียวกัน: videoDefinition, videoDimension, videoDuration, videoEmbeddable, videoLicense, videoPaidProductPlacement, videoSyndicated, videoType
พารามิเตอร์ที่ไม่บังคับ
channelId string
พารามิเตอร์ channelId ระบุว่าการตอบกลับจาก API ควรมีเฉพาะทรัพยากรที่ช่องทางสร้างขึ้น

หมายเหตุ: ผลการค้นหาจะจํากัดไว้ที่วิดีโอสูงสุด 500 รายการหากคําขอของคุณระบุค่าสําหรับพารามิเตอร์ channelId และตั้งค่าพารามิเตอร์ type เป็น video แต่ไม่ได้ตั้งค่าตัวกรอง forContentOwner, forDeveloper หรือ forMine รายการใดรายการหนึ่งด้วย
channelType string
พารามิเตอร์ channelType ช่วยให้คุณจำกัดการค้นหาเป็นช่องทางประเภทใดประเภทหนึ่งได้

ค่าที่ยอมรับได้ ได้แก่
  • any – ส่งคืนช่องทั้งหมด
  • show – ดึงเฉพาะรายการ
eventType string
พารามิเตอร์ eventType จะจำกัดการค้นหาให้แสดงเฉพาะเหตุการณ์ หากระบุค่าสำหรับพารามิเตอร์นี้ คุณต้องตั้งค่าของพารามิเตอร์ type เป็น video ด้วย

ค่าที่ยอมรับได้มีดังนี้
  • completed – รวมเฉพาะการออกอากาศที่เสร็จสิ้นแล้ว
  • live – รวมเฉพาะรายการที่ออกอากาศอยู่
  • upcoming – รวมเฉพาะการออกอากาศที่กำลังจะมาถึง
location string
พารามิเตอร์ location ร่วมกับพารามิเตอร์ locationRadius จะกำหนดพื้นที่ทางภูมิศาสตร์แบบวงกลม และยังจำกัดการค้นหาเฉพาะวิดีโอที่ระบุสถานที่ตั้งทางภูมิศาสตร์ที่อยู่ในพื้นที่นั้นในข้อมูลเมตาด้วย ค่าพารามิเตอร์คือสตริงที่ระบุพิกัดละติจูด/ลองจิจูด เช่น (37.42307,-122.08427)

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

หมายเหตุ: หากระบุค่าสำหรับพารามิเตอร์นี้ คุณจะต้องตั้งค่าของพารามิเตอร์ type เป็น video ด้วย
locationRadius string
พารามิเตอร์ locationRadius ร่วมกับพารามิเตอร์ location จะกําหนดพื้นที่ทางภูมิศาสตร์แบบวงกลม

ค่าพารามิเตอร์ต้องเป็นเลขทศนิยมตามด้วยหน่วยวัด หน่วยวัดที่ถูกต้องคือ m, km, ft และ mi เช่น ค่าพารามิเตอร์ที่ถูกต้อง ได้แก่ 1500m, 5km, 10000ft และ 0.75mi API ไม่รองรับค่าพารามิเตอร์ locationRadius ที่มีขนาดใหญ่กว่า 1,000 กิโลเมตร

หมายเหตุ: ดูข้อมูลเพิ่มเติมได้ที่คำจำกัดความของพารามิเตอร์ location
maxResults unsigned integer
พารามิเตอร์ maxResults จะระบุจำนวนรายการสูงสุดที่ควรแสดงผลในชุดผลลัพธ์ ค่าที่ยอมรับได้คือ 0 ถึง 50 ค่าเริ่มต้นคือ 5
onBehalfOfContentOwner string
พารามิเตอร์นี้ใช้ได้เฉพาะในคำขอที่ได้รับอนุญาตที่เหมาะสมเท่านั้น หมายเหตุ: พารามิเตอร์นี้มีไว้สำหรับพาร์ทเนอร์เนื้อหาของ YouTube เท่านั้น

พารามิเตอร์ onBehalfOfContentOwner ระบุว่าข้อมูลเข้าสู่ระบบการให้สิทธิ์ของคำขอระบุผู้ใช้ YouTube CMS ที่ดำเนินการในนามของเจ้าของเนื้อหาที่ระบุไว้ในค่าพารามิเตอร์ พารามิเตอร์นี้มีไว้สำหรับพาร์ทเนอร์เนื้อหาของ YouTube ที่เป็นเจ้าของและจัดการช่อง YouTube หลายช่อง ซึ่งช่วยให้เจ้าของเนื้อหาตรวจสอบสิทธิ์เพียงครั้งเดียวและมีสิทธิ์เข้าถึงข้อมูลวิดีโอและช่องทั้งหมดของตนโดยไม่ต้องระบุข้อมูลเข้าสู่ระบบการตรวจสอบสิทธิ์สำหรับแต่ละช่อง บัญชี CMS ที่ผู้ใช้ตรวจสอบสิทธิ์จะต้องลิงก์กับเจ้าของเนื้อหา YouTube ที่ระบุ
order string
พารามิเตอร์ order จะระบุเมธอดที่จะใช้เรียงลำดับทรัพยากรในการตอบกลับ API ค่าเริ่มต้นคือ relevance

ค่าที่ยอมรับได้มีดังนี้
  • date – ระบบจัดเรียงทรัพยากรตามลำดับเวลาย้อนกลับตามวันที่ที่สร้าง
  • rating – แหล่งข้อมูลจะจัดเรียงจากคะแนนสูงสุดไปต่ำสุด
  • relevance – ทรัพยากรจะจัดเรียงตามความเกี่ยวข้องกับคำค้นหา นี่คือค่าเริ่มต้นของพารามิเตอร์นี้
  • title – แหล่งข้อมูลจะจัดเรียงตามตัวอักษรของชื่อ
  • videoCount – ระบบจัดเรียงช่องตามลำดับจำนวนวิดีโอที่อัปโหลดจากมากไปหาน้อย
  • viewCount – จัดเรียงแหล่งข้อมูลจากยอดดูสูงสุดไปต่ำสุด สำหรับการถ่ายทอดสด ระบบจะจัดเรียงวิดีโอตามจำนวนผู้ชมที่ดูพร้อมกันขณะที่ออกอากาศ
pageToken string
พารามิเตอร์ pageToken จะระบุหน้าเว็บที่เฉพาะเจาะจงในชุดผลลัพธ์ที่ควรแสดง ในการตอบกลับของ API พร็อพเพอร์ตี้ nextPageToken และ prevPageToken จะระบุหน้าอื่นๆ ที่ดึงได้
publishedAfter datetime
พารามิเตอร์ publishedAfter ระบุว่าการตอบกลับจาก API ควรมีเฉพาะทรัพยากรที่สร้างขึ้นในหรือหลังจากเวลาที่ระบุ ค่านี้เป็นค่าวันที่และเวลาในรูปแบบ RFC 3339 (1970-01-01T00:00:00Z)
publishedBefore datetime
พารามิเตอร์ publishedBefore บ่งบอกว่าการตอบกลับจาก API ควรมีเฉพาะทรัพยากรที่สร้างขึ้นก่อนหรือในเวลาที่ระบุ ค่านี้เป็นค่าวันที่และเวลาในรูปแบบ RFC 3339 (1970-01-01T00:00:00Z)
q string
พารามิเตอร์ q จะระบุคำค้นหาที่ต้องการ

คำขอของคุณยังสามารถใช้โอเปอเรเตอร์บูลีน NOT (-) และ OR (|) เพื่อยกเว้นวิดีโอหรือเพื่อค้นหาวิดีโอที่เชื่อมโยงกับข้อความค้นหารายการใดรายการหนึ่ง เช่น หากต้องการค้นหาวิดีโอที่ตรงกับ "การล่องเรือ" หรือ "การแล่นเรือใบ" ให้ตั้งค่าพารามิเตอร์ q เป็น boating|sailing ในทำนองเดียวกัน หากต้องการค้นหาวิดีโอที่ตรงกับ "การล่องเรือ" หรือ "การแล่นเรือใบ" แต่ไม่ใช่ "การตกปลา" ให้ตั้งค่าพารามิเตอร์ q เป็น boating|sailing -fishing โปรดทราบว่าอักขระไปป์ต้องกำหนดเป็นอักขระหลีกกับ URL เมื่อส่งในคำขอ API ค่าที่ออกจาก URL สำหรับอักขระไปป์คือ %7C
regionCode string
พารามิเตอร์ regionCode จะสั่งให้ API แสดงผลการค้นหาสำหรับวิดีโอที่ดูได้ในประเทศที่ระบุ ค่าพารามิเตอร์คือรหัสประเทศ ISO 3166-1 alpha-2
relevanceLanguage string
พารามิเตอร์ relevanceLanguage จะสั่งให้ API แสดงผลการค้นหาที่เกี่ยวข้องกับภาษาที่ระบุมากที่สุด ค่าพารามิเตอร์มักจะเป็นรหัสภาษา ISO 639-1 แบบ 2 ตัวอักษร อย่างไรก็ตาม คุณควรใช้ค่า zh-Hans สำหรับภาษาจีนตัวย่อ และ zh-Hant สำหรับภาษาจีนตัวเต็ม โปรดทราบว่าจะมีการแสดงผลลัพธ์ในภาษาอื่นหากมีความเกี่ยวข้องกับข้อความค้นหาสูง
safeSearch string
พารามิเตอร์ safeSearch จะระบุว่าผลการค้นหาควรมีเนื้อหาที่ถูกจำกัด รวมถึงเนื้อหามาตรฐานหรือไม่

ค่าที่ยอมรับได้ ได้แก่
  • moderate – YouTube จะกรองเนื้อหาบางส่วนจากผลการค้นหา และอย่างน้อยจะกรองเนื้อหาที่ถูกจำกัดในภาษาของคุณ ระบบอาจนำผลการค้นหาออกจากผลการค้นหาหรือลดระดับในผลการค้นหา ทั้งนี้ขึ้นอยู่กับเนื้อหาเหล่านั้น นี่คือค่าพารามิเตอร์เริ่มต้น
  • none – YouTube จะไม่กรองผลการค้นหา
  • strict – YouTube จะพยายามคัดแยกเนื้อหาที่ถูกจำกัดทั้งหมดออกจากชุดผลการค้นหา ระบบอาจนำผลการค้นหาออกจากผลการค้นหาหรือลดระดับในผลการค้นหา ทั้งนี้ขึ้นอยู่กับเนื้อหาเหล่านั้น
topicId string
พารามิเตอร์ topicId ระบุว่าการตอบกลับจาก API ควรมีเฉพาะทรัพยากรที่เชื่อมโยงกับหัวข้อที่ระบุเท่านั้น ค่านี้ระบุรหัสหัวข้อ Freebase

สำคัญ: การเลิกใช้งาน Freebase และ Freebase API ทำให้พารามิเตอร์ topicId เริ่มทำงานต่างออกไปตั้งแต่วันที่ 27 กุมภาพันธ์ 2017 ในตอนนั้น YouTube เริ่มรองรับรหัสหัวข้อที่มีการดูแลจัดการจำนวนหนึ่ง และคุณสามารถใช้ชุดรหัสที่เล็กลงเป็นค่าสำหรับพารามิเตอร์นี้ได้เท่านั้น

type string
พารามิเตอร์ type จะจำกัดคำค้นหาให้ดึงเฉพาะทรัพยากรประเภทหนึ่งๆ เท่านั้น ค่าดังกล่าวเป็นรายการประเภททรัพยากรที่คั่นด้วยคอมมา ค่าเริ่มต้นคือ video,channel,playlist

ค่าที่ยอมรับได้มีดังนี้
  • channel
  • playlist
  • video
videoCaption string
พารามิเตอร์ videoCaption จะบ่งบอกว่า API ควรกรองผลการค้นหาวิดีโอตามที่มีคำบรรยายวิดีโอหรือไม่ หากระบุค่าสำหรับพารามิเตอร์นี้ คุณต้องตั้งค่าของพารามิเตอร์ type เป็น video ด้วย

ค่าที่ยอมรับได้มีดังนี้
  • any – อย่ากรองผลการค้นหาตามความพร้อมใช้งานของคำบรรยาย
  • closedCaption – ใส่เฉพาะวิดีโอที่มีคำบรรยายแทนเสียง
  • none – ใส่เฉพาะวิดีโอที่ไม่มีคำบรรยายแทนเสียง
videoCategoryId string
พารามิเตอร์ videoCategoryId จะกรองผลการค้นหาวิดีโอตามหมวดหมู่ หากระบุค่าสำหรับพารามิเตอร์นี้ คุณต้องตั้งค่าของพารามิเตอร์ type เป็น video ด้วย
videoDefinition string
พารามิเตอร์ videoDefinition ช่วยให้คุณสามารถจำกัดการค้นหาให้รวมเฉพาะวิดีโอความละเอียดสูง (HD) หรือวิดีโอความละเอียดมาตรฐาน (SD) เท่านั้น วิดีโอความละเอียดสูงจะเล่นได้ที่ความละเอียดอย่างน้อย 720p แต่อาจจะมีความละเอียดสูงกว่า เช่น 1080p ด้วย หากระบุค่าสำหรับพารามิเตอร์นี้ คุณต้องตั้งค่าของพารามิเตอร์ type เป็น video ด้วย

ค่าที่ยอมรับได้มีดังนี้
  • any – แสดงวิดีโอทั้งหมด โดยไม่คำนึงถึงความละเอียด
  • high – เรียกดูเฉพาะวิดีโอ HD
  • standard – ดึงเฉพาะวิดีโอในความละเอียดมาตรฐานเท่านั้น
videoDimension string
พารามิเตอร์ videoDimension ช่วยให้คุณสามารถจำกัดการค้นหาให้ดึงเฉพาะวิดีโอ 2 มิติหรือ 3 มิติเท่านั้น หากระบุค่าสำหรับพารามิเตอร์นี้ คุณต้องตั้งค่าของพารามิเตอร์ type เป็น video ด้วย

ค่าที่ยอมรับได้มีดังนี้
  • 2d – จำกัดผลการค้นหาให้ยกเว้นวิดีโอ 3 มิติ
  • 3d – จำกัดผลการค้นหาให้รวมเฉพาะวิดีโอ 3 มิติ
  • any – รวมทั้งวิดีโอ 3 มิติและไม่ใช่ 3 มิติในผลลัพธ์ นี่คือค่าเริ่มต้น
videoDuration string
พารามิเตอร์ videoDuration จะกรองผลการค้นหาวิดีโอตามระยะเวลา หากระบุค่าสำหรับพารามิเตอร์นี้ คุณต้องตั้งค่าของพารามิเตอร์ type เป็น video ด้วย

ค่าที่ยอมรับได้มีดังนี้
  • any – อย่ากรองผลการค้นหาวิดีโอตามระยะเวลา นี่คือค่าเริ่มต้น
  • long – ใส่เฉพาะวิดีโอที่มีความยาวเกิน 20 นาที
  • medium – ระบุเฉพาะวิดีโอที่มีความยาวตั้งแต่ 4-20 นาทีเท่านั้น (รวม)
  • short – ให้ใส่เฉพาะวิดีโอที่มีความยาวน้อยกว่า 4 นาที
videoEmbeddable string
พารามิเตอร์ videoEmbeddable ช่วยให้คุณสามารถจำกัดการค้นหาไว้เฉพาะวิดีโอที่ฝังลงในหน้าเว็บได้ หากระบุค่าสำหรับพารามิเตอร์นี้ คุณต้องตั้งค่าของพารามิเตอร์ type เป็น video ด้วย

ค่าที่ยอมรับได้มีดังนี้
  • any – แสดงวิดีโอทั้งหมด ฝังได้หรือไม่ได้
  • true – ดึงเฉพาะวิดีโอที่ฝังได้
videoLicense string
พารามิเตอร์ videoLicense จะกรองผลการค้นหาให้รวมเฉพาะวิดีโอที่มีใบอนุญาตหนึ่งๆ เท่านั้น YouTube อนุญาตให้ผู้อัปโหลดวิดีโอเลือกแนบใบอนุญาตครีเอทีฟคอมมอนส์หรือใบอนุญาตมาตรฐานของ YouTube ไว้กับวิดีโอแต่ละรายการ หากระบุค่าสำหรับพารามิเตอร์นี้ คุณต้องตั้งค่าของพารามิเตอร์ type เป็น video ด้วย

ค่าที่ยอมรับได้มีดังนี้
  • any – แสดงวิดีโอทั้งหมด ไม่ว่าจะมีใบอนุญาตใดก็ตาม ซึ่งตรงกับพารามิเตอร์การค้นหา
  • creativeCommon – แสดงเฉพาะวิดีโอที่มีใบอนุญาตครีเอทีฟคอมมอนส์ ผู้ใช้สามารถนำวิดีโอที่มีใบอนุญาตนี้ไปใช้ซ้ำในวิดีโออื่นๆ ที่สร้างขึ้นได้ ดูข้อมูลเพิ่มเติม
  • youtube – ส่งคืนเฉพาะวิดีโอที่มีใบอนุญาต YouTube แบบมาตรฐาน
videoPaidProductPlacement string
พารามิเตอร์ videoPaidProductPlacement จะกรองผลการค้นหาให้รวมเฉพาะวิดีโอที่ครีเอเตอร์ระบุว่ามีการโปรโมตแบบเสียค่าใช้จ่ายเท่านั้น หากระบุค่าสำหรับพารามิเตอร์นี้ คุณต้องตั้งค่าของพารามิเตอร์ type เป็น video ด้วย

ค่าที่ยอมรับได้มีดังนี้
  • any – แสดงวิดีโอทั้งหมด ไม่ว่าจะมีการโปรโมตแบบเสียค่าใช้จ่ายหรือไม่ก็ตาม
  • true – เรียกดูเฉพาะวิดีโอที่มีการโปรโมตแบบเสียค่าใช้จ่ายเท่านั้น
videoSyndicated string
พารามิเตอร์ videoSyndicated ช่วยให้คุณสามารถจำกัดการค้นหาให้แสดงเฉพาะวิดีโอที่เล่นนอก youtube.com ได้เท่านั้น หากระบุค่าสำหรับพารามิเตอร์นี้ คุณต้องตั้งค่าของพารามิเตอร์ type เป็น video ด้วย

ค่าที่ยอมรับ ได้แก่
  • any – ส่งคืนวิดีโอทั้งหมด เผยแพร่หรือไม่
  • true – ดึงเฉพาะวิดีโอที่คัดลอกมา
videoType string
พารามิเตอร์ videoType จะช่วยให้คุณจำกัดการค้นหาไว้เฉพาะวิดีโอบางประเภทได้ หากระบุค่าสำหรับพารามิเตอร์นี้ คุณต้องตั้งค่าของพารามิเตอร์ type เป็น video ด้วย

ค่าที่ยอมรับได้มีดังนี้
  • any – แสดงวิดีโอทั้งหมด
  • episode – เรียกข้อมูลเฉพาะตอนของรายการ
  • movie – ดึงเฉพาะภาพยนตร์

เนื้อหาของคำขอ

ไม่ต้องระบุเนื้อหาคำขอเมื่อเรียกใช้วิธีการนี้

คำตอบ

หากทำสำเร็จ เมธอดนี้จะแสดงเนื้อหาการตอบสนองที่มีโครงสร้างต่อไปนี้

{
  "kind": "youtube#searchListResponse",
  "etag": etag,
  "nextPageToken": string,
  "prevPageToken": string,
  "regionCode": string,
  "pageInfo": {
    "totalResults": integer,
    "resultsPerPage": integer
  },
  "items": [
    search Resource
  ]
}

พร็อพเพอร์ตี้

ตารางต่อไปนี้จะกำหนดพร็อพเพอร์ตี้ที่จะปรากฏในผลการค้นหา

พร็อพเพอร์ตี้
kind string
ระบุประเภทของทรัพยากร API ค่าจะเป็น youtube#searchListResponse
etag etag
Etag ของแหล่งข้อมูลนี้
nextPageToken string
โทเค็นที่ใช้เป็นค่าของพารามิเตอร์ pageToken เพื่อดึงหน้าถัดไปในชุดผลลัพธ์
prevPageToken string
โทเค็นที่ใช้เป็นค่าของพารามิเตอร์ pageToken เพื่อดึงหน้าก่อนหน้าในชุดผลลัพธ์ได้
regionCode string
รหัสภูมิภาคที่ใช้สำหรับคำค้นหา ค่าพร็อพเพอร์ตี้คือรหัสประเทศ ISO 2 ตัวอักษรที่ระบุภูมิภาค เมธอด i18nRegions.list จะแสดงรายการภูมิภาคที่รองรับ ค่าเริ่มต้นคือ US หากระบุภูมิภาคที่ไม่รองรับ YouTube อาจเลือกภูมิภาคอื่นแทนค่าเริ่มต้นเพื่อจัดการกับการค้นหา
pageInfo object
ออบเจ็กต์ pageInfo สรุปข้อมูลการแบ่งหน้าสำหรับชุดผลลัพธ์
pageInfo.totalResults integer
จำนวนผลลัพธ์ทั้งหมดในชุดผลลัพธ์ โปรดทราบว่าค่าเป็นการประมาณและอาจไม่ใช่ค่าที่แน่นอน นอกจากนี้ ค่าสูงสุดคือ 1,000,000

คุณไม่ควรใช้ค่านี้เพื่อสร้างลิงก์การใส่เลขหน้า แต่ให้ใช้ค่าพร็อพเพอร์ตี้ nextPageToken และ prevPageToken เพื่อกำหนดว่าจะแสดงลิงก์การใส่เลขหน้าหรือไม่
pageInfo.resultsPerPage integer
จำนวนผลลัพธ์ที่รวมอยู่ในการตอบกลับของ API
items[] list
รายการผลการค้นหาที่ตรงกับเกณฑ์การค้นหา

ตัวอย่าง

หมายเหตุ: ตัวอย่างโค้ดต่อไปนี้อาจไม่ได้แสดงถึงภาษาโปรแกรมที่รองรับทั้งหมด โปรดดูรายการภาษาที่รองรับในเอกสารประกอบของไลบรารีของไคลเอ็นต์

Apps Script

ฟังก์ชันนี้จะค้นหาวิดีโอที่เกี่ยวข้องกับคีย์เวิร์ด "สุนัข" ระบบจะบันทึกรหัสวิดีโอและชื่อผลการค้นหาลงในบันทึกของ Apps Script

โปรดทราบว่าตัวอย่างนี้จำกัดผลลัพธ์ไว้ที่ 25 รายการ หากต้องการแสดงผลลัพธ์เพิ่มเติม ให้ส่งพารามิเตอร์เพิ่มเติมตามที่อธิบายไว้ https://developers.google.com/youtube/v3/docs/search/list
function searchByKeyword() {
  var results = YouTube.Search.list('id,snippet', {q: 'dogs', maxResults: 25});

  for(var i in results.items) {
    var item = results.items[i];
    Logger.log('[%s] Title: %s', item.id.videoId, item.snippet.title);
  }
}

Go

ตัวอย่างโค้ดนี้เรียกใช้เมธอด search.list ของ API เพื่อดึงผลการค้นหาที่เชื่อมโยงกับคีย์เวิร์ดหนึ่งๆ

ตัวอย่างนี้ใช้ไลบรารีของไคลเอ็นต์ Go

package main

import (
	"flag"
	"fmt"
	"log"
	"net/http"

	"google.golang.org/api/googleapi/transport"
	"google.golang.org/api/youtube/v3"
)

var (
	query      = flag.String("query", "Google", "Search term")
	maxResults = flag.Int64("max-results", 25, "Max YouTube results")
)

const developerKey = "YOUR DEVELOPER KEY"

func main() {
	flag.Parse()

	client := &http.Client{
		Transport: &transport.APIKey{Key: developerKey},
	}

	service, err := youtube.New(client)
	if err != nil {
		log.Fatalf("Error creating new YouTube client: %v", err)
	}

	// Make the API call to YouTube.
	call := service.Search.List("id,snippet").
		Q(*query).
		MaxResults(*maxResults)
	response, err := call.Do()
	handleError(err, "")

	// Group video, channel, and playlist results in separate lists.
	videos := make(map[string]string)
	channels := make(map[string]string)
	playlists := make(map[string]string)

	// Iterate through each item and add it to the correct list.
	for _, item := range response.Items {
		switch item.Id.Kind {
		case "youtube#video":
			videos[item.Id.VideoId] = item.Snippet.Title
		case "youtube#channel":
			channels[item.Id.ChannelId] = item.Snippet.Title
		case "youtube#playlist":
			playlists[item.Id.PlaylistId] = item.Snippet.Title
		}
	}

	printIDs("Videos", videos)
	printIDs("Channels", channels)
	printIDs("Playlists", playlists)
}

// Print the ID and title of each result in a list as well as a name that
// identifies the list. For example, print the word section name "Videos"
// above a list of video search results, followed by the video ID and title
// of each matching video.
func printIDs(sectionName string, matches map[string]string) {
	fmt.Printf("%v:\n", sectionName)
	for id, title := range matches {
		fmt.Printf("[%v] %v\n", id, title)
	}
	fmt.Printf("\n\n")
}

.NET

ตัวอย่างโค้ดต่อไปนี้เรียกใช้เมธอด search.list ของ API เพื่อดึงผลการค้นหาที่เชื่อมโยงกับคีย์เวิร์ดหนึ่งๆ

ตัวอย่างนี้ใช้ไลบรารีของไคลเอ็นต์ .NET

using System;
using System.Collections.Generic;
using System.IO;
using System.Reflection;
using System.Threading;
using System.Threading.Tasks;

using Google.Apis.Auth.OAuth2;
using Google.Apis.Services;
using Google.Apis.Upload;
using Google.Apis.Util.Store;
using Google.Apis.YouTube.v3;
using Google.Apis.YouTube.v3.Data;

namespace Google.Apis.YouTube.Samples
{
  /// <summary>
  /// YouTube Data API v3 sample: search by keyword.
  /// Relies on the Google APIs Client Library for .NET, v1.7.0 or higher.
  /// See https://developers.google.com/api-client-library/dotnet/get_started
  ///
  /// Set ApiKey to the API key value from the APIs & auth > Registered apps tab of
  ///   https://cloud.google.com/console
  /// Please ensure that you have enabled the YouTube Data API for your project.
  /// </summary>
  internal class Search
  {
    [STAThread]
    static void Main(string[] args)
    {
      Console.WriteLine("YouTube Data API: Search");
      Console.WriteLine("========================");

      try
      {
        new Search().Run().Wait();
      }
      catch (AggregateException ex)
      {
        foreach (var e in ex.InnerExceptions)
        {
          Console.WriteLine("Error: " + e.Message);
        }
      }

      Console.WriteLine("Press any key to continue...");
      Console.ReadKey();
    }

    private async Task Run()
    {
      var youtubeService = new YouTubeService(new BaseClientService.Initializer()
      {
        ApiKey = "REPLACE_ME",
        ApplicationName = this.GetType().ToString()
      });

      var searchListRequest = youtubeService.Search.List("snippet");
      searchListRequest.Q = "Google"; // Replace with your search term.
      searchListRequest.MaxResults = 50;

      // Call the search.list method to retrieve results matching the specified query term.
      var searchListResponse = await searchListRequest.ExecuteAsync();

      List<string> videos = new List<string>();
      List<string> channels = new List<string>();
      List<string> playlists = new List<string>();

      // Add each result to the appropriate list, and then display the lists of
      // matching videos, channels, and playlists.
      foreach (var searchResult in searchListResponse.Items)
      {
        switch (searchResult.Id.Kind)
        {
          case "youtube#video":
            videos.Add(String.Format("{0} ({1})", searchResult.Snippet.Title, searchResult.Id.VideoId));
            break;

          case "youtube#channel":
            channels.Add(String.Format("{0} ({1})", searchResult.Snippet.Title, searchResult.Id.ChannelId));
            break;

          case "youtube#playlist":
            playlists.Add(String.Format("{0} ({1})", searchResult.Snippet.Title, searchResult.Id.PlaylistId));
            break;
        }
      }

      Console.WriteLine(String.Format("Videos:\n{0}\n", string.Join("\n", videos)));
      Console.WriteLine(String.Format("Channels:\n{0}\n", string.Join("\n", channels)));
      Console.WriteLine(String.Format("Playlists:\n{0}\n", string.Join("\n", playlists)));
    }
  }
}

Ruby

ตัวอย่างนี้เรียกเมธอด search.list ของ API เพื่อดึงผลการค้นหาที่เชื่อมโยงกับคีย์เวิร์ดหนึ่งๆ

ตัวอย่างนี้ใช้ไลบรารีของไคลเอ็นต์ Ruby

#!/usr/bin/ruby

require 'rubygems'
gem 'google-api-client', '>0.7'
require 'google/api_client'
require 'trollop'

# Set DEVELOPER_KEY to the API key value from the APIs & auth > Credentials
# tab of
# {{ Google Cloud Console }} <{{ https://cloud.google.com/console }}>
# Please ensure that you have enabled the YouTube Data API for your project.
DEVELOPER_KEY = 'REPLACE_ME'
YOUTUBE_API_SERVICE_NAME = 'youtube'
YOUTUBE_API_VERSION = 'v3'

def get_service
  client = Google::APIClient.new(
    :key => DEVELOPER_KEY,
    :authorization => nil,
    :application_name => $PROGRAM_NAME,
    :application_version => '1.0.0'
  )
  youtube = client.discovered_api(YOUTUBE_API_SERVICE_NAME, YOUTUBE_API_VERSION)

  return client, youtube
end

def main
  opts = Trollop::options do
    opt :q, 'Search term', :type => String, :default => 'Google'
    opt :max_results, 'Max results', :type => :int, :default => 25
  end

  client, youtube = get_service

  begin
    # Call the search.list method to retrieve results matching the specified
    # query term.
    search_response = client.execute!(
      :api_method => youtube.search.list,
      :parameters => {
        :part => 'snippet',
        :q => opts[:q],
        :maxResults => opts[:max_results]
      }
    )

    videos = []
    channels = []
    playlists = []

    # Add each result to the appropriate list, and then display the lists of
    # matching videos, channels, and playlists.
    search_response.data.items.each do |search_result|
      case search_result.id.kind
        when 'youtube#video'
          videos << "#{search_result.snippet.title} (#{search_result.id.videoId})"
        when 'youtube#channel'
          channels << "#{search_result.snippet.title} (#{search_result.id.channelId})"
        when 'youtube#playlist'
          playlists << "#{search_result.snippet.title} (#{search_result.id.playlistId})"
      end
    end

    puts "Videos:\n", videos, "\n"
    puts "Channels:\n", channels, "\n"
    puts "Playlists:\n", playlists, "\n"
  rescue Google::APIClient::TransmissionError => e
    puts e.result.body
  end
end

main

ข้อผิดพลาด

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

ประเภทข้อผิดพลาด รายละเอียดข้อผิดพลาด คำอธิบาย
badRequest (400) invalidChannelId พารามิเตอร์ channelId ระบุรหัสแชแนลที่ไม่ถูกต้อง
badRequest (400) invalidLocation ค่าพารามิเตอร์ location และ/หรือ locationRadius มีรูปแบบไม่ถูกต้อง
badRequest (400) invalidRelevanceLanguage ค่าพารามิเตอร์ relevanceLanguage จัดรูปแบบไม่ถูกต้อง
badRequest (400) invalidSearchFilter คำขอมีชุดค่าผสมของตัวกรองการค้นหาและ/หรือข้อจำกัดที่ไม่ถูกต้อง โปรดทราบว่าคุณต้องตั้งค่าพารามิเตอร์ type เป็น video หากตั้งค่าพารามิเตอร์ forContentOwner หรือ forMine เป็น true ต้องตั้งค่าพารามิเตอร์ type เป็น video ด้วยหากกำหนดค่าสำหรับพารามิเตอร์ eventType, videoCaption, videoCategoryId, videoDefinition, videoDimension, videoDuration, videoEmbeddable, videoLicense, videoSyndicated หรือ videoType

ลองใช้เลย

ใช้ APIs Explorer เพื่อเรียกใช้ API นี้เพื่อดูคำขอและการตอบสนองของ API