Algrow

Docs

YouTube Scraper

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

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

200 Queued 400 Invalid URL 401 Auth failed 402 Subscription inactive

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
  }'
Response200
{
  "success": true,
  "job_id": 4521,
  "mode": "channel",
  "message": "Scraping job queued. Poll /api/youtube-scraper/{job_id} for results."
}

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.

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

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"
          }
        ]
      }
    ]
  }
}

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.

200 Success 400 Validation error 401 Auth failed 503 Quota exhausted

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}'
Response200
{
  "success": true,
  "status": "completed",
  "result": { … channel + videos … }
}

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.

200 Success 400 Validation error 401 Auth failed 502 No thumbnails returned

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
Response200
application/zip

001-Video-Title-VIDEOID.jpg
002-Another-Title-VIDEOID.jpg
...