· 01:48
// Extracted from the provided URLs and headings
// Represents a YouTube video link
export interface YouTubeVideo {
/** Full video URL */
url: string
/** Video ID (e.g. "JQeUImS7AV8") */
id: string
}
// Represents a YouTube channel link
export interface YouTubeChannel {
/** Full channel URL */
url: string
/** Channel ID (e.g. "UCbRP3c757lWg9M-U7TyEkXA") */
id: string
/** Channel display name (e.g. "Theo - T3 Tools") */
name: string
}
// The kinds of sections found on a YouTube page
export type PageSectionType = 'Show transcript' | 'Videos' | 'About'
// A generic page section
export interface PageSection {
/** One of "Show transcript", "Videos", or "About" */
type: PageSectionType
/** Raw text for transcripts or about, list of videos for video lists */
content: string | YouTubeVideo[]
}
// The full page data model
export interface YouTubePageData {
video: YouTubeVideo
channel: YouTubeChannel
sections: PageSection[]
}
Listen to jawbreaker.io using one of many popular podcasting apps or directories.