Youtube Shorts Downloader
Pricing
$2.65 / 1,000 shorts
Youtube Shorts Downloader
Turn known public YouTube Shorts URLs or video IDs into source media links and metadata. See available quality, formats, thumbnails, duration, channel data, and public engagement counts when available.
Pricing
$2.65 / 1,000 shorts
Rating
0.0
(0)
Developer
Maxime Dupré
Maintained by CommunityActor stats
0
Bookmarked
231
Total users
20
Monthly active users
6 days ago
Last modified
Categories
Share
🎬 Turn known YouTube Shorts into direct media links
YouTube Shorts Downloader is for creators, developers, and teams that already have public Shorts links. Submit those links to get source media URLs, available quality, format details, thumbnails, duration, channel data, and public engagement counts when available in a structured dataset. This gives you rows to review, catalog, or pass into another workflow. Source media links can expire or stop working, so use them soon after the run.
- Use YouTube Shorts Video Downloader to get source media links and metadata from known public Shorts URLs.
- Open YouTube Shorts Watch to review the YouTube page for a known Short.
- Collect direct source URLs with YouTube Shorts Download Links for review or archiving.
- Export titles, thumbnails, duration, channel data, and format details with YouTube Shorts Video Metadata.
- Process a list of known Shorts with Download YouTube Shorts in Bulk and keep one row for each resolved Short.
- Start a programmatic run with YouTube Shorts download API workflow using the Apify API.
This Actor does not search YouTube or crawl channels. It does not handle regular long videos, private videos, transcripts, comment contents, MP3 conversion, or media storage.
📦 YouTube Shorts media-link rows
Saved rows
Each saved row represents one resolved public Short. If the same video ID appears more than once, the first eligible match is saved and later matches are ignored. The row describes that first saved match.
Rows include the video ID, title and channel details, duration, thumbnail, selected format, and source media links. Fields can be null when YouTube does not expose them. Source media links may expire or stop working after the run.
🚀 Resolve known YouTube Shorts
- Open the Actor input.
- Add one or more public YouTube Shorts URLs or video IDs in
shortUrls. - Choose the highest video quality to try in
preferredResolution. - Start the run.
- Open the dataset and use
bestDownloadUrlfor the main link.
You can also start runs with the Apify API, schedules, or webhooks.
⚙️ Input
Input fields
| Field | Type | What it does |
|---|---|---|
shortUrls | array of strings | Adds public YouTube Shorts URLs or 11-character video IDs. Shorts, watch, youtu.be, embed, and live URLs work when they identify a Short. Each array item is one URL or ID. |
preferredResolution | string | Requests the highest quality to try: 8k, 4k, 2k, 1080p, 720p, 480p, or 360p. The saved row shows the quality that was available. |
The Actor supports batches of unique Shorts in one run. A bad or unavailable input does not stop the other inputs.
Default input
This is the public input used by a successful current-beta default run:
{"shortUrls": ["https://www.youtube.com/shorts/8Zk5XzLJSAw"],"preferredResolution": "2k"}
🧾 Output
Run output
The results link opens the dataset overview. It shows one row for each saved Short and its source media links.
| Field | Type | What it does |
|---|---|---|
results | string | Opens the dataset overview with saved Shorts and their source media links. |
Saved row fields
Each saved row has the same public field set. A combined stream has video and audio in one link. When the main stream has video only, audioDownloadUrl gives the audio link when available. Fields marked as nullable can be null.
| Field | Type | What it does |
|---|---|---|
videoId | string | Gives the stable YouTube video ID for the Short. |
title | string or null | Gives the Short title when available. |
channelName | string or null | Gives the channel name when available. |
channelId | string or null | Gives the YouTube channel ID when available. |
durationSeconds | number or null | Gives the Short length in seconds when available. |
thumbnailUrl | string or null | Gives the thumbnail image URL when available. |
publishedAt | string or null | Gives the Short publication date and time when available. |
likeCount | integer or null | Gives the public like count when available. |
commentCount | integer or null | Gives the public comment count when available. |
bestDownloadUrl | string | Gives the main source media link for the selected format. |
audioDownloadUrl | string or null | Gives the selected audio-only stream link when available. |
bestFormat | object | Describes the selected main media format. |
bestFormat.formatId | string or null | Gives the source format ID for the selected media. |
bestFormat.quality | string or null | Gives the quality label for the selected media when available. |
bestFormat.resolution | string or null | Gives the selected media resolution when available. |
bestFormat.extension | string or null | Gives the file extension when available. |
bestFormat.videoCodec | string or null | Gives the video codec when available. |
bestFormat.audioCodec | string or null | Gives the audio codec when available. |
bestFormat.filesizeBytes | integer or null | Gives the selected media size in bytes when available. |
audioFormat | object or null | Describes the selected audio-only stream when available. |
audioFormat.formatId | string or null | Gives the source format ID for the audio stream. |
audioFormat.quality | string or null | Gives the audio stream quality when available. |
audioFormat.extension | string or null | Gives the audio stream file extension when available. |
audioFormat.audioCodec | string or null | Gives the audio stream codec when available. |
audioFormat.filesizeBytes | integer or null | Gives the audio stream size in bytes when available. |
media | object | Holds details for the selected media. |
media.mimeType | string or null | Gives the selected media MIME type when available. |
Combined video and audio row
This is a genuine row from a successful current-beta run:
{"videoId": "8Zk5XzLJSAw","title": "wax cracking is even more satisfying when you DIY it #soundon #wax #DIY","channelName": "YouTube","channelId": "UCBR8-60-B28hp2BmDPdntcQ","durationSeconds": 25,"thumbnailUrl": "https://i.ytimg.com/vi/8Zk5XzLJSAw/hqdefault.jpg","publishedAt": "2026-06-10T22:00:38-07:00","likeCount": 1485,"commentCount": 144,"bestDownloadUrl": "https://rr1---sn-0hop5i-5hhk.googlevideo.com/videoplayback?expire=1791090167&ei=lonBaprzOa3u28oPguWWwAk&ip=92.241.37.157&id=o-AKNEoxX9SrvFkzLYOhqNyhPeopKOXvzGvKcLVsEYSxGi&itag=18&source=youtube&requiressl=yes&xpc=EgVo2aDSNQ%3D%3D&cps=270&met=1791068566%2C&mh=n1&mm=31%2C29&mn=sn-0hop5i-5hhk%2Csn-u1hpa5-53&ms=au%2Crdu&mv=m&mvi=1&pl=24&rms=au%2Cau&initcwndbps=956000&bui=AWzQHwqxP85Z1iz3wn8BpHrsq4AJRYtMxXclb8a7BLuqGqHmHyyEAoUUtACj_sZTpIPBLdiOwujCLVzC&spc=I-rgIXP1RavJHHuAajtgPQmeA6cfG_Yan7iQjGPTK4gnJ0Edgw&vprv=1&svpuc=1&mime=video%2Fmp4&rqh=1&gir=yes&clen=1867885&ratebypass=yes&dur=24.789&lmt=1781162250611376&mt=1791068203&fvip=5&fexp=51565116%2C52112904%2C52184226%2C52227522%2C52250513&c=ANDROID_VR&txp=4430534&sparams=expire%2Cei%2Cip%2Cid%2Citag%2Csource%2Crequiressl%2Cxpc%2Cbui%2Cspc%2Cvprv%2Csvpuc%2Cmime%2Crqh%2Cgir%2Cclen%2Cratebypass%2Cdur%2Clmt&sig=AE0s2JYwRAIgQoDT7o6VmBDQGuObScbTMy5cDJuGOawEEPAvK6P6BXgCIC2eIb0owYnIwmEOdUvekduo9eiBBHtYB2CbycTpLwVt&lsparams=cps%2Cmet%2Cmh%2Cmm%2Cmn%2Cms%2Cmv%2Cmvi%2Cpl%2Crms%2Cinitcwndbps&lsig=APaTxxMwRQIhAJlOwZ0MX7GEyMwH4_pOH-i4k_jN4_IHJ1fHZXgURnysAiAW5hWDhH22BBo2OhpkLpTk3_Q66dJgj4qpqESWGD7k2Q%3D%3D","audioDownloadUrl": null,"bestFormat": {"formatId": "18","quality": "360p","resolution": "360x640","extension": "mp4","videoCodec": "avc1.42001E","audioCodec": "mp4a.40.2","filesizeBytes": 1867885},"audioFormat": null,"media": {"mimeType": "video/mp4; codecs=\"avc1.42001E, mp4a.40.2\""}}
Separate video and audio row
This is a genuine row from a successful current-beta run:
{"videoId": "8Zk5XzLJSAw","title": "wax cracking is even more satisfying when you DIY it #soundon #wax #DIY","channelName": "YouTube","channelId": "UCBR8-60-B28hp2BmDPdntcQ","durationSeconds": 25,"thumbnailUrl": "https://i.ytimg.com/vi/8Zk5XzLJSAw/hqdefault.jpg","publishedAt": "2026-06-10T22:00:38-07:00","likeCount": 1485,"commentCount": 144,"bestDownloadUrl": "https://rr1---sn-cxaa5ap5ou-ttus.googlevideo.com/videoplayback?expire=1791090315&ei=K4rBasiZKYO3kucPg6eBqAo&ip=156.57.235.217&id=o-APteCTpst3_yvnr-FeW2HODTZ0rBmncS22wI1PP3Ie4A&itag=137&source=youtube&requiressl=yes&xpc=EgVo2aDSNQ%3D%3D&met=1791068715%2C&mh=n1&mm=31%2C29&mn=sn-cxaa5ap5ou-ttus%2Csn-ab5l6ndr&ms=au%2Crdu&mv=m&mvi=1&pl=22&rms=au%2Cau&initcwndbps=2763125&bui=AWzQHwqhIZg56E7vFfakDWX4BTl_WWkwUlfIFiphOIWQR7fqFm7pMvleFTc3AzjfvU_scEsqgYi__6Wj&spc=I-rgIX3r1aS6KxWuwfoy4yOm0qHg3_aOWEt6WeWYTA&vprv=1&svpuc=1&mime=video%2Fmp4&rqh=1&gir=yes&clen=5814217&dur=24.733&lmt=1781162316657157&mt=1791068203&fvip=5&keepalive=yes&fexp=51565115%2C52112904%2C52184226%2C52227522%2C52250513&c=ANDROID_VR&txp=443C534&sparams=expire%2Cei%2Cip%2Cid%2Citag%2Csource%2Crequiressl%2Cxpc%2Cbui%2Cspc%2Cvprv%2Csvpuc%2Cmime%2Crqh%2Cgir%2Cclen%2Cdur%2Clmt&sig=AE0s2JYwRQIhANVSibC_Pc4eBVNLaRCRN-9z6HC7X1uXFP88teNvN96KAiBdo6cbjGkrdDK8cpc_kT2HPdVDFQHMfwoouNQNTWBuSA%3D%3D&lsparams=met%2Cmh%2Cmm%2Cmn%2Cms%2Cmv%2Cmvi%2Cpl%2Crms%2Cinitcwndbps&lsig=APaTxxMwRQIhAKa-7OiQ5i-AUUM7MOEQjdcgYUZJiYx6KCVYI3OFTwpzAiBa5oTpKhIdxBcWU3oXJiGFOs7aW6ftfaq4UC7jHw6eGw%3D%3D","audioDownloadUrl": "https://rr1---sn-cxaa5ap5ou-ttus.googlevideo.com/videoplayback?expire=1791090315&ei=K4rBasiZKYO3kucPg6eBqAo&ip=156.57.235.217&id=o-APteCTpst3_yvnr-FeW2HODTZ0rBmncS22wI1PP3Ie4A&itag=140&source=youtube&requiressl=yes&xpc=EgVo2aDSNQ%3D%3D&met=1791068715%2C&mh=n1&mm=31%2C29&mn=sn-cxaa5ap5ou-ttus%2Csn-ab5l6ndr&ms=au%2Crdu&mv=m&mvi=1&pl=22&rms=au%2Cau&initcwndbps=2763125&bui=AWzQHwqhIZg56E7vFfakDWX4BTl_WWkwUlfIFiphOIWQR7fqFm7pMvleFTc3AzjfvU_scEsqgYi__6Wj&spc=I-rgIX3r1aS6KxWuwfoy4yOm0qHg3_aOWEt6WeWYTA&vprv=1&svpuc=1&mime=audio%2Fmp4&rqh=1&gir=yes&clen=402514&dur=24.798&lmt=1781161039117955&mt=1791068203&fvip=5&keepalive=yes&fexp=51565115%2C52112904%2C52184226%2C52227522%2C52250513&c=ANDROID_VR&txp=4432534&sparams=expire%2Cei%2Cip%2Cid%2Citag%2Csource%2Crequiressl%2Cxpc%2Cbui%2Cspc%2Cvprv%2Csvpuc%2Cmime%2Crqh%2Cgir%2Cclen%2Cdur%2Clmt&sig=AE0s2JYwRQIgAT-viPcLckUPhZtlWrTmk51VKL4ePDpk9pdheVqtG1cCIQCoR52375SeOQEXnpAKkgdZ5cwY2r6H2B81gv2DcqZOWg%3D%3D&lsparams=met%2Cmh%2Cmm%2Cmn%2Cms%2Cmv%2Cmvi%2Cpl%2Crms%2Cinitcwndbps&lsig=APaTxxMwRQIhAKa-7OiQ5i-AUUM7MOEQjdcgYUZJiYx6KCVYI3OFTwpzAiBa5oTpKhIdxBcWU3oXJiGFOs7aW6ftfaq4UC7jHw6eGw%3D%3D","bestFormat": {"formatId": "137","quality": "1080p","resolution": "1080x1920","extension": "mp4","videoCodec": "avc1.640028","audioCodec": null,"filesizeBytes": 5814217},"audioFormat": {"formatId": "140","quality": "tiny","extension": "mp4","audioCodec": "mp4a.40.2","filesizeBytes": 402514},"media": {"mimeType": "video/mp4; codecs=\"avc1.640028\""}}
💳 Pricing
This Actor uses pay-per-event pricing. You pay for each Short row saved with a download link and metadata. Inputs that do not save a row do not create this event. See the Pricing tab for the current event price.
🔌 Integrations
Use the Apify API to start runs with shortUrls and preferredResolution. You can schedule runs, export datasets, or send completed run data through webhooks.
❓ FAQ
What happens if a submitted value cannot be processed?
The run warns once for that value and says whether other values remain. It keeps any saved Shorts and completes with zero or partial results. The final summary shows the saved count and the number of failed values. A value without a saved row is not charged.
Which YouTube link forms can I submit?
Use Shorts, watch, youtu.be, embed, or live URLs that identify a Short. You can also submit its 11-character video ID.
What happens if I submit the same Short twice?
The first eligible occurrence is saved. Later URLs or IDs for the same video are ignored, so the row describes the first saved match.
Why is the saved quality lower than the quality I requested?
preferredResolution is the highest quality to try. YouTube may not expose that quality. Check bestFormat.quality to see what was available.
How can I tell if video and audio use separate links?
Check bestFormat.audioCodec. When it is null, the main stream has no audio. Use audioDownloadUrl for the audio stream when available.
Can a saved media link stop working?
Yes. YouTube controls these source links, and they can expire or return an error later. Use them soon after the run.
Can I submit many Shorts in one run?
Yes. The Actor supports a list of unique Shorts in one run. An invalid or unavailable input does not stop the other inputs.
Do I need cookies, a login, or a YouTube API key?
No. The input accepts public Shorts URLs or video IDs. The Actor does not ask for cookies, a YouTube login, or an API key.
Does it search YouTube or download regular videos?
No. Submit Shorts you already know. The Actor does not search YouTube, crawl channels or playlists, or handle regular long videos.
Does it create MP3 files or store media files?
No. It returns source-hosted media links and format details. It does not convert, merge, or store the media files.
Can I use the results in an automated workflow?
Yes. Start runs with the Apify API, schedules, or webhooks. You can also export the dataset as JSON, CSV, Excel, XML, RSS, or HTML.
📝 Changelog
v3.0 (02-10-2026)
- Saved rows no longer include
channelUrl,requestedQuality,downloadType,videoDownloadUrl,videoFormat, oravailability. Audio format details no longer includeresolutionorvideoCodec. UsebestDownloadUrl,bestFormat,audioDownloadUrl, andaudioFormatfor media links and format details. - Warn once for each submitted value that cannot be processed, and say whether other values remain.
- Keep processing other Shorts and show the number of failed values in the final summary. Values without a saved row are not charged.
v2.0 (11-09-2026)
- Accept each
shortUrlsitem as a public Shorts URL or video ID string. - Return playable media or separate video and audio links, and skip results without a video stream.
- Keep normal runs focused on progress, saved rows, and completion messages without SDK startup details.
v1.1 (05-09-2026)
- Reject regular long videos without saving a Short row or charging the Short event.
- Keep valid Shorts in the same run and report the number of saved rows accurately.
- Add the publication date, like count, and comment count when YouTube provides them.
v1.0
- Process batches of Shorts and keep successful rows with direct media links, quality, and metadata.
v0.2
- Improved default runs for more reliable first results.
v0.1
- Initial release.
🆘 Support
For issues, questions, or feature requests, file a ticket and I'll fix or implement it in less than 24h 🫡
🔗 Related Actors
- YouTube Music Downloader gets audio from public YouTube videos or Music links.
- TikTok Video Downloader gets direct video or audio links from known public TikTok URLs.
- Instagram Downloader API collects direct media links from public Instagram posts and reels.
- Facebook Media Downloader resolves direct links for public Facebook videos and reels.
- Pinterest Video Downloader gets video and image URLs from public Pinterest pins.
Made with ❤️ by Maxime Dupré