YouTube Video, Playlist & Channel Downloader with Metadata avatar

YouTube Video, Playlist & Channel Downloader with Metadata

Pricing

from $0.49 / 1,000 results

Go to Apify Store
YouTube Video, Playlist & Channel Downloader with Metadata

YouTube Video, Playlist & Channel Downloader with Metadata

Download YouTube videos from direct links, playlists, channels, or search phrases at your chosen quality, with a public file link plus title, stats, description and subtitles per video.

Pricing

from $0.49 / 1,000 results

Rating

0.0

(0)

Developer

Nimbryxo-studio

Nimbryxo-studio

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

2 days ago

Last modified

Share

Give this actor a video link, a playlist, a channel, or even a search phrase, and it resolves every video behind it, downloads each at your chosen quality, and hands back a public link to the file alongside the video's title, stats and description.

What this actor does

  • Download videos from direct URLs, playlists, channels, or search results
  • Quality options: best available, 1080p, 720p, 480p, 360p, audio-only, or lowest
  • Subtitles: download caption files in one or more languages
  • Metadata-only mode: get full metadata without downloading the file
  • Empty fields are omitted — records only contain values that are actually populated (empty lists such as subtitle_files are left out too).

Output

Each video produces one record in the output dataset. Here is an example of a single output record:

{
"video_url": "https://www.youtube.com/watch?v=dQw4w9WgXcQ",
"video_id": "dQw4w9WgXcQ",
"title": "Rick Astley - Never Gonna Give You Up (Official Music Video)",
"description": "The official video for Never Gonna Give You Up by Rick Astley...",
"uploader": "Rick Astley",
"uploader_id": "@RickAstleyYT",
"uploader_url": "https://www.youtube.com/@RickAstleyYT",
"upload_date": "2009-10-25",
"duration_seconds": 212.0,
"view_count": 1400000000,
"like_count": 16000000,
"comment_count": 2200000,
"thumbnail": "https://api.apify.com/v2/key-value-stores/.../records/yt_dQw4w9WgXcQ_thumb.jpg",
"tags": ["rick astley", "never gonna give you up", "80s"],
"categories": ["Music"],
"resolution": "1280x720",
"filesize_bytes": 28491776,
"download_status": "success",
"download_url": "https://api.apify.com/v2/key-value-stores/.../records/yt_dQw4w9WgXcQ.mp4",
"storage_key": "yt_dQw4w9WgXcQ.mp4",
"source_label": "direct",
"record_type": "result",
"downloaded_at": "2026-02-23T10:00:00Z"
}

Output fields

FieldDescription
video_urlURL of the YouTube video
video_idYouTube video ID
titleTitle of the video
descriptionVideo description (up to 2000 characters)
uploaderChannel or uploader name
uploader_idChannel or uploader ID
uploader_urlURL of the uploader's channel
upload_dateUpload date (YYYY-MM-DD)
duration_secondsDuration of the video in seconds
view_countNumber of views
like_countNumber of likes
comment_countNumber of comments
thumbnailURL of the video thumbnail (a stored copy after a successful download, YouTube's own image URL otherwise)
tagsTags associated with the video
categoriesCategories associated with the video
resolutionResolution of the downloaded video (e.g. 1920x1080)
filesize_bytesFile size of the downloaded video in bytes
is_liveWhether the video is a live or upcoming broadcast
video_metaTechnical detail about the downloaded file: width, height, fps, vcodec, acodec, ext, filesize_bytes, total_bitrate_kbps, aspect_ratio (audio-only downloads omit the video-specific keys)
download_statusStatus: success, failed, no_video (the download finished without a usable video file), upload_failed (downloaded but the file couldn't be stored), or metadata_only
download_urlPublic URL to download the video file
storage_keyKey of the video file in storage
subtitle_filesList of subtitle file keys
subtitle_urlsList of public URLs for subtitle files
source_labelInput source label (direct, playlist:…, channel:…, or search:…)
record_typeAlways result for dataset rows
search_querySearch phrase on a failure row for a search that returned no videos
errorError message if the download, metadata read or input resolution failed
downloaded_atTimestamp of when the download was processed

Besides one row per video, the dataset can contain failure rows (download_status: "failed" with an error): one for each playlist or channel that resolves to no videos (its URL is in video_url), one for each search phrase with no results (in search_query), and a single row when no input was given at all. Videos that are private, removed, unavailable or blocked for copyright are skipped without a row when downloading.

Input

FieldTypeDefaultDescription
videoUrlsarray—Direct YouTube video URLs to download.
playlistUrlsarray—YouTube playlist URLs — videos in the playlist are processed up to maxVideosPerInput.
channelUrlsarray—YouTube channel URLs, handles, or IDs.
searchQueriesarray—Search phrases; up to maxVideosPerInput public matches per phrase are resolved, never more than 50.
videoQualitystring720pbest, 1080p, 720p, 480p, 360p, audio_only, or worst. Falls back to the best available quality when the chosen one doesn't exist, and to the lowest quality if the file would not fit in the run's disk space.
maxVideosPerInputinteger10Maximum videos processed per playlist, channel, or search input (1–500; searches stop at 50). Direct video URLs are not limited.
downloadSubtitlesbooleanfalseDownload subtitle files alongside the video.
subtitleLanguagesarray["en"]Subtitle language codes to fetch when downloadSubtitles is on.
extractMetadataOnlybooleanfalseReturn metadata without downloading the video file.
proxyCountrystringUSCountry of the built-in residential proxy (31 options) — change if a video is geo-blocked.
cookiesstring—Optional Netscape-format cookies.txt content for age-restricted or members-only videos (not needed for public videos).

Example input

{
"videoUrls": ["https://www.youtube.com/watch?v=dQw4w9WgXcQ"],
"videoQuality": "720p",
"downloadSubtitles": false,
"maxVideosPerInput": 10,
"proxyCountry": "US"
}

Search example:

{
"searchQueries": ["python tutorial for beginners"],
"maxVideosPerInput": 3,
"videoQuality": "480p",
"extractMetadataOnly": true
}

How to use

  1. Add your YouTube URLs — paste video URLs, playlist URLs, or channel URLs into the corresponding input fields.
  2. Choose video quality — select your preferred resolution from the dropdown (defaults to 720p).
  3. Configure options — optionally enable subtitle downloads, set a max video limit for playlists/channels, or change the proxy country.
  4. Run the actor — click Start and the actor will process each video, downloading and storing the files.
  5. Access your results — find all downloaded videos and metadata in the dataset. Each successfully downloaded video includes a public download link.

Examples

Example: single video

{
"videoUrls": ["https://www.youtube.com/watch?v=dQw4w9WgXcQ"],
"videoQuality": "720p"
}

Example: playlist with subtitles

{
"playlistUrls": ["https://www.youtube.com/playlist?list=PL-osiE80TeTt2d9bfVyTiXJA-UTHn6WwU"],
"maxVideosPerInput": 5,
"downloadSubtitles": true,
"subtitleLanguages": ["en", "es"]
}

Example: metadata only

{
"searchQueries": ["lofi beats"],
"maxVideosPerInput": 10,
"extractMetadataOnly": true
}

Use cases

  • Content archival — back up your favorite YouTube videos or entire channels before they disappear.
  • Research and analysis — collect video metadata (titles, descriptions, view counts, tags) at scale for content research, trend analysis, or competitive intelligence.
  • Media production — download source material for editing, compilation, or repurposing (always respect copyright).
  • Subtitle extraction — grab caption files for translation, accessibility, or content repurposing workflows.
  • Audio extraction — download podcast episodes, music, or audio content from YouTube without the video.
  • Dataset building — build structured datasets of YouTube video metadata for machine learning or analytics projects.

FAQ

How do I download a single YouTube video?

Paste the video URL into the Video URLs field and click Start. The actor will download the video and provide a public link to the file along with all available metadata.

Can I download an entire YouTube playlist?

Yes. Paste the playlist URL into the Playlist URLs field. The actor will automatically expand the playlist and download each video. Use Max Videos Per Playlist / Channel to limit the number of videos.

Can I download videos from a YouTube channel?

Yes. Paste the channel URL (e.g. https://www.youtube.com/@ChannelName) into the Channel URLs field. The actor will fetch the latest videos from that channel.

Yes. Add search phrases to Search Queries. Each phrase is resolved through YouTube's public search results, capped at maxVideosPerInput and never more than 50 results per phrase, and processed the same way as direct URLs.

What video qualities are available?

You can choose from: Best Available, 1080p, 720p, 480p, 360p, Audio Only (no video), or Lowest (fastest download). If the selected quality is not available for a particular video, the actor automatically falls back to the best available option. If a very large file would not fit in the run's disk space, it downloads the lowest quality instead.

Can I download just the audio from a YouTube video?

Yes. Set the Video Quality to "Audio Only" and the actor will download only the audio track.

Can I download subtitles?

Yes. Enable the Download Subtitles option and the actor will download available caption files alongside the video. Subtitle files are stored separately with their own public URLs.

What if a video is geo-blocked in my region?

Change the Proxy Country setting to a country where the video is available. There are 31 options, including the United States, United Kingdom, Germany, France, Canada, Australia, Japan, India, Brazil, and Singapore.

Where are the downloaded files stored?

Downloaded video files are uploaded to the Apify Key-Value Store. Each successfully downloaded video includes a download_url field in the output — this is a public link you can use to access the file directly.

What happens if a download fails?

The output record for that video will have a download_status of failed along with an error field explaining what went wrong, and the actor continues with the remaining videos. The exception is a video that is private, removed, unavailable or blocked for copyright: it is skipped without a dataset row.

Can I get video metadata without downloading the actual file?

Yes. Download rows include the video's metadata (title, description, view counts, likes, tags, upload date, etc.) whenever it could be read, and a failed row may carry only the URL and the error.

Enable the Metadata Only (No Download) option to skip the download entirely and get metadata in seconds — no storage is consumed.

Is this affiliated with YouTube?

No. This is an independent tool and is not affiliated with, endorsed by, or sponsored by YouTube or Google.