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 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, מגדיר אזור גיאוגרפי מעגלי.

ערך הפרמטר חייב להיות מספר נקודה צפה (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 – המשאבים ממוינים בסדר כרונולוגי הפוך לפי תאריך היצירה שלהם. הערה: התהליך הזה מסתמך על אינדקס החיפוש, ולכן יכול להיות שיהיו עיכובים בהוספת תוכן חדש לאינדקס או שתקבלו קבוצות תוצאות חלקיות. כדי לאחזר באופן מהימן את הסרטונים שהועלו לאחרונה לערוץ, אל תשתמשו ב-search.list. במקום זאת, צריך להשתמש ב-method‏ playlistItems.list כדי לאחזר את פלייליסט ההעלאות של הערוץ.
  • ‫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. באופן דומה, כדי לחפש סרטונים שתואמים לערך boating או לערך sailing, אבל לא לערך fishing, מגדירים את ערך הפרמטר q ל-boating|sailing -fishing. שימו לב: כששולחים את תו הקו האנכי בבקשת ה-API, צריך להוסיף לו תו בריחה (escape) של כתובת URL. הערך של התו '|' אחרי ביצוע escape ל-URL הוא %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 – כוללים רק סרטונים באורך של 4 עד 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 – אחזור של סרטים בלבד.

גוף הבקשה

כשמפעילים את ה-method הזו, לא צריך לספק גוף בקשה.

תשובה

אם הפעולה בוצעה ללא שגיאות, ה-method מחזירה גוף תגובה במבנה הבא:

{
  "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 שמזהה את האזור. ה-method‏ 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/data/reference/rest/v3/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

דוגמת הקוד הזו קוראת ל-method‏ 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

דוגמת הקוד הבאה קוראת ל-method‏ 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

בדוגמה הזו מתבצעת קריאה ל-method‏ 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 יכול להחזיר בתגובה לקריאה ל-method הזה. פרטים נוספים זמינים במסמכי התיעוד של הודעת השגיאה.

סוג השגיאה פרטי השגיאה תיאור
badRequest (400) invalidChannelId הפרמטר channelId ציין מזהה ערוץ לא תקין.
badRequest (400) invalidLocation הפורמט של ערך הפרמטר location או locationRadius שגוי.
badRequest (400) invalidRelevanceLanguage הפורמט של ערך הפרמטר relevanceLanguage שגוי.
badRequest (400) invalidSearchFilter הבקשה מכילה שילוב לא חוקי של מסנני חיפוש או הגבלות. הערה: אם מגדירים את הפרמטרים forContentOwner או forMine לערך true, צריך להגדיר את הפרמטר type לערך video. אם מגדירים ערך לפרמטרים eventType, ‏ videoCaption, ‏ videoCategoryId, ‏ videoDefinition, ‏ videoDimension, ‏ videoDuration, ‏ videoEmbeddable, ‏ videoLicense, ‏ videoSyndicated או videoType, צריך להגדיר גם את הפרמטר type לערך video.

רוצה לנסות?

משתמשים ב-APIs Explorer כדי לשלוח קריאה ל-API הזה ולראות את בקשת ה-API והתגובה.