YouTube Channel Video & Shorts Scraper avatar

YouTube Channel Video & Shorts Scraper

Pricing

from $3.99 / 1,000 results

Go to Apify Store
YouTube Channel Video & Shorts Scraper

YouTube Channel Video & Shorts Scraper

Pricing

from $3.99 / 1,000 results

Rating

0.0

(0)

Developer

ScrapeFlow

ScrapeFlow

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

2 days ago

Last modified

Share

YouTube Channel Video & Shorts Scraper (Apify Actor)

Scrapes long-form videos and/or Shorts from YouTube channel URLs using the same innertube browse flow as manual browsing: channel /aboutbrowseId, then youtubei/v1/browse with pagination. Shorts are optionally enriched per-video (views, publish date, etc.) via individual Shorts page HTML.

Features

  • Input: one or more channel URLs or @handles (bulk).
  • Scrape modes: videos, shorts, or both.
  • Video date filter: keep videos published on or after endDate through today (same semantics as the original End_date field).
  • Proxy escalation (Apify): starts direct → on block, datacenter (SHADER) → residential (RESIDENTIAL), with up to 3 retries on residential; after switching to residential, all following requests use residential for that run.
  • Output: one dataset item per video/short; fields match the original JSON shape plus contentType (video | short) and channelUrl.

Input

FieldTypeDescription
urlsarrayChannel URLs, e.g. https://www.youtube.com/@mrbeast or { "url": "..." }
scrapeTypestringvideos | shorts | both (default both)
endDatestringDatepicker (absolute YYYY-MM-DD or relative e.g. 3 months, 2 weeks from today). Inclusive start of range for videos.
maxResultsintegerMax items per channel (1–500, default 50)
proxyConfigurationobjectApify proxy UI (fallback uses Apify proxy groups when needed)

Shorts detail enrichment uses a fixed concurrency of 10 parallel requests (same as the original script).

Output (per row)

  • author_name, video_title, publish_time, view_count, video_duration, video_url, cover_image_url, video_id
  • contentType: video or short
  • channelUrl: input channel URL used for this row

Logs & dataset (real-time)

  • Logs show high-level steps (connect → load → collect) and each row as it is written, with a short title preview — no internal API or implementation details.
  • Dataset: each video or short is push_data’d as soon as it is ready, so the Apify Output table updates during the run, not only at the end.

Local run

pip install -r requirements.txt
# Set storage root (folder must contain key_value_stores/default/INPUT.json)
set APIFY_LOCAL_STORAGE_DIR=storage # Windows; use export on Linux/macOS
python -m src

Save INPUT.json as UTF-8 without BOM (some editors add BOM and Apify’s local parser rejects it).

Build

$apify push

Docker: Dockerfile uses apify/actor-python and CMD ["python", "-m", "src"].

Only public channel data. You are responsible for compliance with YouTube’s Terms of Service and applicable laws.