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:
- In Excel, go to Data â From Text/CSV (or Get Data â From File on newer versions).
- Select the exported file and make sure the file origin is set to UTF-8.
- Load it as a table â this also keeps long transcript text in
textfrom being auto-split across columns if it contains stray delimiter-like characters.
Opening it in Google Sheets
- File â Import â Upload, choose the CSV.
- Pick Replace current sheet or Insert new sheet.
- 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 = completedto 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; filtertranscript_languagedown 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
- Bulk downloading â getting a large CSV in the first place.
- Marketing team workflows â sharing these exports across a team.
- Automating this with a webhook instead of a manual import.
Ready to export your own batch? Sign up free.