YouTube Shorts List
Give a YouTube account name and an expected count to collect that account's public Shorts with titles, timing, duration, and view data
Overview
Public YouTube Shorts show what a creator is testing, repeating, and getting attention for in short form. This app turns one account's public Shorts shelf into a row-level dataset: each Short keeps its title, link, account identity, duration, view figures, and collection time so teams can compare clips instead of scrolling a channel.
That is more useful than copying a few Shorts by hand because the same fields sit on every row. Titles, watch links, duration, and the view figures shown on the page stay aligned, which makes the result a practical source for short-form content audits, posting-rhythm checks, and view-performance snapshots.
Data notes
The data comes from the public Shorts list of the requested YouTube account. Records are ordered by publish time from newest to oldest, and the same content ID is kept only once across collected pages. View count appears both as the raw figure and as the on-page phrase; duration appears both as the clock text shown on the page and as the source duration string. Publish time, relative publish time, and collection time are stored as the source sends them, without an inferred timezone. Badge lists, cover images, and channel thumbnails are returned as source strings and may be empty. Deleted, private, age-restricted, or otherwise inaccessible Shorts are not covered.
What the results look like
Each record represents one public YouTube Short.
| Content ID | Content title | Content URL | Account name | Collected at | Content type |
|---|---|---|---|---|---|
| Eqm8TLNgBmo | Ulanzi UA50 50W エアチューブライト💡やわらかい光で自然なライティング✨ | https://www.youtube.com/shorts/Eqm8TLNgBmo | Ulanzi Japan(ウランジ) | 2026-08-31T09:49:46 | short |
| hY3nR8sTq2M | Compact desk light setup for night shooting | https://www.youtube.com/shorts/hY3nR8sTq2M | Ulanzi Japan(ウランジ) | 2026-08-30T11:12:08 | short |
Additional values include Displayed duration, Duration value, View count, View count text, Published at, Relative publish time, Task account, and No data.
Use cases
- Build a short-form theme inventory by grouping Content title with Content URL and comparing how often similar titles appear.
- Check posting rhythm by lining up Published at and Relative publish time across the returned Shorts.
- Compare attention by reading View count next to View count text and ranking clips that the page presents as more watched.
- Separate empty outcomes from real Shorts by checking No data together with Task account.
Scope and boundaries
Each task collects public Shorts from one YouTube account. The requested count is an expected value and results may round up to a multiple of 30. A first collection may return up to 2,000 items and later collections 200 more; full collection is supported. Pull protection covers 1,000 result pages. Deleted, restricted, or inaccessible Shorts may be missing.
- Good for
- When you need the public Shorts list for a specific YouTube account
- When you need Shorts titles, publish times, duration, and view figures for short-form analysis
- Do not use for
- When you need regular long-form YouTube video lists rather than Shorts
- When you need comments, transcripts, or channel profile details rather than a Shorts list
- When you need short videos from a platform other than YouTube
Failure handling
Failure and retry behavior declared by the author. We recommend including it in your system prompt when integrating.
- 1If no Shorts are returned, verify the account or channel name and confirm the account has publicly visible Shorts
- 2Retry later after rate limiting, temporary unavailability, or a timeout
- 3When the submission outcome is unknown, avoid immediate repeated submissions that could create duplicate tasks
- 4Partial success still returns Shorts already collected; missing items can be submitted again later
- 5If authentication fails, verify the API Key configured for the execution environment
Input
Parameters required to call this App, generated from the input.schema in manifest.json.
| Field | Business name | Type | Required | Default | Enum / Constraints | Example | Description |
|---|---|---|---|---|---|---|---|
| account_name | YouTube account or channel name | string | Yes | — | — | UlanziJapan | The YouTube account or channel name whose public Shorts should be collected, such as UlanziJapan. Use 1 to 512 characters. |
| crawl_num | Expected Shorts count | integer | Yes | — | 1– | 1 | The number of Shorts you expect to collect. Results are returned in complete batches of 30, so the actual count may be rounded up. A remainder below 30 is still billed as 30 records. Larger values usually take longer and cost more. |
Output
Field structure of a single record, generated from the output.schema in manifest.json.
| Field | Business name | Type | Example | Description |
|---|---|---|---|---|
| content_id | Content ID | string | Eqm8TLNgBmo | Stable identifier of the Short. The source may return null on empty-result rows. |
| content_url | Content URL | string | https://www.youtube.com/shorts/Eqm8TLNgBmo | Public link of the Short. The source may return null. |
| content_title | Content title | string | Ulanzi UA50 50W エアチューブライト💡やわらかい光で自然なライティング✨ | Displayed title of the Short. The source may return null. |
| content_text | Content text | string | — | Text associated with the Short. The source may return null. |
| account_name | Account name | string | Ulanzi Japan(ウランジ) | Displayed name of the publishing account. The source may return null. |
| account_display_id | Displayed account ID | string | — | Account identifier shown on the YouTube page. The source may return null. |
| account_id | Account ID | string | — | YouTube account identifier supplied by the source. The source may return null. |
| biz_id | Business ID | string | UlanziJapan | Business identifier associated with the collected account. The source may return null. |
| article_type | Content type | string | short | Content type returned by the source, such as short. The source may return null. |
| publish_time | Published at | string | — | Normalized publish time of the Short as supplied by the source, without an inferred timezone. The source may return null. |
| raw_publish_time | Relative publish time | string | — | Relative publish time text shown on the page. The source may return null. |
| crawl_time | Collected at | string | 2026-08-31T09:49:46 | Time when this Short was collected, without an inferred timezone. The source may return null. |
| raw_duration | Displayed duration | string | — | Duration text shown on the page, such as 0:37. The source may return null. |
| video_duration | Duration value | string | — | Raw duration value returned as text by the source. The source may return null. |
| view_count | View count | string | — | Raw view count returned as text by the source. The source may return null. |
| view_count_text | View count text | string | — | View count phrase shown on the page. The source may return null. |
| content_status | Content status | string | RUNNING | Processing status carried on the result row. The source may return null. |
| is_collaboration | Collaboration | boolean | false | Whether the Short is marked as a collaboration. The source may return null. |
| is_verified | Verified | boolean | false | Whether the publishing account is verified. The source may return null. |
| is_verified_artist | Verified artist | boolean | false | Whether the publishing account is a verified artist. The source may return null. |
| keyword | Collection keyword | string | UlanziJapan | Account keyword associated with the collection task. The source may return null. |
| keyword_type | Keyword type | string | accountShorts | Keyword type used for the collection task. The source may return null. |
| account_badge_list | Account badges | string | — | Account badge list returned as a source string. The source may return null. |
| content_badge_list | Content badges | string | — | Content badge list returned as a source string. The source may return null. |
| cover_image_list | Cover images | string | — | Cover image list returned as a source string. The source may return null. |
| content_rich_thumbnail_list | Rich thumbnails | string | — | Rich thumbnail list returned as a source string. The source may return null. |
| channel_thumbnail_list | Channel thumbnails | string | — | Channel thumbnail list returned as a source string. The source may return null. |
| channel_description_links | Channel links | string | — | Channel description links returned as a source string. The source may return null. |
| co_creator_info | Co-creator info | string | — | Co-creator information returned as a source string. The source may return null. |
| task_item | Task account | string | UlanziJapan | Account name submitted for the task item that produced this row. |
| no_data | No data | boolean | false | Whether the task item is marked as having no content data. |
Record schema
Output is returned record by record. detail.output.idFieldHint
{
"type": "object",
"properties": {
"content_id": {
"type": "string",
"title": "Content ID",
"description": "Stable identifier of the Short. The source may return null on empty-result rows.",
"prefill": "Eqm8TLNgBmo"
},
"content_url": {
"type": "string",
"title": "Content URL",
"description": "Public link of the Short. The source may return null.",
"prefill": "https://www.youtube.com/shorts/Eqm8TLNgBmo"
},
"content_title": {
"type": "string",
"title": "Content title",
"description": "Displayed title of the Short. The source may return null.",
"prefill": "Ulanzi UA50 50W エアチューブライト💡やわらかい光で自然なライティング✨"
},
"content_text": {
"type": "string",
"title": "Content text",
"description": "Text associated with the Short. The source may return null."
},
"account_name": {
"type": "string",
"title": "Account name",
"description": "Displayed name of the publishing account. The source may return null.",
"prefill": "Ulanzi Japan(ウランジ)"
},
"account_display_id": {
"type": "string",
"title": "Displayed account ID",
"description": "Account identifier shown on the YouTube page. The source may return null."
},
"account_id": {
"type": "string",
"title": "Account ID",
"description": "YouTube account identifier supplied by the source. The source may return null."
},
"biz_id": {
"type": "string",
"title": "Business ID",
"description": "Business identifier associated with the collected account. The source may return null.",
"prefill": "UlanziJapan"
},
"article_type": {
"type": "string",
"title": "Content type",
"description": "Content type returned by the source, such as short. The source may return null.",
"prefill": "short"
},
"publish_time": {
"type": "string",
"title": "Published at",
"description": "Normalized publish time of the Short as supplied by the source, without an inferred timezone. The source may return null."
},
"raw_publish_time": {
"type": "string",
"title": "Relative publish time",
"description": "Relative publish time text shown on the page. The source may return null."
},
"crawl_time": {
"type": "string",
"title": "Collected at",
"description": "Time when this Short was collected, without an inferred timezone. The source may return null.",
"prefill": "2026-08-31T09:49:46"
},
"raw_duration": {
"type": "string",
"title": "Displayed duration",
"description": "Duration text shown on the page, such as 0:37. The source may return null."
},
"video_duration": {
"type": "string",
"title": "Duration value",
"description": "Raw duration value returned as text by the source. The source may return null."
},
"view_count": {
"type": "string",
"title": "View count",
"description": "Raw view count returned as text by the source. The source may return null."
},
"view_count_text": {
"type": "string",
"title": "View count text",
"description": "View count phrase shown on the page. The source may return null."
},
"content_status": {
"type": "string",
"title": "Content status",
"description": "Processing status carried on the result row. The source may return null.",
"prefill": "RUNNING"
},
"is_collaboration": {
"type": "boolean",
"title": "Collaboration",
"description": "Whether the Short is marked as a collaboration. The source may return null.",
"prefill": false
},
"is_verified": {
"type": "boolean",
"title": "Verified",
"description": "Whether the publishing account is verified. The source may return null.",
"prefill": false
},
"is_verified_artist": {
"type": "boolean",
"title": "Verified artist",
"description": "Whether the publishing account is a verified artist. The source may return null.",
"prefill": false
},
"keyword": {
"type": "string",
"title": "Collection keyword",
"description": "Account keyword associated with the collection task. The source may return null.",
"prefill": "UlanziJapan"
},
"keyword_type": {
"type": "string",
"title": "Keyword type",
"description": "Keyword type used for the collection task. The source may return null.",
"prefill": "accountShorts"
},
"account_badge_list": {
"type": "string",
"title": "Account badges",
"description": "Account badge list returned as a source string. The source may return null."
},
"content_badge_list": {
"type": "string",
"title": "Content badges",
"description": "Content badge list returned as a source string. The source may return null."
},
"cover_image_list": {
"type": "string",
"title": "Cover images",
"description": "Cover image list returned as a source string. The source may return null."
},
"content_rich_thumbnail_list": {
"type": "string",
"title": "Rich thumbnails",
"description": "Rich thumbnail list returned as a source string. The source may return null."
},
"channel_thumbnail_list": {
"type": "string",
"title": "Channel thumbnails",
"description": "Channel thumbnail list returned as a source string. The source may return null."
},
"channel_description_links": {
"type": "string",
"title": "Channel links",
"description": "Channel description links returned as a source string. The source may return null."
},
"co_creator_info": {
"type": "string",
"title": "Co-creator info",
"description": "Co-creator information returned as a source string. The source may return null."
},
"task_item": {
"type": "string",
"title": "Task account",
"description": "Account name submitted for the task item that produced this row.",
"prefill": "UlanziJapan"
},
"no_data": {
"type": "boolean",
"title": "No data",
"description": "Whether the task item is marked as having no content data.",
"prefill": false
}
},
"required": [],
"additionalProperties": false
}Integration
This App can be integrated via MCP, API, SDK, or file export. All channels share the same capabilities and pricing. Every request authenticates with the Authorization: Bearer header using an API key (long-lived, created in the Data Hub Console); MCP clients can also sign in with OAuth, no key required. More options such as CLI and Skill are on the way.
With the MCP (Model Context Protocol), you can call this App directly from AI clients like Claude and Cursor. Pick your client and auth mode, then copy the config below.
Client config
Replace the value after Bearer with your long-lived API key. Works in any client, CI, or headless environment.
{
"mcpServers": {
"hello_moto__youtube-shorts-list": {
"type": "http",
"url": "https://mcp-v2.octoparse.com?pin=hello_moto/youtube-shorts-list",
"headers": { "Authorization": "Bearer <YOUR_API_KEY>" }
}
}
}Let AI set it up for you
Don't want to edit configs by hand? Copy the install prompt and paste it into any AI client. It will complete the setup its own way. (The prompt asks the AI to request your API key from you, so credentials never end up in chat history or shared configs.)
detail.access.mcp.composeHint
Pricing
Charged by the number of records successfully returned. Failed runs are not charged. Billed in units of 30 record; any partial unit is rounded up to 30 record.
Charged once per submitted run, regardless of how many records are returned.
Multiple billing events accumulate independently. See each item for details. Failed runs are not charged.
View creditsTry it now
Fill in the parameters and run. Results come from a real call.