แสดงผลคอลเล็กชันของผลการค้นหาที่ตรงกับพารามิเตอร์การค้นหาที่ระบุในคำขอ 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 เป็น "จริง" คำขอต้องเป็นไปตามข้อกำหนดเหล่านี้ด้วย
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
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 ช่วยให้คุณจำกัดการค้นหาเป็นช่องทางประเภทใดประเภทหนึ่งได้ค่าที่ยอมรับได้ ได้แก่
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
eventType |
string พารามิเตอร์ eventType จะจำกัดการค้นหาให้แสดงเฉพาะเหตุการณ์ หากระบุค่าสำหรับพารามิเตอร์นี้ คุณต้องตั้งค่าของพารามิเตอร์ type เป็น video ด้วยค่าที่ยอมรับได้มีดังนี้
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
location |
string พารามิเตอร์ location ร่วมกับพารามิเตอร์ locationRadius จะกำหนดพื้นที่ทางภูมิศาสตร์แบบวงกลม และยังจำกัดการค้นหาเฉพาะวิดีโอที่ระบุสถานที่ตั้งทางภูมิศาสตร์ที่อยู่ในพื้นที่นั้นในข้อมูลเมตาด้วย ค่าพารามิเตอร์คือสตริงที่ระบุพิกัดละติจูด/ลองจิจูด เช่น (37.42307,-122.08427 )
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 ค่าที่ยอมรับได้มีดังนี้
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
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 จะระบุว่าผลการค้นหาควรมีเนื้อหาที่ถูกจำกัด รวมถึงเนื้อหามาตรฐานหรือไม่ค่าที่ยอมรับได้ ได้แก่
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
topicId |
string พารามิเตอร์ topicId ระบุว่าการตอบกลับจาก API ควรมีเฉพาะทรัพยากรที่เชื่อมโยงกับหัวข้อที่ระบุเท่านั้น ค่านี้ระบุรหัสหัวข้อ Freebaseสำคัญ: การเลิกใช้งาน Freebase และ Freebase API ทำให้พารามิเตอร์ topicId เริ่มทำงานต่างออกไปตั้งแต่วันที่ 27 กุมภาพันธ์ 2017 ในตอนนั้น YouTube เริ่มรองรับรหัสหัวข้อที่มีการดูแลจัดการจำนวนหนึ่ง และคุณสามารถใช้ชุดรหัสที่เล็กลงเป็นค่าสำหรับพารามิเตอร์นี้ได้เท่านั้น
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
type |
string พารามิเตอร์ type จะจำกัดคำค้นหาให้ดึงเฉพาะทรัพยากรประเภทหนึ่งๆ เท่านั้น ค่าดังกล่าวเป็นรายการประเภททรัพยากรที่คั่นด้วยคอมมา ค่าเริ่มต้นคือ video,channel,playlist ค่าที่ยอมรับได้มีดังนี้
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
videoCaption |
string พารามิเตอร์ videoCaption จะบ่งบอกว่า API ควรกรองผลการค้นหาวิดีโอตามที่มีคำบรรยายวิดีโอหรือไม่ หากระบุค่าสำหรับพารามิเตอร์นี้ คุณต้องตั้งค่าของพารามิเตอร์ type เป็น video ด้วยค่าที่ยอมรับได้มีดังนี้
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
videoCategoryId |
string พารามิเตอร์ videoCategoryId จะกรองผลการค้นหาวิดีโอตามหมวดหมู่ หากระบุค่าสำหรับพารามิเตอร์นี้ คุณต้องตั้งค่าของพารามิเตอร์ type เป็น video ด้วย |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
videoDefinition |
string พารามิเตอร์ videoDefinition ช่วยให้คุณสามารถจำกัดการค้นหาให้รวมเฉพาะวิดีโอความละเอียดสูง (HD) หรือวิดีโอความละเอียดมาตรฐาน (SD) เท่านั้น วิดีโอความละเอียดสูงจะเล่นได้ที่ความละเอียดอย่างน้อย 720p แต่อาจจะมีความละเอียดสูงกว่า เช่น 1080p ด้วย หากระบุค่าสำหรับพารามิเตอร์นี้ คุณต้องตั้งค่าของพารามิเตอร์ type เป็น video ด้วยค่าที่ยอมรับได้มีดังนี้
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
videoDimension |
string พารามิเตอร์ videoDimension ช่วยให้คุณสามารถจำกัดการค้นหาให้ดึงเฉพาะวิดีโอ 2 มิติหรือ 3 มิติเท่านั้น หากระบุค่าสำหรับพารามิเตอร์นี้ คุณต้องตั้งค่าของพารามิเตอร์ type เป็น video ด้วยค่าที่ยอมรับได้มีดังนี้
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
videoDuration |
string พารามิเตอร์ videoDuration จะกรองผลการค้นหาวิดีโอตามระยะเวลา หากระบุค่าสำหรับพารามิเตอร์นี้ คุณต้องตั้งค่าของพารามิเตอร์ type เป็น video ด้วยค่าที่ยอมรับได้มีดังนี้
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
videoEmbeddable |
string พารามิเตอร์ videoEmbeddable ช่วยให้คุณสามารถจำกัดการค้นหาไว้เฉพาะวิดีโอที่ฝังลงในหน้าเว็บได้ หากระบุค่าสำหรับพารามิเตอร์นี้ คุณต้องตั้งค่าของพารามิเตอร์ type เป็น video ด้วยค่าที่ยอมรับได้มีดังนี้
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
videoLicense |
string พารามิเตอร์ videoLicense จะกรองผลการค้นหาให้รวมเฉพาะวิดีโอที่มีใบอนุญาตหนึ่งๆ เท่านั้น YouTube อนุญาตให้ผู้อัปโหลดวิดีโอเลือกแนบใบอนุญาตครีเอทีฟคอมมอนส์หรือใบอนุญาตมาตรฐานของ YouTube ไว้กับวิดีโอแต่ละรายการ หากระบุค่าสำหรับพารามิเตอร์นี้ คุณต้องตั้งค่าของพารามิเตอร์ type เป็น video ด้วยค่าที่ยอมรับได้มีดังนี้
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
videoPaidProductPlacement |
string พารามิเตอร์ videoPaidProductPlacement จะกรองผลการค้นหาให้รวมเฉพาะวิดีโอที่ครีเอเตอร์ระบุว่ามีการโปรโมตแบบเสียค่าใช้จ่ายเท่านั้น หากระบุค่าสำหรับพารามิเตอร์นี้ คุณต้องตั้งค่าของพารามิเตอร์ type เป็น video ด้วยค่าที่ยอมรับได้มีดังนี้
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
videoSyndicated |
string พารามิเตอร์ videoSyndicated ช่วยให้คุณสามารถจำกัดการค้นหาให้แสดงเฉพาะวิดีโอที่เล่นนอก youtube.com ได้เท่านั้น หากระบุค่าสำหรับพารามิเตอร์นี้ คุณต้องตั้งค่าของพารามิเตอร์ type เป็น video ด้วยค่าที่ยอมรับ ได้แก่
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
videoType |
string พารามิเตอร์ videoType จะช่วยให้คุณจำกัดการค้นหาไว้เฉพาะวิดีโอบางประเภทได้ หากระบุค่าสำหรับพารามิเตอร์นี้ คุณต้องตั้งค่าของพารามิเตอร์ type เป็น video ด้วยค่าที่ยอมรับได้มีดังนี้
|
เนื้อหาของคำขอ
ไม่ต้องระบุเนื้อหาคำขอเมื่อเรียกใช้วิธีการนี้
คำตอบ
หากทำสำเร็จ เมธอดนี้จะแสดงเนื้อหาการตอบสนองที่มีโครงสร้างต่อไปนี้
{
"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 รายการผลการค้นหาที่ตรงกับเกณฑ์การค้นหา |
ตัวอย่าง
หมายเหตุ: ตัวอย่างโค้ดต่อไปนี้อาจไม่ได้แสดงถึงภาษาโปรแกรมที่รองรับทั้งหมด โปรดดูรายการภาษาที่รองรับในเอกสารประกอบของไลบรารีของไคลเอ็นต์
โปรดทราบว่าตัวอย่างนี้จำกัดผลลัพธ์ไว้ที่ 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);
}
}
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")
}
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)));
}
}
}
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 |