YouTube Keyword Search
Give one YouTube search keyword and an expected count to get matching public videos, channels, view counts, and publish times.
Source · en-USRevenir à la traduction
Aperçu
YouTube search is where viewers decide which video to open: the title, the channel, the view count, and how recently it was published. This app turns one public search keyword into a structured table of those listings so brand, competitor, and content work can start from the same results a viewer would see.
The dataset keeps the keyword beside each video, which makes later comparisons stay attached to the query that produced them. It is a search-result workbook, not a substitute for comments, transcripts, or a full channel page.
Data notes
Each row is one public YouTube keyword-search listing. Rows are ordered by publish time from newest to oldest, and the same Video ID is kept once in the returned set. View count and View count text are the figures shown on the search card; they are not normalized lifetime totals from a channel dashboard. Display duration is the player clock text, while Duration ms is the same length in milliseconds as text. Published at and Collected at are returned without a timezone. Display published is the relative phrase shown on the card, such as 5 days ago. Content status is the source status text as returned. Cover images, Channel thumbnail, Video badges, and similar list fields are JSON text, not unpacked image files. Keyword, Business ID, and Source item repeat the search context across rows from the same query.
The collection does not cover comments, transcripts, private or unlisted videos, or a full channel homepage. Channel banner, Channel description, Channel URL, Subscriber count, and Video summary are often empty on search listings. A No-data marker distinguishes a keyword that produced no videos from ordinary video rows.
What a result looks like
Each row is one public YouTube search listing.
| Video title | Channel name | Video URL | View count | Published at | Display duration |
|---|---|---|---|---|---|
| Shokz OpenRun Air 2 vs OpenRun Air Headphones Review 2026: Comparison | Mariselle Hartwell | https://www.youtube.com/watch?v=EpGip-GW7g4 | 215 | 2026-09-04T18:42:58 | 4:23 |
| Opening my new OpenRun by Shokz Bone Conduction Sport Headphones | Type1Reframed | https://www.youtube.com/watch?v=Ccj5oDYwCEo | 2 | 2026-09-05T18:42:58 | 3:48 |
Video ID, Channel ID, Content type, and Video description are also available when the listing shows them.
Use cases
- For share-of-search reviews, group rows by Keyword and scan Video title, Channel name, and View count to see which videos occupy the first results.
- For competitor tracking, compare Channel name, Verified channel, and Published at to see who is publishing into the same query.
- For content planning, read Video title with Display duration and View count to separate short explainers from longer reviews.
- For landing-page work, keep Video URL and Cover images with Channel handle to rebuild the public cards that viewers actually see.
Périmètre et limites
One YouTube search keyword per task with an expected result count from 1 to 600; results are returned in complete batches of 20 and may be rounded up; coverage is limited to public YouTube keyword search listings, and the platform returns at most 600 videos.
- Adapté pour
- When you need public YouTube search listings for one keyword, including video titles, channels, view counts, and publish times.
- When you need to compare how competing videos appear for the same search keyword.
- À ne pas utiliser pour
- When you need comments, transcripts, or a full channel homepage — this App only returns keyword search listings.
- When you need private, unlisted, or signed-in YouTube data — this App covers public search results only.
Gestion des échecs
Comportement en cas d'échec et de nouvelle tentative déclaré par l'auteur. Nous vous recommandons de l'inclure dans votre prompt système lors de l'intégration.
- 1If no videos are returned, try a broader or more common keyword and confirm the query is searchable on public YouTube.
- 2Keep completed records after a partial success; resubmit the same input after a failed or expired task.
- 3Retry later after rate limiting, temporary unavailability, or a timeout.
- 4If authentication fails, verify the API Key configured for the execution environment.
Entrée
Paramètres requis pour appeler cette App, générés à partir de l'input.schema du manifest.json.
| Champ | Nom métier | Type | Requis | Défaut | Énum / Contraintes | Exemple | Description |
|---|---|---|---|---|---|---|---|
| keyword | Search keyword | string | Oui | — | — | Shokz | Brand, product, topic, or phrase to search on YouTube. Each task accepts one keyword from 1 to 512 characters. |
| crawl_count | Expected result count | integer | Oui | — | 1–600 | 1 | Expected number of videos, from 1 to 600. Results are returned in complete batches of 20, so the actual count may be rounded up. A partial batch is still billed as 20 videos. |
Sortie
Structure des champs d'un enregistrement, générée à partir de l'output.schema du manifest.json.
| Champ | Nom métier | Type | Exemple | Description |
|---|---|---|---|---|
| account_badge_list | Account badges | string | — | Badge text shown on the channel, returned as JSON text when present. |
| account_display_id | Channel handle | string | @MariselleHartwell | Public YouTube handle for the channel, including the @ prefix when shown. |
| account_id | Channel ID | string | UCzIWiqlJ3CakJ7QpNaPHJNw | Stable YouTube channel identifier for the publisher of this listing. |
| account_name | Channel name | string | Mariselle Hartwell | Display name of the channel that published this listing. |
| article_type | Content type | string | video | Listing type returned by search, such as video or short. |
| biz_id | Business ID | string | Shokz | Business identifier attached to the search item that produced this listing. |
| channel_banner_url | Channel banner | string | — | Banner image URL for the channel when the search listing includes it. |
| channel_description | Channel description | string | — | Public channel description text when the search listing includes it. |
| channel_description_links | Channel links | string | — | Links from the channel description, returned as JSON text when present. |
| channel_thumbnail_list | Channel thumbnail | string | [{"height": 68, "url": "https://yt3.ggpht.com/NosIQPZfiNCw_pXuwLWpNbx0T9jyIDMVJePbO6LVZGjKXz9ppAO49vmpqNyMGBDj96AufI9PMg=s68-c-k-c0x00ffffff-no-rj", "width": 68}] | Channel avatar image list, returned as JSON text when present. |
| channel_total_videos | Channel video count | string | — | Public video count for the channel when the search listing includes it. |
| channel_url | Channel URL | string | — | Public channel page URL when the search listing includes it. |
| co_creator_info | Co-creator info | string | — | Co-creator details for this listing, returned as JSON text when present. |
| content_badge_list | Video badges | string | ["New"] | Badges shown on the listing card, returned as JSON text when present. |
| content_id | Video ID | string | EpGip-GW7g4 | Stable YouTube video identifier for this search listing. |
| content_rich_thumbnail_list | Rich thumbnail | string | [{"height": 180, "url": "https://i.ytimg.com/an_webp/EpGip-GW7g4/mqdefault_6s.webp?du=3000&sqp=CLDUhNUG&rs=AOn4CLA9KhjVt8CHIDcWbqhbSz4rCcFjXQ", "width": 320}] | Animated or rich thumbnail list, returned as JSON text when present. |
| content_status | Content status | string | RUNNING | Source status text for the listing as returned at collection time. |
| content_text | Video description | string | Shokz #OpenRunAir2 #BoneConduction In this comprehensive comparison, we dive deep into the differences between the new ... | Short description or snippet shown for this listing. |
| content_title | Video title | string | Shokz OpenRun Air 2 vs OpenRun Air Headphones Review 2026: Comparison | Title shown on the public YouTube search card. |
| content_url | Video URL | string | https://www.youtube.com/watch?v=EpGip-GW7g4 | Public watch URL for this listing. |
| cover_image_list | Cover images | string | [{"height": 202, "url": "https://i.ytimg.com/vi/EpGip-GW7g4/hq720.jpg?sqp=-oaymwEnCOgCEMoBSFryq4qpAxkIARUAAIhCGAHYAQHiAQoIGBACGAY4AUAB&rs=AOn4CLC3oubUMvaAVXixL45NhWFyGYHaWw", "width": 360}, {"height": 404, "url": "https://i.ytimg.com/vi/EpGip-GW7g4/hq720.jpg?sqp=-oaymwEnCNAFEJQDSFryq4qpAxkIARUAAIhCGAHYAQHiAQoIGBACGAY4AUAB&rs=AOn4CLBcz_YqYgJfo5VIlQ0RXqnFnu4c1Q", "width": 720}] | Cover image list for the listing, returned as JSON text when present. |
| crawl_time | Collected at | string | 2026-09-09T18:42:58 | Collection timestamp for this listing, without a timezone offset. |
| is_collaboration | Collaboration | boolean | false | Whether the listing is marked as a collaboration. Yes when true. |
| is_verified | Verified channel | boolean | false | Whether the channel is marked verified. Yes when true. |
| is_verified_artist | Verified artist | boolean | false | Whether the channel is marked as a verified artist. Yes when true. |
| keyword | Keyword | string | Shokz | Search keyword that produced this listing. |
| keyword_type | Keyword type | string | keyword | Search item type returned with this listing, such as keyword. |
| list_order | List order | integer | 0 | Position of this listing in the collected search list when returned. |
| number_of_subscribers | Subscriber count | string | — | Public subscriber count text when the search listing includes it. |
| publish_time | Published at | string | 2026-09-04T18:42:58 | Publish timestamp for this listing, without a timezone offset. |
| raw_duration | Display duration | string | 4:23 | Duration clock text shown on the search card, such as 4:23. |
| raw_publish_time | Display published | string | 5 days ago | Relative publish phrase shown on the card, such as 5 days ago. |
| video_duration | Duration ms | string | 263000 | Video length in milliseconds, returned as text. |
| video_summary | Video summary | string | — | Longer summary text for the listing when the search result includes it. |
| view_count | View count | string | 215 | View count shown on the search card, returned as text. |
| view_count_text | View count text | string | 215 views | View count phrase shown on the card, such as 215 views. |
| task_item | Source item | string | Shokz | Submitted search item that produced this row. |
| no_data | No-data marker | boolean | false | Whether this row marks a search item that produced no videos. Yes when true. |
Schema de l'enregistrement
La sortie est renvoyée enregistrement par enregistrement. detail.output.idFieldHint
{
"type": "object",
"properties": {
"account_badge_list": {
"type": "string",
"title": "Account badges",
"description": "Badge text shown on the channel, returned as JSON text when present."
},
"account_display_id": {
"type": "string",
"title": "Channel handle",
"description": "Public YouTube handle for the channel, including the @ prefix when shown.",
"prefill": "@MariselleHartwell"
},
"account_id": {
"type": "string",
"title": "Channel ID",
"description": "Stable YouTube channel identifier for the publisher of this listing.",
"prefill": "UCzIWiqlJ3CakJ7QpNaPHJNw"
},
"account_name": {
"type": "string",
"title": "Channel name",
"description": "Display name of the channel that published this listing.",
"prefill": "Mariselle Hartwell"
},
"article_type": {
"type": "string",
"title": "Content type",
"description": "Listing type returned by search, such as video or short.",
"prefill": "video"
},
"biz_id": {
"type": "string",
"title": "Business ID",
"description": "Business identifier attached to the search item that produced this listing.",
"prefill": "Shokz"
},
"channel_banner_url": {
"type": "string",
"title": "Channel banner",
"description": "Banner image URL for the channel when the search listing includes it."
},
"channel_description": {
"type": "string",
"title": "Channel description",
"description": "Public channel description text when the search listing includes it."
},
"channel_description_links": {
"type": "string",
"title": "Channel links",
"description": "Links from the channel description, returned as JSON text when present."
},
"channel_thumbnail_list": {
"type": "string",
"title": "Channel thumbnail",
"description": "Channel avatar image list, returned as JSON text when present.",
"prefill": "[{\"height\": 68, \"url\": \"https://yt3.ggpht.com/NosIQPZfiNCw_pXuwLWpNbx0T9jyIDMVJePbO6LVZGjKXz9ppAO49vmpqNyMGBDj96AufI9PMg=s68-c-k-c0x00ffffff-no-rj\", \"width\": 68}]"
},
"channel_total_videos": {
"type": "string",
"title": "Channel video count",
"description": "Public video count for the channel when the search listing includes it."
},
"channel_url": {
"type": "string",
"title": "Channel URL",
"description": "Public channel page URL when the search listing includes it."
},
"co_creator_info": {
"type": "string",
"title": "Co-creator info",
"description": "Co-creator details for this listing, returned as JSON text when present."
},
"content_badge_list": {
"type": "string",
"title": "Video badges",
"description": "Badges shown on the listing card, returned as JSON text when present.",
"prefill": "[\"New\"]"
},
"content_id": {
"type": "string",
"title": "Video ID",
"description": "Stable YouTube video identifier for this search listing.",
"prefill": "EpGip-GW7g4"
},
"content_rich_thumbnail_list": {
"type": "string",
"title": "Rich thumbnail",
"description": "Animated or rich thumbnail list, returned as JSON text when present.",
"prefill": "[{\"height\": 180, \"url\": \"https://i.ytimg.com/an_webp/EpGip-GW7g4/mqdefault_6s.webp?du=3000&sqp=CLDUhNUG&rs=AOn4CLA9KhjVt8CHIDcWbqhbSz4rCcFjXQ\", \"width\": 320}]"
},
"content_status": {
"type": "string",
"title": "Content status",
"description": "Source status text for the listing as returned at collection time.",
"prefill": "RUNNING"
},
"content_text": {
"type": "string",
"title": "Video description",
"description": "Short description or snippet shown for this listing.",
"prefill": "Shokz #OpenRunAir2 #BoneConduction In this comprehensive comparison, we dive deep into the differences between the new ..."
},
"content_title": {
"type": "string",
"title": "Video title",
"description": "Title shown on the public YouTube search card.",
"prefill": "Shokz OpenRun Air 2 vs OpenRun Air Headphones Review 2026: Comparison"
},
"content_url": {
"type": "string",
"title": "Video URL",
"description": "Public watch URL for this listing.",
"prefill": "https://www.youtube.com/watch?v=EpGip-GW7g4"
},
"cover_image_list": {
"type": "string",
"title": "Cover images",
"description": "Cover image list for the listing, returned as JSON text when present.",
"prefill": "[{\"height\": 202, \"url\": \"https://i.ytimg.com/vi/EpGip-GW7g4/hq720.jpg?sqp=-oaymwEnCOgCEMoBSFryq4qpAxkIARUAAIhCGAHYAQHiAQoIGBACGAY4AUAB&rs=AOn4CLC3oubUMvaAVXixL45NhWFyGYHaWw\", \"width\": 360}, {\"height\": 404, \"url\": \"https://i.ytimg.com/vi/EpGip-GW7g4/hq720.jpg?sqp=-oaymwEnCNAFEJQDSFryq4qpAxkIARUAAIhCGAHYAQHiAQoIGBACGAY4AUAB&rs=AOn4CLBcz_YqYgJfo5VIlQ0RXqnFnu4c1Q\", \"width\": 720}]"
},
"crawl_time": {
"type": "string",
"title": "Collected at",
"description": "Collection timestamp for this listing, without a timezone offset.",
"prefill": "2026-09-09T18:42:58"
},
"is_collaboration": {
"type": "boolean",
"title": "Collaboration",
"description": "Whether the listing is marked as a collaboration. Yes when true.",
"prefill": false
},
"is_verified": {
"type": "boolean",
"title": "Verified channel",
"description": "Whether the channel is marked verified. Yes when true.",
"prefill": false
},
"is_verified_artist": {
"type": "boolean",
"title": "Verified artist",
"description": "Whether the channel is marked as a verified artist. Yes when true.",
"prefill": false
},
"keyword": {
"type": "string",
"title": "Keyword",
"description": "Search keyword that produced this listing.",
"prefill": "Shokz"
},
"keyword_type": {
"type": "string",
"title": "Keyword type",
"description": "Search item type returned with this listing, such as keyword.",
"prefill": "keyword"
},
"list_order": {
"type": "integer",
"title": "List order",
"description": "Position of this listing in the collected search list when returned.",
"prefill": 0
},
"number_of_subscribers": {
"type": "string",
"title": "Subscriber count",
"description": "Public subscriber count text when the search listing includes it."
},
"publish_time": {
"type": "string",
"title": "Published at",
"description": "Publish timestamp for this listing, without a timezone offset.",
"prefill": "2026-09-04T18:42:58"
},
"raw_duration": {
"type": "string",
"title": "Display duration",
"description": "Duration clock text shown on the search card, such as 4:23.",
"prefill": "4:23"
},
"raw_publish_time": {
"type": "string",
"title": "Display published",
"description": "Relative publish phrase shown on the card, such as 5 days ago.",
"prefill": "5 days ago"
},
"video_duration": {
"type": "string",
"title": "Duration ms",
"description": "Video length in milliseconds, returned as text.",
"prefill": "263000"
},
"video_summary": {
"type": "string",
"title": "Video summary",
"description": "Longer summary text for the listing when the search result includes it."
},
"view_count": {
"type": "string",
"title": "View count",
"description": "View count shown on the search card, returned as text.",
"prefill": "215"
},
"view_count_text": {
"type": "string",
"title": "View count text",
"description": "View count phrase shown on the card, such as 215 views.",
"prefill": "215 views"
},
"task_item": {
"type": "string",
"title": "Source item",
"description": "Submitted search item that produced this row.",
"prefill": "Shokz"
},
"no_data": {
"type": "boolean",
"title": "No-data marker",
"description": "Whether this row marks a search item that produced no videos. Yes when true.",
"prefill": false
}
},
"required": [],
"additionalProperties": false
}Intégration
Cette App peut être intégrée via MCP, API, SDK ou export de fichiers — tous les canaux partagent les mêmes capacités et la même tarification. Chaque requête s'authentifie avec l'en-tête Authorization: Bearer à l'aide d'une API Key (longue durée, créée dans la console Data Hub) ; les clients MCP peuvent aussi se connecter via OAuth, sans clé. D'autres options comme la CLI et Skill arrivent bientôt.
Avec MCP (Model Context Protocol), vous pouvez appeler cette App directement depuis des clients IA comme Claude et Cursor. Choisissez votre client et votre mode d'authentification, puis copiez la config ci-dessous.
Config du client
Remplacez la valeur après Bearer par votre API Key longue durée. Fonctionne dans n'importe quel client, en CI ou en environnement sans navigateur.
{
"mcpServers": {
"hello_moto__youtube-keyword-list": {
"type": "http",
"url": "https://mcp-v2.octoparse.com?pin=hello_moto/youtube-keyword-list",
"headers": { "Authorization": "Bearer <YOUR_API_KEY>" }
}
}
}Laissez l'IA tout configurer pour vous
Vous ne voulez pas modifier les configs à la main ? Copiez le prompt d'installation et collez-le dans n'importe quel client IA — il effectuera la configuration à sa manière. (Le prompt demande à l'IA de vous réclamer votre API Key, afin que les identifiants ne finissent jamais dans l'historique de conversation ni dans des configs partagées.)
detail.access.mcp.composeHint
Tarifs
Facturé selon le nombre d'enregistrements renvoyés avec succès. Les exécutions échouées ne sont pas facturées. Facturé par unités de 20 enregistrement ; toute unité incomplète est arrondie à 20 enregistrement.
Facturé une fois par exécution soumise, quel que soit le nombre d'enregistrements renvoyés.
Plusieurs événements de facturation se cumulent indépendamment. Voir chaque élément pour les détails. Les exécutions échouées ne sont pas facturées.
Voir les créditsEssayer maintenant
Renseignez les paramètres et lancez l'exécution — les résultats proviennent d'un appel réel.