Documentation Index
Fetch the complete documentation index at: https://mintlify.com/vsmutok/ytscrape/llms.txt
Use this file to discover all available pages before exploring further.
VideoDetails and ChannelDetails are the rich metadata models returned when you fetch a specific video or channel by ID, URL, or handle. Both are immutable frozen dataclasses. They carry far more information than the lightweight Video and Channel search-result models — including descriptions, keyword tuples, and (for channels) external links and analytics metadata.
VideoDetails
Returned byYouTube.video(). Contains every piece of metadata available from the InnerTube player endpoint for a single video.
The unique YouTube video identifier (e.g.
"dQw4w9WgXcQ"). Never None.Full video title.
None only if the player response omitted it entirely.The video’s short description as stored in the player response. May be a truncated version of the full description shown on the watch page.
Display name of the uploading channel (the
author field in the player response).Internal channel identifier beginning with
UC. Pass this directly to YouTube.channel() to fetch full channel details.Video duration in seconds as an integer (e.g.
212). None for live streams or if parsing fails.Exact view count as an integer (e.g.
1458723912). Unlike the search-result views string, this is a true integer suitable for arithmetic. None if unavailable.Tuple of SEO keyword strings attached to the video. Empty tuple if the video has no keywords.
True when YouTube reports the video as a live stream (isLiveContent). Always a bool, never None.URL of the highest-resolution thumbnail from the player response.
Property. The canonical watch URL:
https://www.youtube.com/watch?v={video_id}.ChannelDetails
Returned byYouTube.channel(). Aggregates metadata from the InnerTube browse endpoint plus the optional About-panel continuation. Fields that require the About panel (such as joined_date, country, view_count, and links) are None or empty when the About data is unavailable.
Internal channel identifier. Never
None.Channel display name.
Channel description. Populated from the About panel when available; falls back to the channel metadata or microformat description.
The channel’s
@handle (e.g. "@RickAstleyYT"). Extracted from the page header metadata or the vanity URL.Formatted subscriber count as YouTube renders it (e.g.
"1.23M subscribers").Formatted video count (e.g.
"142 videos").Formatted total view count as shown in the About panel (e.g.
"1,234,567,890 views"). Requires the About panel data; None otherwise.Tuple of channel keywords parsed from the metadata. Quoted phrases (e.g.
"lo-fi music") are kept intact as single entries. Falls back to tags when empty.URL of the channel avatar. Identical to
photo — both fields are set to the same value for convenience.Alias for
thumbnail. The channel avatar URL. Both fields are always set to the same value; choose whichever name reads more naturally in your code.URL of the channel’s banner image, extracted from the page header.
None if the channel has no banner or the header format is unrecognised.The channel’s vanity URL (e.g.
"https://www.youtube.com/@RickAstleyYT"). Always normalised to https://.The channel’s public RSS feed URL (e.g.
"https://www.youtube.com/feeds/videos.xml?channel_id=UC…").YouTube’s family-safe flag.
None when the flag is absent from the response.Tuple of microformat tags (broad topic labels set by the channel owner).
ISO 3166-1 alpha-2 country codes where the channel’s content is available (e.g.
("US", "GB", "DE")). Empty tuple when not specified.The country the channel is associated with, as shown in the About panel (e.g.
"United Kingdom"). Requires the About panel data.The date the channel joined YouTube, formatted as YouTube renders it in the About panel (e.g.
"Joined Jul 27, 2009"). Requires the About panel data.A dictionary mapping platform keys to external URLs (e.g.
{"x": "https://x.com/rickastley", "instagram": "https://instagram.com/…"}). Keys are normalised platform slugs such as "instagram", "x", "tiktok", "patreon", or a slugified domain name for unrecognised platforms. Requires the About panel data; empty dict otherwise.Property. The canonical channel URL:
https://www.youtube.com/channel/{channel_id}.Code example
ChannelDetails.thumbnail and ChannelDetails.photo always contain the same URL. The photo alias exists for readability — use whichever feels more natural for the context (e.g. channel.photo in a UI context, channel.thumbnail when treating channels uniformly with videos).