Why a YouTube Content Inventory Is Worth the Effort
Anyone managing a YouTube channel with more than a few dozen videos quickly runs into the same problem: the platform's native tools are not built for content auditing. You can browse your uploads and playlists inside YouTube Studio, but you cannot easily answer questions like — which playlists have the most dead links, which videos appear in zero playlists, or how many videos were published in a given quarter without manually scrolling through everything.
That gap matters more than it seems. Content managers, SEO teams, and channel strategists all need a reliable offline record of what exists, where it lives, and how it is organized. A well-structured Excel inventory of YouTube playlists and videos becomes the single source of truth that Studio was never designed to be. Done poorly — or not done at all — that gap causes duplicated effort, missed optimization opportunities, and embarrassing oversights like promoting a playlist that contains three removed videos.
The stakes are not just organizational tidiness. A clean, structured inventory is the foundation for any meaningful content audit, repurposing workflow, or performance analysis. Getting it right the first time saves significant time downstream.
What the Work Actually Requires
Building a YouTube video inventory in Excel is not simply a copy-paste exercise. The work has real structure to it, and the difference between a functional spreadsheet and a frustrating one comes down to a few key decisions made before the first row is entered.
First, the inventory needs a clear scope definition — are you cataloguing one channel or several, all playlists or only public-facing ones, all videos or only those currently live? Scope creep mid-build is one of the fastest ways to end up with an inconsistent data set.
Second, the data model needs to reflect the many-to-many relationship between videos and playlists. A single video can appear in multiple playlists, which means a flat one-row-per-video approach will either miss that relationship or force messy comma-separated values into a single cell. Handling this correctly usually means a relational structure — a Videos table, a Playlists table, and a junction table linking the two.
Third, the inventory needs a stable unique identifier for each video. YouTube video IDs (the 11-character string after ?v= in any watch URL) are the right choice — not video titles, which change. Building the inventory around titles as the primary key is a mistake that compounds quickly.
Fourth, the data retrieval method matters. Manual entry works for small channels, but for anything above 200 videos, the YouTube Data API v3 is the right tool — it returns structured JSON that can be parsed into Excel rows with far less error than hand-copying.
The Right Approach to Building the Inventory
Setting Up the Workbook Structure
A well-organized workbook for this project uses at least three named sheets: Videos, Playlists, and Video_Playlist_Map. A fourth sheet, Metadata, stores channel-level constants like the channel ID, the pull date, and the API key reference — keeping those values out of formulas where they would become invisible dependencies.
Column headers in the Videos sheet should follow a consistent naming convention using underscores rather than spaces — video_id, video_title, publish_date, duration_seconds, view_count, like_count, description_snippet, status. Status is important: values should be controlled vocabulary — Public, Unlisted, Private, Deleted — not freeform text. Using Data Validation (Data > Data Validation > List) enforces this and prevents filter-breaking typos later.
The Playlists sheet follows the same pattern: playlist_id, playlist_title, item_count, visibility, last_updated. The Video_Playlist_Map sheet holds two columns only — video_id and playlist_id — one row per membership relationship. A video in three playlists gets three rows here.
Retrieving Data with the YouTube Data API v3
The YouTube Data API v3 is free within quota limits (10,000 units per day on a standard key). The two endpoints used most heavily for this work are playlistItems.list and videos.list. A call to playlistItems.list with a given playlistId and maxResults=50 returns up to 50 video IDs and their position in that playlist — paginating through nextPageToken until the list is exhausted. A subsequent batch call to videos.list with a comma-separated string of up to 50 video IDs returns full metadata in one request, which is the efficient approach since each videos.list call costs only 1 quota unit regardless of how many IDs are in the batch.
For channels with 500 or more videos, the full pull typically costs between 200 and 400 quota units — well within the daily limit. The returned JSON can be parsed using Power Query in Excel (Data > Get Data > From Web, or From JSON after saving the response locally), flattening the nested structure into tabular rows automatically.
Writing the Formulas That Make the Inventory Useful
Once the raw data is loaded, the real analytical value comes from formulas that connect the three tables. A COUNTIF formula in the Videos sheet — =COUNTIF(Video_Playlist_Map[video_id], [@video_id]) — tells you instantly how many playlists each video belongs to. Videos with a count of zero are orphans: they exist on the channel but appear in no playlist, which is often an unintentional gap.
In the Playlists sheet, a COUNTIF against the map table — =COUNTIF(Video_Playlist_Map[playlist_id], [@playlist_id]) — gives the actual mapped item count, which can be compared against the API-returned item_count to surface discrepancies caused by deleted or privated videos that the API still counts as playlist members.
For date-based analysis, a publish year column derived as =YEAR([@publish_date]) combined with a pivot table produces an instant upload cadence view — how many videos were published per year, per quarter, or per month. This is the kind of view that would take hours to assemble manually in YouTube Studio but takes seconds once the inventory is clean.
A final useful layer is a days_since_published column using =TODAY()-[@publish_date], formatted as a number. Combined with conditional formatting (Home > Conditional Formatting > Color Scale), it creates an instant visual age map of the content library — older content shows in red, recent content in green — which helps prioritize refresh or repurposing decisions.
What Goes Wrong When This Work Is Rushed
The most common failure is skipping the data model design entirely and building a flat sheet where every row is a video-playlist combination without normalization. This produces massive duplication — every video's title, description, and metadata repeated dozens of times — and makes any bulk update a painful find-and-replace operation across hundreds of rows.
A second recurring problem is using video titles as the join key instead of video IDs. Titles contain special characters, change over time, and are not guaranteed unique. A formula that was working correctly breaks silently the moment someone edits a title on YouTube, and there is no obvious warning when it happens.
Third, teams often treat the inventory as a one-time export rather than a maintainable asset. Without a documented refresh process — including a pull date stamp, a clear API call sequence, and a delta-update approach that adds new videos without overwriting manually entered annotations — the inventory is stale within weeks and trusted by nobody.
Fourth, the status column is frequently left blank or inconsistently filled, which means deleted and privated videos remain in the working dataset invisibly skewing counts. A consistent validation rule and a periodic status-check pull against the API prevents this.
Fifth, the workbook is often shared as a live file without locking the structural sheets. Someone adds a column in the middle of the Videos sheet, and every COUNTIF and VLOOKUP that relied on column positions breaks immediately. Protecting the structural sheets (Review > Protect Sheet) with edit permissions only on input columns is a small step that prevents large headaches.
What to Take Away
A YouTube content inventory built in Excel is not a glamorous project, but it is genuinely useful — the kind of foundational asset that makes every downstream content decision faster and more confident. The key principles are: design the data model before entering a single row, use video IDs not titles as your primary keys, retrieve data via the API rather than by hand for anything beyond a small channel, and build for maintainability from the start.
If you would rather have this built by a team that handles structured data and presentation work every day, Helion360 is the team I would recommend.


