عرض مجموعة من نتائج البحث التي تتطابق مع مَعلمات طلب البحث المحدّدة في طلب البيانات من واجهة برمجة التطبيقات. تحدِّد مجموعة نتائج البحث تلقائيًا موارد 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 إلى أنّ استجابة واجهة برمجة التطبيقات يجب أن تحتوي فقط على الموارد التي أنشأتها القناة. ملاحظة: في حال تحديد قيمة المعلَمة channelId أو ضبط قيمة المعلَمة type على video ، يتم أيضًا تقييد نتائج البحث بـ 500 فيديو كحدّ أقصى إذا كان طلبك لا يضبط أحد فلاتر 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 التي يزيد حجمها عن 1,000 كيلومتر.ملاحظة: يُرجى الاطّلاع على تعريف المَعلمة location لمعرفة مزيد من المعلومات. |
|
maxResults |
unsigned integer تحدّد المعلَمة maxResults الحدّ الأقصى لعدد العناصر التي يجب عرضها في مجموعة النتائج. تتراوح القيم المقبولة بين 0 و50 ، بما في ذلك القيم الواقعة بينهما. القيمة التلقائية هي 5 . |
|
onBehalfOfContentOwner |
string لا يمكن استخدام هذه المَعلمة إلا في طلب معتمد بشكل صحيح. ملاحظة: هذه المَعلمة مخصّصة حصريًا لشركاء المحتوى في YouTube. تشير المَعلمة onBehalfOfContentOwner إلى أنّ بيانات اعتماد التفويض الخاصة بالطلب تحدِّد مستخدم نظام "إدارة محتوى YouTube" الذي يتصرّف نيابةً عن مالك المحتوى المحدَّد في قيمة المَعلمة. هذه المعلمة مخصصة لشركاء المحتوى في YouTube الذين يملكون العديد من القنوات المختلفة على YouTube ويديرونها. يسمح هذا البرنامج لمالكي المحتوى بالمصادقة مرة واحدة والوصول إلى جميع بيانات القنوات والفيديوهات الخاصة بهم، بدون الحاجة إلى تقديم بيانات اعتماد مصادقة لكل قناة على حدة. يجب أن يكون حساب نظام إدارة المحتوى الذي يصادقه المستخدم مرتبطًا بمالك المحتوى المحدد على 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 عبارة طلب البحث المطلوب البحث عنها.ويمكن أن يستخدم طلبك أيضًا عاملَي التشغيل المنطقي NOT ( - ) وOR (| ) لاستبعاد فيديوهات أو للعثور على فيديوهات مرتبطة بإحدى عبارات البحث المتعددة. على سبيل المثال، للبحث عن فيديوهات تتطابق مع كلمة "قارب" أو "إبحار"، اضبط قيمة المعلَمة q على boating|sailing . وبالمثل، للبحث عن فيديوهات تتطابق مع كلمة "قارب" أو "إبحار" ولكن ليس مع "صيد الأسماك"، اضبط قيمة المعلَمة q على boating|sailing -fishing . تجدر الإشارة إلى أنّه يجب تخطي عنوان 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 API، بدأت المعلّمة topicId في العمل بشكل مختلف اعتبارًا من 27 شباط (فبراير) 2017. آنذاك، بدأت منصة YouTube في إتاحة مجموعة صغيرة من معرّفات المواضيع المنظّمة، ولا يمكنك استخدام سوى تلك المجموعة الأصغر حجمًا من أرقام التعريف كقيم لهذه المَعلمة. |
|
type |
string تفرض المَعلمة type قيودًا على طلب البحث لاسترداد نوع معيّن من الموارد فقط. تكون القيمة عبارة عن قائمة مفصولة بفواصل من أنواع الموارد. القيمة التلقائية هي video,channel,playlist .القيم المقبولة هي:
|
|
videoCaption |
string تحدّد المعلَمة videoCaption ما إذا كان يجب على واجهة برمجة التطبيقات فلترة نتائج بحث الفيديو استنادًا إلى ما إذا كانت تتضمن ترجمة. في حال تحديد قيمة لهذه المَعلمة، عليك أيضًا ضبط قيمة المعلَمة type على video .القيم المقبولة هي:
|
|
videoCategoryId |
string تعمل المَعلمة videoCategoryId على فلترة نتائج البحث عن الفيديو استنادًا إلى فئتها. إذا حدّدت قيمة لهذه المَعلمة، عليك أيضًا ضبط قيمة المعلَمة type على video . |
|
videoDefinition |
string تتيح لك المَعلمة videoDefinition حصر عملية البحث بحيث تتضمّن فقط فيديوهات ذات دقة عالية (HD) أو فيديوهات ذات دقة عادية (SD). يمكن تشغيل الفيديوهات العالية الدقة بدقة 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 علامة هذا المرجع. |
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 |
يحتوي الطلب على تركيبة غير صالحة من فلاتر البحث و/أو القيود. في حال ضبط المَعلمة forContentOwner أو forMine على true ، يجب ضبط المَعلمة type على video . يجب أيضًا ضبط المَعلمة type على video في حال ضبط قيمة للمَعلمات eventType أو videoCaption أو videoCategoryId أو videoDefinition أو videoDimension أو videoDuration أو videoEmbeddable أو videoLicense أو videoSyndicated أو videoType . |
تجربة
يمكنك استخدام APIs Explorer لطلب بيانات من واجهة برمجة التطبيقات هذه والاطّلاع على طلب البيانات من واجهة برمجة التطبيقات والاستجابة لها.