Search: list

מחזירה אוסף של תוצאות חיפוש שתואמות לפרמטרים של השאילתה שצוינו בבקשת ה-API. כברירת מחדל, קבוצת תוצאות חיפוש מזהה התאמה של משאבים video, channel ו-playlist, אבל ניתן גם להגדיר שאילתות כך שיאחזרו רק סוג ספציפי של משאב.

ההשפעה של המכסה: קריאה לשיטה הזו כוללת עלות מכסה של 100 יחידות.

תרחישים נפוצים לדוגמה

בקשה

בקשת HTTP

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

פרמטרים

בטבלה הבאה מפורטים הפרמטרים שהשאילתה הזו תומכת בהם. כל הפרמטרים המפורטים הם פרמטרים של שאילתות.

פרמטרים
הפרמטרים הנדרשים
part string
הפרמטר part מציין רשימה מופרדת בפסיקים של מאפייני משאב search אחד או יותר שייכללו בתגובת ה-API. מגדירים את ערך הפרמטר כ-snippet.
מסננים (יש לציין 0 או 1 מהפרמטרים הבאים)
forContentOwner boolean
ניתן להשתמש בפרמטר הזה רק במסגרת בקשה מורשית, והוא מיועד אך ורק לשותפי תוכן של YouTube.

הפרמטר forContentOwner מגביל את החיפוש כך שיתבצע אחזור רק של סרטונים שנמצאים בבעלות בעלי התוכן שזוהו על ידי הפרמטר onBehalfOfContentOwner. אם המדיניות forContentOwner מוגדרת כ-True, הבקשה חייבת לעמוד גם בדרישות הבאות:
  • הפרמטר onBehalfOfContentOwner נדרש.
  • המשתמש שמאשר את הבקשה חייב להשתמש בחשבון שמקושר לבעלי התוכן שצוינו.
  • ערך הפרמטר type חייב להיות מוגדר ל-video.
  • לא ניתן להגדיר אף אחד מהפרמטרים האחרים הבאים: videoDefinition, videoDimension, videoDuration, videoEmbeddable, videoLicense, videoPaidProductPlacement, videoSyndicated, videoType.
forDeveloper boolean
ניתן להשתמש בפרמטר הזה רק במסגרת בקשה מורשית תקינה. הפרמטר forDeveloper מגביל את החיפוש כך שאפשר יהיה לאחזר רק סרטונים שהועלו דרך האפליקציה או האתר של המפתח. שרת ה-API משתמש בפרטי הכניסה של ההרשאה של הבקשה כדי לזהות את המפתח. אפשר להשתמש בפרמטר forDeveloper בשילוב עם פרמטרים אופציונליים של חיפוש, כמו הפרמטר q.

כשמשתמשים בתכונה הזו, כל סרטון שהועלה מתויג באופן אוטומטי עם מספר הפרויקט שמשויך לאפליקציה של המפתח במסוף Google Developers.

כשבקשת חיפוש מגדירה לאחר מכן את הפרמטר 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
בשילוב עם הפרמטר location, הפרמטר locationRadius מגדיר אזור גיאוגרפי מעגלי.

ערך הפרמטר צריך להיות מספר נקודה צפה (floating-point) ואחריו יחידת מידה. יחידות המידה החוקיות הן 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 (|) כדי להחריג סרטונים או כדי למצוא סרטונים שמשויכים לאחד ממונחי החיפוש השונים. לדוגמה: כדי לחפש סרטונים שתואמים ל-"boating" או ל-"sailing", צריך להגדיר את ערך הפרמטר q ל-boating|sailing. באופן דומה, כדי לחפש סרטונים שתואמים למונח 'שייט' או ל'שיט' אבל לא ל'דיג', צריך להגדיר את ערך הפרמטר q ל-boating|sailing -fishing. הערה: צריך לסמן את תו קו ה-URL בתו בריחה (escape) כשהוא נשלח בבקשת ה-API. ערך ה-URL שמסומן בתו בריחה (escape) של תו קו אנכי הוא %7C.
regionCode string
הפרמטר regionCode מורה ל-API להחזיר תוצאות חיפוש של סרטונים שניתן לצפות בהם במדינה שצוינה. ערך הפרמטר הוא קוד מדינה לפי תקן ISO 3166-1 alpha-2.
relevanceLanguage string
הפרמטר relevanceLanguage מורה ל-API להחזיר את תוצאות החיפוש הרלוונטיות ביותר לשפה שצוינה. ערך הפרמטר הוא בדרך כלל קוד שפה בן שתי אותיות לפי תקן ISO 639-1. עם זאת, יש להשתמש בערכים 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). סרטונים באיכות HD זמינים להפעלה באיכות של לפחות 720p, אבל גם רזולוציות גבוהות יותר, כמו 1080p, עשויות להיות זמינות. אם מציינים ערך לפרמטר הזה, צריך גם להגדיר את ערך הפרמטר type ל-video.

הערכים הקבילים הם:
  • any – החזרת כל הסרטונים, בלי קשר לרזולוציה שלהם.
  • high – אחזור סרטונים באיכות HD בלבד.
  • standard – אחזור סרטונים באיכות רגילה בלבד.
videoDimension string
הפרמטר videoDimension מאפשר להגביל חיפוש לאחזור רק סרטונים בדו-ממד או בתלת-ממד. אם מציינים ערך לפרמטר הזה, צריך גם להגדיר את ערך הפרמטר type ל-video.

הערכים הקבילים הם:
  • 2d – הגבלת תוצאות החיפוש כך שלא יוצגו סרטונים בתלת-ממד.
  • 3d – הגבלת תוצאות החיפוש כך שיכללו רק סרטונים בתלת-ממד.
  • any – שלבו גם סרטונים בתלת-ממד וגם סרטונים שאינם תלת-ממד בתוצאות. זהו ערך ברירת המחדל.
videoDuration string
הפרמטר videoDuration מסנן תוצאות חיפוש של סרטונים לפי משך הזמן שלהן. אם מציינים ערך לפרמטר הזה, צריך גם להגדיר את ערך הפרמטר type ל-video.

הערכים הקבילים הם:
  • any – אין לסנן תוצאות חיפוש של סרטונים על סמך משך הזמן שלהם. זהו ערך ברירת המחדל.
  • long – אפשר לכלול רק סרטונים שאורכם יותר מ-20 דקות.
  • medium – יש לכלול רק סרטונים שאורכם בין ארבע ל-20 דקות (כולל).
  • short – יש לכלול רק סרטונים שאורכם פחות מארבע דקות.
videoEmbeddable string
הפרמטר videoEmbeddable מאפשר להגביל את החיפוש רק לסרטונים שאפשר להטמיע בדף אינטרנט. אם מציינים ערך לפרמטר הזה, צריך גם להגדיר את ערך הפרמטר type ל-video.

הערכים הקבילים הם:
  • any – החזרת כל הסרטונים, ניתנים להטמעה או לא.
  • true – אחזור סרטונים מוטמעים בלבד.
videoLicense string
הפרמטר videoLicense מסנן את תוצאות החיפוש כך שיכללו רק סרטונים עם רישיון מסוים. YouTube מאפשר למעלי סרטונים לבחור לצרף את רישיון Creative Commons או את רישיון YouTube הסטנדרטי לכל אחד מהסרטונים שלהם. אם מציינים ערך לפרמטר הזה, צריך גם להגדיר את ערך הפרמטר type ל-video.

הערכים הקבילים הם:
  • any – החזרת כל הסרטונים שתואמים לפרמטרים של השאילתה, ללא קשר לרישיון שלהם.
  • creativeCommon – החזרת סרטונים בעלי רישיון Creative Commons בלבד. המשתמשים יכולים לעשות שימוש חוזר בסרטונים עם הרישיון הזה בסרטונים אחרים שהם יוצרים. מידע נוסף
  • 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
ה-e של המשאב הזה.
nextPageToken string
האסימון שיכול לשמש כערך של הפרמטר pageToken כדי לאחזר את הדף הבא בקבוצת התוצאות.
prevPageToken string
האסימון שיכול לשמש כערך הפרמטר pageToken כדי לאחזר את הדף הקודם בקבוצת התוצאות.
regionCode string
קוד האזור שבו נעשה שימוש בשאילתת החיפוש. ערך המאפיין הוא קוד מדינה בן שתי אותיות לפי תקן ISO, שמזהה את האזור. השיטה 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.