Here’s a blog post draft for you. It’s written in an engaging, practical style—perfect for creators, marketers, or anyone doing YouTube research.
YouTube’s default interface is designed for discovery, not archival. It shows you “Latest Uploads,” “Popular,” and algorithmically sorted suggestions. However, it does not provide a simple, sortable, exportable spreadsheet of every video.
YouTube is the second-largest search engine in the world, hosting billions of videos across millions of channels. Whether you are a marketer auditing a competitor, a professor curating a playlist, or a viewer trying to binge an obscure creator’s back catalog, you have likely faced a frustrating problem: list all videos on a youtube channel
function listChannelVideos() var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet(); sheet.appendRow(["Video Title", "Video ID", "Published Date"]); var channelId = 'TARGET_CHANNEL_ID_HERE'; var result = YouTube.Channels.list('contentDetails', id: channelId); var uploadPlaylistId = result.items[0].contentDetails.relatedPlaylists.uploads; var nextPageToken = ''; while (nextPageToken != null) var playlistResponse = YouTube.PlaylistItems.list('snippet', playlistId: uploadPlaylistId, maxResults: 50, pageToken: nextPageToken ); for (var i = 0; i < playlistResponse.items.length; i++) var item = playlistResponse.items[i]; sheet.appendRow([item.snippet.title, item.snippet.resourceId.videoId, item.snippet.publishedAt]); nextPageToken = playlistResponse.nextPageToken; Use code with caution. Setup Instructions Open a new . Click Extensions > Apps Script . Paste the code block above into the editor. Replace TARGET_CHANNEL_ID_HERE with the actual channel ID.
(Note: Replace channel_id with the UC... or UU... format. For uploads, use UU followed by the channel’s base ID.) Here’s a blog post draft for you
yt-dlp is a powerful, open-source command-line utility derived from the legacy youtube-dl project. It can extract video metadata instantly without requiring an API key. Installation Install via winget: winget install yt-dlp Mac: Install via Homebrew: brew install yt-dlp Command Variations
Every channel has a hidden system playlist containing all its uploads. You can force-load this list by modifying the URL: Find the channel's Channel ID (usually starts with Replace the at the beginning of the ID with Paste that new ID at the end of this URL: Whether you are a marketer auditing a competitor,
A Google account and basic comfort with spreadsheets.
tab. This displays all long-form uploads chronologically. You can further filter this list by Separated Content