Discover/YouTube API
live

YouTube APIyoutube.com ↗

Extract YouTube channel videos, playlists, transcripts, live status, and channel search results. Timestamped captions, view counts, and subscriber data per channel.

Endpoint health
verified 5d ago
get_channel_videos
get_channel_playlist
get_channel_live_status
get_channel_playlist_videos
search_channels
6/6 passing latest checkself-healing
Endpoints
6
Updated
25d ago

What is the YouTube API?

This API covers 6 endpoints for extracting structured data from public YouTube channels and videos. Use get_channel_videos to pull video IDs, titles, view counts, and thumbnails with sort options, get_video_transcript to retrieve ordered timestamped caption segments in any available language, and search_channels to find channels by niche with subscriber counts and contact emails from each channel's About page.

This call costs1 credit / call— charged only on success
Try it
Maximum number of videos to return. The scraper paginates automatically to fulfill the limit; each returned video adds one publish-date lookup request.
Sort order for videos.
YouTube channel handle, with or without the leading '@' (e.g. '@SuccessionBio' or 'SuccessionBio').
Earliest publish date to include, ISO 8601 calendar date YYYY-MM-DD (inclusive). Omit for no lower bound.
Latest publish date to include, ISO 8601 calendar date YYYY-MM-DD (inclusive). Omit for no upper bound; must not be earlier than published_after.
→ api.parse.bot/scraper/17f80f00-16b9-481b-8d14-fa845ca3f046/<endpoint>
Ready to send
Fill in the parameters and hit sign in to send to see live response data here.
Call it over HTTPgrab a free API key at signup
curl -X GET 'https://api.parse.bot/scraper/17f80f00-16b9-481b-8d14-fa845ca3f046/get_channel_videos?limit=5&sort_by=latest&channel_handle=%40SuccessionBio' \
  -H 'X-API-Key: $PARSE_API_KEY'
All endpoints · 6 totalmissing one? ·

Retrieve videos from a YouTube channel's public videos page. Returns video IDs, titles, watch URLs, view counts, relative publish labels, the absolute publish timestamp, the highest-resolution thumbnail URL and a visibility label per video. Supports sorting by latest (default), popular, or oldest, using the channel page's own sort options. The channel's video grid is paginated automatically until limit videos are collected, the channel is exhausted, or (for a date-sorted walk) the range has been passed. Each returned video costs one extra lightweight lookup to resolve its absolute publish timestamp (published_at, ISO 8601 with YouTube's own timezone offset, e.g. '2024-01-31T06:52:28-08:00'), so a limit of 50 means roughly 50 additional requests; published_at is null and date_lookup_failed is incremented when that lookup fails. Optional published_after / published_before (ISO dates YYYY-MM-DD, both inclusive, either or both) restrict results to videos whose publish date falls in the range: the relative label narrows the candidates cheaply and the exact timestamp decides inclusion, so the lookup cost is paid only for videos near or inside the range; with 'popular' sorting the whole grid (up to 40 pages) may be walked. A video whose exact date could not be resolved is kept only when its relative label places it entirely inside the range. View counts and publish labels are returned as strings exactly as YouTube renders them (e.g. '21 views', '2 weeks ago'; YouTube sometimes serves compact forms like '10M', '5d ago'). visibility is 'public', 'members-only' (YouTube's 'Members only' badge; such videos show no public view count, so views is null) or 'members-first' (YouTube's 'Members first' early-access badge; not observed on a live channel during verification). A nonexistent channel or a malformed date is rejected as an input error.

Input
ParamTypeDescription
limitintegerMaximum number of videos to return. The scraper paginates automatically to fulfill the limit; each returned video adds one publish-date lookup request.
sort_bystringSort order for videos.
channel_handlerequiredstringYouTube channel handle, with or without the leading '@' (e.g. '@SuccessionBio' or 'SuccessionBio').
published_afterstringEarliest publish date to include, ISO 8601 calendar date YYYY-MM-DD (inclusive). Omit for no lower bound.
published_beforestringLatest publish date to include, ISO 8601 calendar date YYYY-MM-DD (inclusive). Omit for no upper bound; must not be earlier than published_after.
Response
{
  "type": "object",
  "fields": {
    "videos": "array of Video objects with video_id, title, url, views (string or null — null for members-only videos), published (relative label as rendered), published_at (string or null — absolute ISO 8601 publish timestamp with offset), thumbnail (string — highest-resolution thumbnail URL), visibility ('public' | 'members-only' | 'members-first')",
    "video_count": "integer — number of videos returned in this response",
    "channel_handle": "string — the normalized channel handle with @ prefix",
    "published_after": "string or null — the lower date bound applied (YYYY-MM-DD), null when not supplied",
    "published_before": "string or null — the upper date bound applied (YYYY-MM-DD), null when not supplied",
    "date_lookup_failed": "integer — number of processed videos whose absolute publish timestamp could not be resolved (their published_at is null)"
  },
  "sample": {
    "data": {
      "videos": [
        {
          "url": "https://www.youtube.com/watch?v=dtp6b76pMak",
          "title": "Using Apple Vision Pro: What It’s Actually Like!",
          "views": "28M views",
          "video_id": "dtp6b76pMak",
          "published": "2 years ago",
          "thumbnail": "https://i.ytimg.com/vi/dtp6b76pMak/hq720.jpg?sqp=-oaymwEcCNAFEJQDSFXyq4qpAw4IARUAAIhCGAFwAcABBg==&rs=AOn4CLCvTagTWL8xV8W7BCvqxouQF19H-g",
          "visibility": "public",
          "published_at": "2024-01-31T06:52:28-08:00"
        },
        {
          "url": "https://www.youtube.com/watch?v=SaneSRqePVY",
          "title": "Apple Vision Pro Unboxing!",
          "views": "8.8M views",
          "video_id": "SaneSRqePVY",
          "published": "2 years ago",
          "thumbnail": "https://i.ytimg.com/vi/SaneSRqePVY/hq720.jpg?sqp=-oaymwEcCNAFEJQDSFXyq4qpAw4IARUAAIhCGAFwAcABBg==&rs=AOn4CLCpr7SMCVkXFTG5HsQyXXuO6pm5kA",
          "visibility": "public",
          "published_at": "2024-01-30T06:00:32-08:00"
        }
      ],
      "video_count": 2,
      "channel_handle": "@mkbhd",
      "published_after": "2024-01-01",
      "published_before": "2024-01-31",
      "date_lookup_failed": 0
    },
    "status": "success"
  }
}

About the YouTube API

Channel Videos and Live Status

get_channel_videos accepts a channel_handle (with or without the leading @) and returns an array of video objects, each carrying a video_id, title, url, views, published timestamp, and highest-resolution thumbnail. The sort_by parameter accepts latest, popular, or oldest. Videos that are members-only return a null for views. The limit parameter controls how many videos are returned, with automatic pagination to fulfill the request. get_channel_live_status checks whether a channel has an active broadcast and returns is_live, live_url, live_title, live_viewers (as a human-readable string), and thumbnail_url.

Playlists and Playlist Videos

get_channel_playlist lists all public playlists on a channel's Playlists tab, returning playlist_id, title, url, thumbnail, and the item count exactly as YouTube renders it — including non-standard labels like '94 episodes' for podcast-type playlists. The playlist_id values feed directly into get_channel_playlist_videos, which returns videos in playlist order with a 1-based order field, video_id, title, url, thumbnail, plus aggregate fields total_videos and total_views as rendered by YouTube. A has_more boolean indicates when the playlist has more items than the requested limit.

Transcripts and Channel Search

get_video_transcript accepts either an 11-character video_id or any YouTube URL format (watch, youtu.be, shorts, embed). It returns segments with start, end, duration, timestamp (HH:MM:SS), and text per segment, plus full_text as a single joined string. The language parameter selects a specific caption track by language code; the response indicates is_auto_generated and the track's display name. When no caption tracks exist, has_transcript returns false and segments is empty. search_channels finds channels matching a niche query, visiting each channel's About page to retrieve the full description and any publicly listed contact_email, alongside subscriber_count, video_count, and profile_picture.

Reliability & maintenanceVerified

The YouTube API is a managed, monitored endpoint for youtube.com — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when youtube.com changes and a check fails, the API is automatically queued for repair and re-verified. It is built to keep working as the site underneath it changes.

This isn't an official youtube.com API — it's an independent, maintained REST wrapper over public data. Where the source has no official API (or only a limited one), Parse gives you a stable contract over a source that never promised one, and keeps it current. Need a new endpoint or field? You can revise it yourself in plain English and the agent rebuilds it against the live site in minutes — contributing the change back to the shared API is free.

Last verified
5d ago
Latest check
6/6 endpoints passing
Maintenance
Monitored & self-healing
Will this API break when the source site changes?+
It's built not to. Every endpoint is health-checked on a schedule with automated test probes. When the source site changes and a check fails, the API is automatically queued for repair and re-verified — that's the self-healing layer. Each API page shows when its endpoints were last verified. And because marketplace APIs are shared, any fix reaches everyone using it.
Is this an official API from the source site?+
No — Parse APIs are independent, managed REST wrappers over publicly available data. That is the point: where a site has no official API (or only a limited one), Parse gives you a maintained, monitored endpoint for that data and keeps it working as the site changes — so you get a stable contract over a source that never promised one.
Can I fix or extend this API myself if I need a new endpoint or field?+
Yes — and you don't have to wait on us. This API was generated by the Parse agent, which stays attached. Describe the change in plain English ("add an endpoint that returns reviews", "fix the price field") in the revise box on the API page or via the revise_api MCP tool, and the agent rebuilds it against the live site in minutes. Contributing the change back to the public API is free.
What happens if I call an endpoint that has an issue?+
Errors are machine-readable: a bad call returns a clean status with the list of available endpoints and a repair hint, so an agent (or you) can recover or trigger a fix instead of failing silently. Confirmed failures feed the automatic repair queue.
Common use cases
  • Build a content monitoring dashboard that tracks new uploads from a list of channel handles using get_channel_videos sorted by latest
  • Index video transcripts for full-text search by fetching caption segments from get_video_transcript across a playlist's video IDs
  • Identify influencer contact emails for outreach by querying search_channels with a niche keyword and reading the returned contact_email field
  • Detect when a competitor channel goes live and capture the stream title and viewer count using get_channel_live_status
  • Reconstruct the ordered contents of a curated playlist for archiving using get_channel_playlist_videos with the playlist_id from get_channel_playlist
  • Analyze posting cadence and popularity by comparing published timestamps and view counts across videos returned by get_channel_videos
  • Generate subtitles or translated captions by feeding get_video_transcript segments into a translation pipeline
Pricing & limitsSee full pricing →
TierPriceCredits/monthRate limit
Free$0/mo2005 req/min
Hobby$30/mo1,00020 req/min
Developer$100/mo5,000100 req/min
Team$300/mo20,000300 req/min
Company$1,000/mo100,000500 req/min

Each endpoint has a fixed posted price per successful call — most fall between 1 and 10 credits — shown on this API's page before you run it. Exceeding the rate limit returns a 429 response. Authenticate with the X-API-Key header.

Frequently asked questions
Does YouTube have an official developer API?+
Yes. The YouTube Data API v3 is available at https://developers.google.com/youtube/v3. It requires a Google account and API key, enforces a daily quota system measured in units, and restricts certain data like contact emails and some channel metadata fields.
What does get_video_transcript return when a video has no captions?+
It returns has_transcript: false and an empty segments array. The video_id and title are still resolved. When captions do exist, each segment includes start, end, duration, a HH:MM:SS timestamp, and text. The is_auto_generated field distinguishes YouTube's automatic speech recognition tracks from manually uploaded ones.
Does search_channels return contact emails for every channel?+
Only when a channel has made an email publicly visible on its About page. Many channels do not list a contact email, so the contact_email field will be null in those cases. The subscriber_count and description fields are returned regardless.
Does the API return video comments or like counts?+
Not currently. The endpoints cover video metadata (title, views, publish date, thumbnail), transcript segments, playlist structure, live stream status, and channel search results. You can fork the API on Parse and revise it to add a comments or engagement metrics endpoint.
How does pagination work for get_channel_videos when a channel has hundreds of videos?+
Set the limit parameter to the number of videos you want. The API fetches additional pages of results automatically until the limit is met or the channel's public video listing is exhausted. The response includes video_count to confirm how many were actually returned, which may be less than limit if the channel has fewer public videos than requested.
Page content last updated . Spec covers 6 endpoints from youtube.com.
Related APIs in Streaming VideoSee all →
m.youtube.com API
Get video titles and metadata from the Mindplicit YouTube channel to track content updates and organize channel information. Access a complete list of videos to monitor new uploads and retrieve detailed information about each video's performance and details.
app.channelcrawler.com API
Search and discover YouTube channels across a database of 22M+ channels to find creators, communities, and content in your areas of interest. Get detailed channel information including stats and metadata to research creators and understand their audience.
socialblade.com API
Access data from socialblade.com.
viewstats.com API
viewstats.com API
filmot.com API
Search YouTube channels and find specific moments across videos by looking up subtitles in multiple languages through Filmot's comprehensive database. Discover exactly when topics are mentioned across channels without manually watching every video.
space.bilibili.com API
Retrieve and browse videos from any Bilibili user channel with customizable sorting, filtering, and pagination options. Organize your video discovery by applying specific criteria to find exactly the content you're looking for.
new61.5tv.lol API
Access data from new61.5tv.lol.
tiktok.com API
Retrieve detailed information about any public TikTok video including captions, media URLs, view counts, likes, and shares, plus access all comments posted on that video. Perfect for analyzing trending content, monitoring video performance, or building applications that need TikTok video data.