Blog / Tutorials / YouTube Transcripts in Excel or Google Sheets
Tutorials 6 min read â€ĸ November 13, 2026

YouTube Transcripts in Excel or Google Sheets

Founder

Scriptube's CSV export already has everything a spreadsheet needs: title, channel, status, and the transcript text in plain columns. You don't need to reformat anything — just export and import.

This is worth doing even if you ultimately want something other than a spreadsheet: it's the fastest way to eyeball a batch's results — which videos succeeded, which failed and why, roughly how much text came back — before deciding whether you need anything more automated. For teams that already live in spreadsheets, it can be the only step you need.

Getting the CSV

From the dashboard: open a finished batch and choose Export → CSV. Via the API:

curl -s "https://scriptube.me/api/v1/transcripts/BATCH_ID/export?format=csv" \
  -H "X-API-Key: YOUR_API_KEY" -o export.csv

See the export schema reference for exactly what's in each column — video_id, title, channel, status, text, view/like counts, and more.

Opening it in Excel

Don't just double-click the file — Excel's default CSV import can mangle non-ASCII characters in titles or transcript text (accents, non-Latin scripts) depending on your Windows locale. Instead:

  1. In Excel, go to Data → From Text/CSV (or Get Data → From File on newer versions).
  2. Select the exported file and make sure the file origin is set to UTF-8.
  3. Load it as a table — this also keeps long transcript text in text from being auto-split across columns if it contains stray delimiter-like characters.

Opening it in Google Sheets

  1. File → Import → Upload, choose the CSV.
  2. Pick Replace current sheet or Insert new sheet.
  3. Leave the separator on Detect automatically (it's a standard comma-delimited file).

Sheets handles UTF-8 by default, so this is usually a one-click import with no encoding issues.

Filtering and pivoting

Once it's a sheet, the common filters are:

  • By status — filter status = completed to drop failed/skipped rows before doing any text analysis.
  • By channel — group a multi-channel batch to compare output per channel.
  • By language — if you exported ?language=all, the same video can appear more than once; filter transcript_language down to the one you want first.

A pivot table on channel (rows) against a count of video_id (values) gives you videos-per-channel in a batch; swap in view_count with an average to compare performance, not just volume.

Useful formulas once it's a sheet

The export's columns land in a fixed order — video_id (A) through error (V), with channel at D and status at T; see the export schema reference for the full list, or just read your sheet's header row and adjust the letters below to match. In Google Sheets, =FILTER(A:V, T:T="completed") gets you the same completed-only view as a manual filter, but as a live formula that updates if you re-import. =QUERY(A:V, "select D, count(A) where T = 'completed' group by D") gives a channel-by-channel count without building a pivot table by hand. In Excel, the equivalent is a structured table (Insert → Table) with Data → Filter turned on, plus a COUNTIFS formula for the per-channel counts if you'd rather not use a PivotTable.

If you're going to re-import an updated export regularly, importing into a table (Excel) or a named range (Sheets) rather than a plain range makes a re-import a true refresh instead of a manual copy-paste each time.

If you're scripting it instead

For repeatable analysis, pandas reads the same file without any manual import step:

import pandas as pd

df = pd.read_csv("export.csv")

# Keep only videos that actually completed
done = df[df["status"] == "completed"]

# One row per channel, total words transcribed
done["word_count"] = done["text"].str.split().str.len()
by_channel = done.groupby("channel")["word_count"].sum().sort_values(ascending=False)
print(by_channel.head(10))

Requires pip install pandas. This is the same CSV either way — the spreadsheet and the script are reading identical columns.

Working with long transcript text in a cell

The text column can be thousands of characters for a longer video — long enough that it's awkward to read in a default cell width. Wrap the column (Format → Wrap text in both Excel and Sheets) and widen it, or add a helper column with =LEFT(S2, 200) (Sheets) to preview the first 200 characters without opening the full cell every time. For anything beyond a quick read, it's usually more pleasant to filter down to the rows you care about first, then open individual cells, rather than trying to read full transcripts in a grid view.

Frequently asked

Will re-exporting a batch give me a different file? Only if you retried failed items or the batch changed since the last export — reading the same finished batch twice returns identical columns and rows.

Can I export just the completed rows from the API directly, instead of filtering in the sheet? Yes — pass include_failed=false on the export request and failed/skipped rows are left out entirely, which is often simpler than filtering after the fact.

What if a title or description has emoji or non-Latin characters? The export is UTF-8 throughout; the only place this commonly breaks is Excel's plain double-click import, which is exactly why the Data → From Text/CSV route above exists — it lets you set the encoding explicitly instead of letting Excel guess.

Next steps

Ready to export your own batch? Sign up free.

Try Scriptube Free

Extract YouTube transcripts instantly. No credit card required.

Get Started

Related Articles

Tutorials

Your YouTube Transcript Library: Find Everything You've Already Processed

Every video you've ever submitted to Scriptube stays in your library — browsable by channel and playlist, searchable when you need to find something you...

Tutorials

How to Retry Failed YouTube Transcripts Without Resubmitting the Batch

A batch of 50 videos rarely comes back 50 for 50 — a couple of videos might have no captions, one might hit a rate limit, another might just need a second...

Tutorials

YouTube Transcript API: The Complete Guide

The Scriptube API lets you submit YouTube video, playlist, or channel URLs and get back transcripts and metadata as JSON, CSV, or JSONL, plus timed segments...