YouTube Keyword Search
Give one YouTube search keyword and an expected count to get matching public videos, channels, view counts, and publish times.
Original · en-USVolver a la traducción
Descripción general
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.
Alcance y límites
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.
- Adecuada para
- 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.
- No usar para
- 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.
Gestión de fallos
Comportamiento de fallos y reintentos declarado por el autor. Recomendamos incluirlo en tu prompt del sistema al integrar.
- 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.
Entrada
Parámetros necesarios para llamar a esta App, generados a partir del input.schema del manifest.json.
| Campo | Nombre de negocio | Tipo | Obligatorio | Predeterminado | Enum / Restricciones | Ejemplo | Descripción |
|---|---|---|---|---|---|---|---|
| keyword | Search keyword | string | Sí | — | — | 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 | Sí | — | 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. |
Salida
Estructura de campos de un único registro, generada a partir del output.schema del manifest.json.
| Campo | Nombre de negocio | Tipo | Ejemplo | Descripción |
|---|---|---|---|---|
| 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 del registro
La salida se devuelve registro a registro. 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
}Integración
Esta App se puede integrar mediante MCP, API, SDK o exportación de archivos — todos los canales comparten las mismas capacidades y precios. Cada solicitud se autentica con la cabecera Authorization: Bearer usando una API Key (de larga duración, creada en la consola de Data Hub); los clientes MCP también pueden iniciar sesión con OAuth sin clave. Más opciones como CLI y Skill están en camino.
Con MCP (Model Context Protocol) puedes llamar a esta App directamente desde clientes de IA como Claude y Cursor. Elige tu cliente y el modo de autenticación, y copia la configuración de abajo.
Configuración del cliente
Sustituye el valor tras Bearer por tu API Key de larga duración. Funciona en cualquier cliente, CI o entorno sin interfaz.
{
"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>" }
}
}
}Deja que la IA lo configure por ti
¿No quieres editar configuraciones a mano? Copia el prompt de instalación y pégalo en cualquier cliente de IA: completará la configuración a su manera. (El prompt le pide a la IA que te solicite tu API Key, de modo que las credenciales nunca queden en el historial de chat ni en configuraciones compartidas.)
detail.access.mcp.composeHint
Precios
Se cobra según el número de registros devueltos correctamente. Las ejecuciones fallidas no se cobran. Se factura en unidades de 20 registro; cualquier unidad parcial se redondea a 20 registro.
Se cobra una vez por cada ejecución enviada, independientemente del número de registros devueltos.
Los distintos eventos de facturación se acumulan de forma independiente. Consulta cada elemento para más detalles. Las ejecuciones fallidas no se cobran.
Ver créditosPruébalo ahora
Rellena los parámetros y ejecuta — los resultados provienen de una llamada real.