YouTube Scraper

Scrape full channel data asynchronously and poll for results, or synchronously in one call.

llms.txt Full docs for LLMs

POST /api/youtube-scraper

Retrieve video data from a YouTube channel or single video. Returns public metadata (title, views, likes, duration, thumbnails) and optional comments. Transcript extraction is not available.

Request Body (JSON)
NameTypeRequiredDefaultDescription
urlstringRequired—YouTube channel URL or video URL. Auto-detects single video vs. channel mode.
video_typestringOptionalbothType of videos to scrape: shorts, videos, or both
sortstringOptionalrecentSort order: recent or popular
max_videosintegerOptional20Maximum videos to scrape (1–100)
include_commentsbooleanOptionalfalseInclude top comments for each video
Example Request
# Retrieve a channel's most popular videos with comments curl -X POST "https://api.algrow.online/api/youtube-scraper" \ -H "Authorization: Bearer YOUR_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "url": "https://www.youtube.com/@MrBeast", "video_type": "videos", "sort": "popular", "max_videos": 10, "include_comments": true }'
Response 200 200
{ "success": true, "job_id": 4521, "mode": "channel", "message": "Scraping job queued. Poll /api/youtube-scraper/{job_id} for results." }
200 Queued 400 Invalid URL 401 Auth failed 402 Subscription inactive
GET /api/youtube-scraper/:job_id

Poll for the result of a YouTube scraping job. Returns pending or processing while running, and the full video data when completed.

Example Request
curl "https://api.algrow.online/api/youtube-scraper/4521" \ -H "Authorization: Bearer YOUR_API_KEY"
Completed Response 200 200
{ "success": true, "job_id": 4521, "status": "completed", "created_at": "2026-03-24T10:30:00", "completed_at": "2026-03-24T10:31:15", "result": { "total_videos": 10, "total_views": 1250000000, "total_likes": 42000000, "videos": [ { "video_id": "dQw4w9WgXcQ", "title": "Video Title Here", "url": "https://www.youtube.com/watch?v=dQw4w9WgXcQ", "thumbnail": "https://i.ytimg.com/vi/dQw4w9WgXcQ/maxresdefault.jpg", "view_count": 250000000, "like_count": 8500000, "comment_count": 2100000, "duration_seconds": 212, "duration_human": "3m 32s", "publish_date": "2025-10-15T14:00:00Z", "channel": "MrBeast", "channel_id": "UCX6OQ3DkcsbYNE6H8uQQuVA", "comments": [ { "author": "@user123", "text": "Great video!", "likes": 5200, "published_time": "2 months ago" } ] } ] } }
Response Fields (per video)
FieldTypeDescription
video_idstringYouTube video ID
titlestringVideo title
urlstringFull YouTube URL
thumbnailstringThumbnail image URL (highest resolution available)
view_countintegerTotal views
like_countintegerTotal likes
comment_countintegerTotal comments
duration_secondsintegerVideo length in seconds
duration_humanstringHuman-readable duration (e.g. “3m 32s”)
publish_datestringPublish date (ISO 8601)
channelstringChannel name
channel_idstringYouTube channel ID
commentsarray|nullTop comments (only if include_comments: true)
200 Success 401 Auth failed 404 Job not found
POST /api/youtube-scraper-fast

Synchronous YouTube channel scrape — no job queue, no polling. Returns channel metadata + videos (and optional comments) inline in ~2–5s, the same shape as the queued /api/youtube-scraper result. Transcripts are NOT supported here (use the queued endpoint for those).

Request Body (JSON)
NameTypeRequiredDefaultDescription
urlstringRequired—A YouTube channel URL (youtube.com or youtu.be).
video_typestringOptionalbothshorts, videos, or both.
sortstringOptionalrecentrecent or popular.
max_videosintegerOptional201–100.
include_commentsbooleanOptionalfalseInclude top comments per video.
max_commentsintegerOptional1001–100, when include_comments is true.
Example Request
curl -X POST "https://api.algrow.online/api/youtube-scraper-fast" \ -H "Authorization: Bearer YOUR_API_KEY" \ -H "Content-Type: application/json" \ -d '{"url": "https://youtube.com/@MrBeast", "video_type": "videos", "max_videos": 20}'
Response 200 200
{ "success": true, "status": "completed", "result": { … channel + videos … } }
200 Success 400 Validation error 401 Auth failed 503 Quota exhausted
POST /api/youtube-scraper/thumbnails

Bulk thumbnail download. Returns one ZIP of JPEG thumbnails (maxresdefault, or hqdefault when a video has no max-res asset), numbered in the order given. Pass either a list of videos, or a channel URL to scrape and zip in one call. Up to 100 per call. No credit cost.

Request Body (JSON)
NameTypeRequiredDefaultDescription
video_idsarray | stringOptional—Video IDs or video URLs, as a list or comma-separated string. Up to 100.
urlstringOptional—A YouTube channel URL, used when video_ids is not given.
video_typestringOptionalbothWith url: shorts, videos, or both.
sortstringOptionalrecentWith url: recent or popular.
max_videosintegerOptional20With url: 1–100.
Example Request
curl -X POST "https://api.algrow.online/api/youtube-scraper/thumbnails" \ -H "Authorization: Bearer YOUR_API_KEY" \ -H "Content-Type: application/json" \ -d '{"url": "https://youtube.com/@MrBeast", "sort": "popular", "max_videos": 50}' \ -o thumbnails.zip
Response 200 200
application/zip 001-Video-Title-VIDEOID.jpg 002-Another-Title-VIDEOID.jpg ...
200 Success 400 Validation error 401 Auth failed 502 No thumbnails returned
esc
×

Buy More Credits

Boost
150
credits
$4.99
Good for:
  • ~12 min caption removal
Studio
1,000
credits
$31.49
Good for:
  • ~80 min caption removal
Custom amount 600 credits · $19.96
1506,000