Youtube Profile & Channel List Scraper avatar

Youtube Profile & Channel List Scraper

Pricing

Pay per usage

Go to Apify Store
Youtube Profile & Channel List Scraper

Youtube Profile & Channel List Scraper

Verified 99.4% Success Rate. Extract YouTube channel profiles & video lists. Scrape subscriber counts, metadata & transcripts using Transcript Downloader API. Perfect for competitor analysis, content research & market intelligence.

Pricing

Pay per usage

Rating

0.0

(0)

Developer

Transcript Downloader

Transcript Downloader

Maintained by Community

Actor stats

0

Bookmarked

28

Total users

3

Monthly active users

15 days ago

Last modified

Share

๐Ÿ“บ Youtube Profile & Channel List Scraper

Verified 99.4% Success Rate. Extract YouTube channel profiles & video lists. Scrape subscriber counts, metadata & transcripts using Transcript Downloader API. Perfect for competitor analysis, content research & market intelligence.


โœจ Features

  • ๐Ÿข Channel profile extraction: Get channel metadata, subscriber count, total views, and creation date
  • ๐Ÿ“‹ Complete video lists: Extract all videos from a channel with basic metadata
  • ๐Ÿ“Š Optional detailed metadata: Fetch full transcripts and metadata for individual videos
  • ๐Ÿ” Batch processing: Handle multiple channels simultaneously
  • โš™๏ธ Concurrency control: Adjust processing speed with configurable limits
  • ๐Ÿ”„ Automatic retries: Handles API errors and retryable failures
  • ๐Ÿšฆ Rate limiting: Built-in delays to respect API limits
  • ๐Ÿ’ฐ Cost tracking: Monitor API usage and costs per channel
  • ๐Ÿง  Error tracking: All failures logged with detailed error information

๐Ÿ”ง Input Parameters

The actor accepts the following input:

ParameterTypeRequiredDefaultDescription
channelUrlsarrayโœ… Yes-List of YouTube channel URLs (supports @username and /channel/)
apiTokenstringโœ… Yes-Your Transcript Downloader API bearer token
includeVideoDetailsbooleanNofalseWhether to fetch complete metadata for each video
includeCommentsbooleanNofalseWhether to fetch comments (only shown when includeVideoDetails=true)
maxConcurrencynumberNo2Max concurrent channel requests (range: 1-5)
videoLimitnumberNo50Max videos to process per channel when includeVideoDetails=true

๐Ÿ“ฅ Sample Input

{
"channelUrls": [
"https://www.youtube.com/@google",
"https://www.youtube.com/channel/UCK8sQmJBp8GCxrOtXWBpyEA"
],
"apiToken": "your-api-token",
"includeVideoDetails": false,
"includeComments": false,
"maxConcurrency": 2,
"videoLimit": 50
}

๐Ÿ“ค Output Format

Each channel will produce a dataset item with the following structure:

Basic Channel Profile Output

{
"channelUrl": "https://www.youtube.com/@google",
"profile": {
"youtube_id": "UCK8sQmJBp8GCxrOtXWBpyEA",
"title": "Google",
"url": "https://www.youtube.com/@google",
"thumbnail": "https://yt3.ggpht.com/...",
"description": "Channel description...",
"total_media": 1234,
"subscriber_count": 5000000,
"total_views": 100000000,
"country": "US",
"creation_date": "2005-02-14 23:41:51"
},
"videos": [
{
"youtube_id": "abc123",
"title": "Video Title",
"thumbnail": "https://i.ytimg.com/vi/abc123/default.jpg",
"published_at": "2024-01-01 12:00:00",
"duration": 300
}
],
"summary": {
"totalVideos": 1234,
"videosInResponse": 1234,
"videosWithDetails": 0,
"totalCost": "0.500",
"processingTime": "15.2s"
},
"downloadInfo": {
"id": "01K31YQ38SNP30F7218NX4SMN7",
"type": "list",
"cost": "0.500",
"status": "success",
"created_at": "2025-01-23T20:01:17.000000Z"
}
}

With Detailed Video Metadata

When includeVideoDetails: true, each video will include additional metadata:

{
"youtube_id": "abc123",
"title": "Video Title",
"thumbnail": "https://i.ytimg.com/vi/abc123/default.jpg",
"published_at": "2024-01-01 12:00:00",
"duration": 300,
"detailedMetadata": {
"description": "Full video description...",
"viewCount": 100000,
"likeCount": 5000,
"commentCount": 250,
"channelName": "Channel Name",
"channelUrl": "https://www.youtube.com/channel/...",
"fullTranscript": "Complete video transcript...",
"transcriptsWithTimeStamps": [
{
"start": "0.0",
"dur": "3.5",
"text": "Welcome to this video..."
}
],
"comments": {
"mostRelevant": [
{
"author": "User123",
"text": "This helped me so much!"
}
],
"mostRecent": [
{
"author": "User456",
"text": "Just watched it!"
}
]
}
}
}

Note: The comments field only appears when both includeVideoDetails: true and includeComments: true.


๐Ÿš€ How to Use

  1. Get your API token from Transcript Downloader
  2. Add channel URLs in supported formats:
    • https://www.youtube.com/@username
    • https://www.youtube.com/channel/CHANNEL_ID
    • https://www.youtube.com/c/channelname
    • https://www.youtube.com/user/username
  3. Configure options based on your needs:
    • Set includeVideoDetails: false for basic channel info (faster, cheaper)
    • Set includeVideoDetails: true for complete video metadata (slower, more expensive)
  4. Run the actor and access results in the dataset

โŒ Error Handling

The actor gracefully handles common API errors:

Status CodeMeaningAction
400Invalid channel URL or channel restrictedCheck URL format and availability
401Insufficient credits or invalid tokenCheck credits and API token
403Invalid API tokenRegenerate API token
429Rate limit exceededActor handles with delays
503Service temporarily unavailableRetry automatically

Failed channels are captured in the dataset with error information:

{
"channelUrl": "https://www.youtube.com/@invalid",
"error": "Invalid channel URL or channel restricted",
"status": "failed"
}


๐Ÿ’ณ Pricing & Billing

The Transcript Downloader API used by this actor requires a valid API token. API usage is billed separately and is based on processing time and file size.

๐Ÿ“Š We charge on a per transcript/metadata basis. Visit our site to checkout pricing. View full details and subscription plans on our pricing page


โš ๏ธ Rate Limiting & Performance

API Rate Limits

ScopeLimitWindow
Per User (API Token)90 requests1 minute
Per IP (unauthenticated)90 requests1 minute

When rate limits are exceeded, the API returns 429 Too Many Requests. The actor handles this automatically with built-in retry logic.

YouTube API Quotas

YouTube API access is subject to daily quota limits to comply with YouTube's terms of service.

OperationQuota UnitsNotes
Channel Profile Fetch1 unitInitial channel lookup
Video List (per 50 videos)2 unitsPagination uses additional quota
Video Metadata1 unitPer video info request

Daily quota is configurable per account and resets automatically at midnight UTC. When quota is exhausted, the API returns a 429 error until reset.

Processing Times

ScenarioTypical Duration
Basic profile (no video details)~5-15 seconds per channel
With video details~1-2 minutes per video
Large channels (1000+ videos, list only)~30-60 seconds

Retry Behavior

The actor automatically retries on transient errors (429, 500, 503) with exponential backoff (base delay 1s, max delay 60s, up to 5 attempts). It does not retry on client errors (401, 403, 404) since those require user action.

Response Headers

The API returns rate limit headers you can monitor in logs:

HeaderDescription
X-RateLimit-LimitMax requests allowed in window
X-RateLimit-RemainingRequests remaining in current window
Retry-AfterSeconds to wait before retrying (on 429)

๐Ÿ’ก Best Practices

For Basic Channel Analysis

{
"channelUrls": ["https://www.youtube.com/@channel1", "https://www.youtube.com/@channel2"],
"apiToken": "your-token",
"includeVideoDetails": false,
"maxConcurrency": 3
}

For Detailed Content Analysis

{
"channelUrls": ["https://www.youtube.com/@channel"],
"apiToken": "your-token",
"includeVideoDetails": true,
"includeComments": true,
"maxConcurrency": 1,
"videoLimit": 10
}

General Tips

  • โœ… Start with includeVideoDetails: false to explore channels
  • โœ… Use videoLimit to control costs when getting video details
  • โœ… Enable includeComments: true only when you need comment analysis (requires video details)
  • โœ… Keep maxConcurrency low (1-2) to avoid rate limits
  • โœ… Monitor costs using the summary.totalCost field
  • โœ… Monitor daily YouTube API quota usage in your dashboard
  • โœ… Validate channel URLs before running large batches

๐Ÿ”— Supported URL Formats

The actor supports all major YouTube channel URL formats:

โœ… https://www.youtube.com/@username
โœ… https://www.youtube.com/channel/UCxxxxxxxxxxxxxxxxxx
โœ… https://www.youtube.com/c/channelname
โœ… https://www.youtube.com/user/username
โœ… http://www.youtube.com/@username (HTTP also supported)

๐Ÿ“ˆ Monitoring & Analytics

Track your usage with the built-in summary data:

{
"summary": {
"totalVideos": 1234,
"videosInResponse": 1234,
"videosWithDetails": 50,
"totalCost": "0.500",
"processingTime": "45.2s"
}
}

Use this data to:

  • Monitor API costs per channel
  • Track processing performance
  • Plan batch processing strategies
  • Optimize concurrency settings

๐Ÿ™‹ Support

Need help? Visit Transcript Downloader Support. We respond within 24 business hours.

For technical issues with this actor, check the run logs for detailed error messages.


๐Ÿ“„ License

This actor is provided under the ISC License.