لعرض مجموعة من نتائج البحث التي تطابق معلّمات طلب البحث المحدّدة في طلب البيانات من واجهة برمجة التطبيقات. بشكل تلقائي، تحدد مجموعة نتائج البحث الموارد video
وchannel
وplaylist
المطابقة، ولكن يمكنك أيضًا ضبط طلبات البحث لاسترداد نوع معيّن فقط من الموارد.
تأثير الحصة: تبلغ تكلفة المكالمة إلى هذه الطريقة تكلفة عرض الأسعار التي تبلغ 100 وحدة.
حالات الاستخدام الشائعة
الطلب
طلب HTTP
GET https://www.googleapis.com/youtube/v3/search
المَعلمات
يسرد الجدول التالي المعلَمات المتوافقة مع طلب البحث هذا. جميع المعلّمات المدرَجة هي معلَمات طلب بحث.
المَعلمات | ||
---|---|---|
المعلّمات المطلوبة | ||
part |
string تحدِّد المعلّمة part قائمة مفصولة بفواصل لخاصية مورد واحدة أو أكثر في search ستتضمّنها استجابة واجهة برمجة التطبيقات. اضبط قيمة المَعلمة على snippet .
|
|
الفلاتر (حدّد 0 أو 1 من المعلّمات التالية) | ||
forContentOwner |
boolean لا يمكن استخدام هذه المَعلمة إلا في طلب مُعتمَد بشكل صحيح، وهي مخصَّصة حصريًا لشركاء محتوى YouTube. تقتصر المَعلمة forContentOwner على البحث لاسترداد الفيديوهات التي يملكها مالك المحتوى فقط والمحدّدة في مَعلمة onBehalfOfContentOwner . في حال ضبط السياسة forContentOwner على "صحيح"، يجب أن يستوفي الطلب أيضًا المتطلبات التالية:
|
|
forDeveloper |
boolean لا يمكن استخدام هذه المعلّمة إلا في طلب مفوَّض بشكلٍ سليم. تقصِر المعلّمة forDeveloper البحث لاسترداد الفيديوهات التي تم تحميلها باستخدام تطبيق المطوّر أو موقعه الإلكتروني فقط. يستخدم خادم واجهة برمجة التطبيقات بيانات اعتماد التفويض الخاصة بالطلب لتحديد هوية مطوّر البرامج. يمكن استخدام المعلمة forDeveloper مع معلمات البحث الاختيارية مثل المعلمة q .بالنسبة إلى هذه الميزة، يتم وضع علامة تلقائيًا على كل فيديو تم تحميله باستخدام رقم المشروع المرتبط بتطبيق المطوّر في Google Developers Console. عندما يحدد طلب البحث بعد ذلك المعلمة forDeveloper على true ، يستخدم خادم واجهة برمجة التطبيقات بيانات اعتماد التفويض للطلب لتحديد مطوّر البرامج. ولذلك، يمكن لمطوّر البرامج حصر نتائج البحث على الفيديوهات التي يتم تحميلها من خلال التطبيق أو الموقع الإلكتروني الخاص بالمطوّر، وليس الفيديوهات التي يتم تحميلها من خلال تطبيقات أو مواقع إلكترونية أخرى. |
|
forMine |
boolean لا يمكن استخدام هذه المعلّمة إلا في طلب مفوَّض بشكلٍ سليم. تقيّد المعلمة forMine البحث لاسترداد الفيديوهات التي يملكها المستخدم الذي تمت المصادقة عليه فقط. في حال ضبط هذه المَعلمة على true ، يجب أيضًا ضبط قيمة المَعلمة type على video . بالإضافة إلى ذلك، لا يمكن ضبط أي من المعلّمات الأخرى التالية في الطلب نفسه: videoDefinition وvideoDimension وvideoDuration وvideoEmbeddable وvideoLicense وvideoPaidProductPlacement وvideoSyndicated وvideoType . |
|
المعلّمات الاختيارية | ||
channelId |
string تشير المَعلمة channelId إلى أنّ استجابة واجهة برمجة التطبيقات يجب أن تحتوي فقط على موارد أنشأتها القناة. ملاحظة: تقتصر نتائج البحث على 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 . لا تتيح واجهة برمجة التطبيقات قيم معلَمات locationRadius التي تزيد عن 1000 كيلومتر.ملاحظة: اطّلِع على تعريف المعلَمة location لمزيد من المعلومات. |
|
maxResults |
unsigned integer تحدِّد المعلّمة maxResults الحد الأقصى لعدد العناصر التي يجب عرضها في مجموعة النتائج. القيم المقبولة هي 0 إلى 50 ، بما يشمل هذين الرقمين. ستكون القيمة التلقائية 5 . |
|
onBehalfOfContentOwner |
string لا يمكن استخدام هذه المعلّمة إلا في طلب مفوَّض بشكلٍ سليم. ملاحظة: إنّ هذه المَعلمة مخصّصة حصريًا لشركاء المحتوى في YouTube. تشير المَعلمة onBehalfOfContentOwner إلى أنّ بيانات اعتماد التفويض الخاصة بالطلب تحدّد مستخدمًا في "نظام إدارة المحتوى" (CMS) على YouTube يتصرف نيابةً عن مالك المحتوى المحدّد في قيمة المَعلمة. هذه المعلّمة مخصّصة لشركاء المحتوى في YouTube الذين يملكون ويديرون العديد من قنوات YouTube المختلفة. فهي تتيح لمالكي المحتوى المصادقة مرة واحدة والوصول إلى كل بيانات القناة والفيديوهات بدون الحاجة إلى تقديم بيانات اعتماد للمصادقة لكل قناة على حدة. يجب أن يكون حساب CMS الذي يصادق المستخدم عليه مرتبطًا بمالك المحتوى المحدد على YouTube. |
|
order |
string تحدِّد المعلّمة order الطريقة التي سيتم استخدامها لطلب الموارد في استجابة واجهة برمجة التطبيقات. القيمة التلقائية هي relevance .القيم المقبولة هي:
|
|
pageToken |
string تحدِّد المعلّمة pageToken صفحة معيّنة في مجموعة النتائج التي يجب عرضها. في استجابة واجهة برمجة التطبيقات، تحدّد السمتان nextPageToken وprevPageToken صفحات أخرى يمكن استردادها. |
|
publishedAfter |
datetime تشير المعلمة publishedAfter إلى أن استجابة واجهة برمجة التطبيقات يجب أن تحتوي فقط على موارد تم إنشاؤها في الوقت المحدد أو بعده. تكون القيمة هي قيمة التاريخ والوقت بتنسيق RFC 3339 (1970 -01-01T00:00:00Z). |
|
publishedBefore |
datetime تشير المعلَمة publishedBefore إلى أن استجابة واجهة برمجة التطبيقات يجب أن تحتوي فقط على موارد تم إنشاؤها قبل أو في الوقت المحدّد. تكون القيمة هي قيمة التاريخ والوقت بتنسيق RFC 3339 (1970 -01-01T00:00:00Z). |
|
q |
string تحدِّد المعلّمة q عبارة البحث للبحث عنها.يمكن أن يستخدم طلبك أيضًا عاملَي التشغيل المنطقيَين ( - ) و(أو) (| ) لاستبعاد الفيديوهات أو للعثور على فيديوهات مرتبطة بأحد عبارات البحث المتعددة. على سبيل المثال، للبحث عن الفيديوهات التي تطابق "قارب" أو "إبحار"، اضبط قيمة مَعلمة q على boating|sailing . وبالمثل، للبحث عن فيديوهات تطابق "قارب" أو "إبحار" وليس "صيد الأسماك"، اضبط قيمة المعلَمة q على boating|sailing -fishing . يُرجى العِلم أنّه يجب تخطي حرف عنوان URL في عنوان URL عند إرساله في طلب البيانات من واجهة برمجة التطبيقات. وتكون القيمة التي تم تجاوزها من خلال عنوان URL لحرف العمود هي %7C . |
|
regionCode |
string تُعلِم المعلّمة regionCode واجهة برمجة التطبيقات بعرض نتائج البحث عن الفيديوهات التي يمكن عرضها في البلد المحدّد. قيمة المَعلمة هي رمز بلد بتنسيق ISO 3166-1 alpha-2. |
|
relevanceLanguage |
string تُعلِم المعلَمة relevanceLanguage واجهة برمجة التطبيقات بعرض نتائج البحث الأكثر صلة باللغة المحدّدة. تكون قيمة المَعلمة عادةً رمز لغة مكوّن من حرفَين وفقًا لمعيار ISO 639-1. ومع ذلك، عليك استخدام القيم zh-Hans للغة الصينية المبسَّطة وzh-Hant للغة الصينية التقليدية. يُرجى العِلم أنّ النتائج التي يتم عرضها بلغات أخرى ستظل معروضة إذا كانت وثيقة الصلة بعبارة طلب البحث. |
|
safeSearch |
string تشير المَعلمة safeSearch إلى ما إذا كانت نتائج البحث يجب أن تتضمّن محتوى محظورًا بالإضافة إلى المحتوى العادي.القيم المقبولة هي:
|
|
topicId |
string تشير المعلمة topicId إلى أن استجابة واجهة برمجة التطبيقات يجب أن تحتوي فقط على موارد مرتبطة بالموضوع المحدّد. تعرَّف القيمة على رقم تعريف موضوع Freebase.ملاحظة مهمة: بسبب إيقاف Freebase وواجهة برمجة تطبيقات Freebase، بدأت المعلَمة topicId بالعمل بشكل مختلف اعتبارًا من 27 شباط (فبراير) 2017. في ذلك الوقت، بدأ YouTube في دعم مجموعة صغيرة من أرقام تعريف المواضيع المنظمة، ويمكنك فقط استخدام هذه المجموعة الأصغر من أرقام التعريف كقيم لهذه المعلّمة. |
|
type |
string تحدِّد المعلّمة type طلب بحث لاسترداد نوع معيّن فقط من الموارد. تكون القيمة عبارة عن قائمة مفصولة بفواصل من أنواع الموارد. القيمة التلقائية هي video,channel,playlist .القيم المقبولة هي:
|
|
videoCaption |
string تشير المَعلمة videoCaption إلى ما إذا كان يجب على واجهة برمجة التطبيقات فلترة نتائج البحث عن الفيديو استنادًا إلى ما إذا كانت تتضمّن ترجمة. وإذا حدَّدت قيمة لهذه المَعلمة، عليك أيضًا ضبط قيمة المَعلمة type على video .القيم المقبولة هي:
|
|
videoCategoryId |
string تعمل المَعلمة videoCategoryId على فلترة نتائج البحث عن الفيديو استنادًا إلى فئتها. وإذا حدَّدت قيمة لهذه المَعلمة، عليك أيضًا ضبط قيمة المَعلمة type على video . |
|
videoDefinition |
string تتيح لك المَعلمة videoDefinition حصر البحث على الفيديوهات ذات الدقة العالية أو الدقة العادية فقط. يمكن تشغيل الفيديوهات العالية الدقة بدقة 720p على الأقل، ولكن قد تكون خيارات الدقة العالية، مثل 1080p، متوفّرة أيضًا. وإذا حدَّدت قيمة لهذه المَعلمة، عليك أيضًا ضبط قيمة المَعلمة type على video .القيم المقبولة هي:
|
|
videoDimension |
string تسمح لك المَعلمة videoDimension بتقييد عملية البحث لعرض فيديوهات ثنائية الأبعاد أو ثلاثية الأبعاد فقط. وإذا حدَّدت قيمة لهذه المَعلمة، عليك أيضًا ضبط قيمة المَعلمة 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 يحدّد نوع مورد واجهة برمجة التطبيقات. وستكون القيمة 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 عدد النتائج المضمّنة في استجابة واجهة برمجة التطبيقات |
items[] |
list قائمة النتائج التي تتطابق مع معايير البحث. |
أمثلة
ملاحظة: قد لا تمثّل عيّنات الرموز التالية جميع لغات البرمجة المتوافقة. يمكنك الاطّلاع على مستندات مكتبات العميل للحصول على قائمة باللغات المتاحة.
برمجة تطبيقات
تبحث هذه الدالة عن فيديوهات ذات صلة بالكلمة الرئيسية "كلاب". يتم تسجيل معرّفات الفيديوهات وعناوين نتائج البحث في سجلّ "برمجة تطبيقات Google".يُرجى العِلم أنّ هذا النموذج يقتصر على 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
الخاصة بواجهة برمجة التطبيقات لاسترداد نتائج البحث المرتبطة بكلمة رئيسية معيّنة.
يستخدم هذا المثال مكتبة برامج 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
لواجهة برمجة التطبيقات لاسترداد نتائج البحث المرتبطة بكلمة رئيسية معيّنة.
يستخدم هذا المثال مكتبة برامج 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
الخاصة بواجهة برمجة التطبيقات لاسترداد نتائج البحث المرتبطة بكلمة رئيسية معيّنة.
يستخدم هذا المثال مكتبة برامج 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
الأخطاء
يحدد الجدول التالي رسائل الخطأ التي يمكن أن تعرضها واجهة برمجة التطبيقات استجابةً لاستدعاء هذه الطريقة. ويُرجى الاطّلاع على وثائق رسالة الخطأ لمزيد من التفاصيل.
نوع الخطأ | تفاصيل الخطأ | الوصف |
---|---|---|
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 لاستدعاء واجهة برمجة التطبيقات هذه والاطّلاع على طلب البيانات من واجهة برمجة التطبيقات والرد عليها.