Search: list

مجموعه‌ای از نتایج جستجو را برمی‌گرداند که با پارامترهای پُرسمان مشخص‌شده در درخواست API مطابقت دارند. به‌طور پیش‌فرض، مجموعه نتایج جستجو منابع video، channel، و playlist منطبق را شناسایی می‌کند، اما می‌توانید پُرسمان‌ها را نیز پیکربندی کنید تا فقط نوع خاصی از منبع را بازیابی کنند.

تأثیر سهمیه: ۱۰۰ تماس در روز. فراخوانی این روش دارای هزینه سهمیه ۱ واحد در سطل سهمیه «پرسمان‌های جستجو» است.

موارد استفاده رایج

درخواست

درخواست HTTP

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

پارامترها

جدول زیر پارامترهایی را که این پُرسمان پشتیبانی می‌کند فهرست می‌کند. همه پارامترهای فهرست‌شده پارامترهای پُرسمان هستند.

پارامترها
پارامترهای الزامی
part string
پارامتر part فهرستی جداشده با کاما از یک یا چند ویژگی منبع search را مشخص می‌کند که پاسخ میانای برنامه‌سازی کاربردی شامل آن خواهد بود. مقدار پارامتر را روی snippet تنظیم کنید.
فیلترها (۰ یا ۱ مورد از پارامترهای زیر را مشخص کنید)
forContentOwner boolean
این پارامتر فقط در درخواست مجاز مناسب قابل‌استفاده است و منحصراً برای شرکای محتوای YouTube درنظر گرفته شده است.

پارامتر forContentOwner جستجو را محدود می‌کند تا فقط ویدیوهای متعلق به مالک محتوا را که با پارامتر onBehalfOfContentOwner شناسایی شده است بازیابی کند. اگر forContentOwner روی درست تنظیم شده باشد، درخواست باید این الزامات را نیز برآورده کند:
  • پارامتر onBehalfOfContentOwner الزامی است.
  • کاربری که درخواست را مجاز می‌کند باید از حسابی استفاده کند که به مالک محتوای مشخص‌شده پیوند شده است.
  • مقدار پارامتر type باید روی video تنظیم شود.
  • هیچ‌کدام از پارامترهای دیگر زیر را نمی‌توان تنظیم کرد: videoDefinition، videoDimension، videoDuration، videoEmbeddable، videoLicense، videoPaidProductPlacement، videoSyndicated، videoType.
forDeveloper boolean
از این پارامتر فقط می‌توان در درخواست مجاز مناسب استفاده کرد. پارامتر forDeveloper جستجو را محدود می‌کند تا فقط ویدیوهای بارگذاری‌شده ازطریق وب‌سایت یا برنامه توسعه‌دهنده را بازیابی کند. سرور میانای برنامه‌سازی کاربردی از اطلاعات اعتباری مجوز درخواست برای شناسایی توسعه‌دهنده استفاده می‌کند. از پارامتر 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 نشان می‌دهد که پاسخ میانای برنامه‌سازی کاربردی باید فقط حاوی منابع ایجادشده توسط کانال باشد.

توجه: اگر درخواست شما مقدار پارامتر 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 حداکثر فاصله‌ای را مشخص می‌کند که مکان مرتبط با ویدیو می‌تواند از آن نقطه داشته باشد تا ویدیو همچنان در نتایج جستجو گنجانده شود.
اگر درخواست شما مقداری را برای پارامتر location مشخص کند اما مقداری را برای پارامتر locationRadius مشخص نکند، API خطایی را برمی‌گرداند.

توجه: اگر مقداری را برای این پارامتر مشخص کنید، باید مقدار پارامتر type را نیز روی video تنظیم کنید.
locationRadius string
پارامتر locationRadius، در ترکیب با پارامتر location، یک منطقه جغرافیایی دایره‌ای را تعریف می‌کند.

مقدار پارامتر باید یک عدد ممیز شناور باشد که به‌دنبال آن یک واحد اندازه‌گیری آمده است. واحدهای اندازه‌گیری معتبر عبارت‌اند از m، km، ft، و mi. برای مثال، مقادیر معتبر پارامتر شامل 1500m،‏ 5km،‏ 10000ft، و 0.75mi است. این «میانای برنامه‌سازی کاربردی» از مقادیر پارامتر locationRadius بزرگ‌تر از ۱۰۰۰ کیلومتر پشتیبانی نمی‌کند.

توجه: برای اطلاعات بیشتر، تعریف پارامتر location را ببینید.
maxResults unsigned integer
پارامتر maxResults حداکثر تعداد مواردی را که باید در مجموعه نتایج برگردانده شود مشخص می‌کند. مقادیر پذیرفتنی از 0 تا 50 است. مقدار پیش‌فرض 5 است.

onBehalfOfContentOwner string
این پارامتر فقط در درخواست‌های مجاز قابل‌استفاده است. توجه: این پارامتر منحصراً برای شرکای محتوای YouTube درنظر گرفته شده است.

پارامتر onBehalfOfContentOwner نشان می‌دهد که اطلاعات اعتباری مجوز درخواست، کاربر «سیستم مدیریت محتوای YouTube» را که ازطرف مالک محتوای مشخص‌شده در مقدار پارامتر عمل می‌کند شناسایی می‌کند. این پارامتر برای شرکای محتوای YouTube است که مالک و مدیر کانال‌های مختلف YouTube هستند. این ویژگی به مالکان محتوا اجازه می‌دهد یک‌بار اصالت‌سنجی کنند و به همه داده‌های ویدیو و کانال خود دسترسی پیدا کنند، بدون اینکه نیاز باشد برای هر کانال به‌طور جداگانه اعتبارنامه‌های اصالت‌سنجی ارائه دهند. حساب CMS که کاربر با آن اصالت‌سنجی می‌کند باید به مالک محتوای YouTube مشخص‌شده پیوند داده شده باشد.
order string
پارامتر order روشی را که برای مرتب کردن منابع در پاسخ API استفاده می‌شود مشخص می‌کند. مقدار پیش‌فرض relevance است.

مقادیر پذیرفتنی عبارت‌اند از:
  • date – منابع براساس تاریخ ایجادشان به‌ترتیب زمانی معکوس مرتب شده‌اند. توجه: چون این ویژگی به نمایه جستجو متکی است، ممکن است برای محتوای جدید با تأخیر در نمایه‌سازی مواجه شوید یا مجموعه‌های نتایج ناقص دریافت کنید. برای بازیابی مطمئن ویدیوهایی که اخیراً در کانال بارگذاری شده‌اند، از search.list استفاده نکنید. درعوض، از روش playlistItems.list برای واکشی فهرست پخش بارگذاری‌های کانال استفاده کنید.
  • rating – منابع از بالاترین به پایین‌ترین رده‌بندی مرتب شده‌اند. توجه: این رده‌بندی بااستفاده از امتیاز الگوریتمی داخلی محاسبه می‌شود و دقیقاً معادل تعداد پسندیدن‌های نزولی نیست.
  • relevance – منابع براساس میزان ارتباطشان با پُرسمان جستجو مرتب شده‌اند. این مقدار پیش‌فرض برای این پارامتر است.
  • title – منابع براساس عنوان به‌ترتیب حروف الفبا مرتب می‌شوند.
  • videoCount – کانال‌ها به‌ترتیب نزولی براساس تعداد ویدیوهای بارگذاری‌شده‌شان مرتب شده‌اند.
  • viewCount – منابع از بیشترین تا کمترین تعداد بازدید مرتب شده‌اند. برای همه‌فرستی‌های زنده، ویدیوها براساس تعداد بینندگان همزمان درحالی‌که همه‌فرستی‌ها درحال انجام است مرتب می‌شوند.
pageToken string
پارامتر pageToken صفحه خاصی را در مجموعه نتایج شناسایی می‌کند که باید برگردانده شود. در پاسخ API، ویژگی‌های 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 برای نویسه خط عمودی %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 نشان می‌دهد که پاسخ میانای برنامه‌سازی کاربردی باید فقط حاوی منابع مرتبط با موضوع مشخص‌شده باشد. این مقدار شناسه موضوع Freebase را مشخص می‌کند.

مهم: به‌دلیل منسوخ شدن Freebase و Freebase API، پارامتر topicId از تاریخ ۲۷ فوریه ۲۰۱۷ به‌صورت متفاوتی عمل می‌کند. در آن زمان، 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 برای بازپخش با حداقل کیفیت ۷۲۰ پیکسل دردسترس هستند، هرچند وضوح‌های بالاتر، مانند ۱۰۸۰ پیکسل، نیز ممکن است دردسترس باشند. اگر مقداری را برای این پارامتر مشخص می‌کنید، باید مقدار پارامتر type را نیز روی video تنظیم کنید.

مقادیر قابل‌قبول عبارت‌اند از:
  • any – همه ویدیوها را صرف‌نظر از وضوحشان برمی‌گرداند.
  • high – فقط ویدیوهای HD را بازیابی می‌کند.
  • standard – فقط ویدیوها را با وضوح استاندارد بازیابی کنید.
videoDimension string
پارامتر videoDimension به شما امکان می‌دهد جستجو را محدود کنید تا فقط ویدیوهای دوبعدی یا سه‌بعدی بازیابی شوند. اگر مقداری برای این پارامتر مشخص کنید، باید مقدار پارامتر type را نیز روی video تنظیم کنید.

مقادیر قابل‌قبول عبارت‌اند از:
  • 2d – نتایج جستجو را محدود می‌کند تا ویدیوهای سه‌بعدی را شامل نشود.
  • 3d – نتایج جستجو را محدود کنید تا فقط شامل ویدیوهای سه‌بعدی شود.
  • any – ویدیوهای سه‌بعدی و غیرسه‌بعدی را در نتایج برگردانده‌شده بگنجانید. این مقدار پیش‌فرض است.
videoDuration string
پارامتر videoDuration نتایج جستجوی ویدیو را براساس مدت زمان آن‌ها فیلتر می‌کند. اگر مقداری برای این پارامتر مشخص می‌کنید، باید مقدار پارامتر type را نیز روی video تنظیم کنید.

مقادیر قابل‌قبول عبارت‌اند از:
  • any – نتایج جستجوی ویدیو براساس مدت زمان آن‌ها فیلتر نمی‌شود. این مقدار پیش‌فرض است.
  • long – فقط ویدیوهای طولانی‌تر از ۲۰ دقیقه را اضافه کنید.
  • medium – فقط ویدیوهایی را اضافه کنید که بین چهار تا ۲۰ دقیقه (شامل این دو عدد) باشند.
  • short – فقط ویدیوهایی را اضافه کنید که کمتر از چهار دقیقه طول دارند.
videoEmbeddable string
پارامتر videoEmbeddable به شما امکان می‌دهد جستجو را فقط به ویدیوهایی محدود کنید که می‌توانند در صفحه وب جاسازی شوند. اگر مقداری برای این پارامتر مشخص می‌کنید، باید مقدار پارامتر type را نیز روی video تنظیم کنید.

مقادیر قابل‌قبول عبارت‌اند از:
  • any – همه ویدیوها را، چه قابل‌جاسازی باشند چه نباشند، برمی‌گرداند.
  • true – فقط ویدیوهای قابل‌جاسازی را بازیابی کنید.
videoLicense string
پارامتر videoLicense نتایج جستجو را فیلتر می‌کند تا فقط ویدیوهای دارای پروانه خاص را شامل شود. YouTube به بارگذاران ویدیو اجازه می‌دهد که برای هریک از ویدیوهای خود پروانه «مشترکات خلاقانه» یا پروانه استاندارد YouTube را انتخاب کنند. اگر مقداری برای این پارامتر مشخص کنید، باید مقدار پارامتر type را نیز روی video تنظیم کنید.

مقادیر قابل‌قبول عبارتند از:
  • any – همه ویدیوهایی را که با پارامترهای پُرسمان مطابقت دارند، صرف‌نظر از اینکه چه پروانه‌ای دارند، برمی‌گرداند.
  • creativeCommon – فقط ویدیوهایی را برمی‌گرداند که دارای پروانه «مشترکات خلاقانه» هستند. کاربران می‌توانند از ویدیوهای دارای این پروانه در ویدیوهای دیگری که می‌سازند استفاده مجدد کنند. بیشتر بدانید.
  • 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
نوع منبع میانای برنامه‌سازی کاربردی را مشخص می‌کند. مقدار youtube#searchListResponse خواهد بود.
etag etag
‫Etag این منبع.
nextPageToken string
رمزی که می‌تواند به‌عنوان مقدار پارامتر pageToken برای بازیابی صفحه بعدی در مجموعه نتایج استفاده شود.
prevPageToken string
نشانه‌ای که می‌تواند به‌عنوان مقدار پارامتر pageToken برای بازیابی صفحه قبلی در مجموعه نتایج استفاده شود.
regionCode string
کد منطقه‌ای که برای پُرسمان جستجو استفاده شده است. مقدار دارایی کد کشور دوحرفی ISO است که منطقه را شناسایی می‌کند. روش i18nRegions.list فهرستی از مناطق پشتیبانی‌شده را برمی‌گرداند. مقدار پیش‌فرض US است. اگر منطقه‌ای پشتیبانی‌نشده مشخص شود، YouTube ممکن است همچنان منطقه دیگری را به‌جای مقدار پیش‌فرض برای رسیدگی به پُرسمان انتخاب کند.
pageInfo object
شیء pageInfo اطلاعات صفحه‌بندی را برای مجموعه نتایج کپسوله‌سازی می‌کند.
pageInfo.totalResults integer
تعداد کل نتایج در مجموعه نتایج.لطفاً توجه داشته باشید که این مقدار تقریبی است و ممکن است مقدار دقیق را نشان ندهد. علاوه‌براین، حداکثر مقدار ۱٬۰۰۰٬۰۰۰ است.

نباید از این مقدار برای ایجاد پیوندهای صفحه‌بندی استفاده کنید. به‌جای آن، از مقادیر دارایی nextPageToken و prevPageToken برای تعیین اینکه آیا پیوندهای صفحه‌بندی نمایش داده شود یا نه استفاده کنید.
pageInfo.resultsPerPage integer
تعداد نتایج موجود در پاسخ میانای برنامه‌سازی کاربردی.
items[] list
فهرستی از نتایج که با معیارهای جستجو مطابقت دارد.

مثال‌ها

توجه: نمونه‌های کد زیر ممکن است نشان‌دهنده همه زبان‌های برنامه‌نویسی پشتیبانی‌شده نباشد. برای اطلاع از فهرست زبان‌های پشتیبانی‌شده، به مستندات کتابخانه‌های مشتری مراجعه کنید.

Apps Script

این تابع ویدیوهای مربوط به کلیدواژه «سگ‌ها» را جستجو می‌کند. شناسه‌ها و عناوین ویدیو نتایج جستجو در گزارش Apps Script ثبت می‌شود.

توجه داشته باشید که این نمونه نتایج را به ۲۵ محدود می‌کند. برای دریافت نتایج بیشتر، پارامترهای اضافی را همان‌گونه که در اینجا مستند شده است ارسال کنید: 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);
  }
}

رفتن

این نمونه کد روش search.list API را برای بازیابی نتایج جستجوی مرتبط با یک کلیدواژه خاص فراخوانی می‌کند.

این مثال از کتابخانه Go client استفاده می‌کند.

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")
}

دات نت

نمونه کد زیر روش 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

خطاها

جدول زیر پیام‌های خطایی را که ممکن است API در پاسخ به فراخوانی این روش برگرداند، مشخص می‌کند. لطفاً برای جزئیات بیشتر به سند پیام خطا مراجعه کنید.

نوع خطا جزئیات خطا شرح
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 تنظیم کنید.

امتحان کنید!

برای فراخوانی این API و دیدن درخواست و پاسخ API، از APIs Explorer استفاده کنید.