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 רבים. היא מאפשרת לבעלי תוכן לבצע אימות פעם אחת ולקבל גישה לכל נתוני הסרטונים והערוצים שלהם, ללא צורך לספק פרטי כניסה לאימות לכל ערוץ בנפרד. חשבון מערכת ניהול התוכן שאיתו המשתמש מבצע אימות חייב להיות מקושר לבעלי התוכן שציינתם ב-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. שימו לב שהמאפיין 'קו ניצב' חייב להכיל תו בריחה (escape) בכתובת ה-URL כשהוא נשלח בבקשת ה-API. ערך הבריחה של כתובת ה-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 או באיכות רגילה. סרטוני 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 – הכללה רק של סרטונים באורך של פחות מ-4 דקות.
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
ה-Etag של המשאב הזה.
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

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

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

סוג השגיאה פרטי השגיאה תיאור
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.