Two datasets on Hugging Face, both CC-BY-4.0, both rebuilt daily from the
production database. Between them: every episode we have published, every
transcript, and the machinery that made them.
One row per episode: metadata, the full transcript, links back to the published episode, and the generation telemetry — which model wrote the script, pipeline version, GPU, timings, compute cost.
The same transcripts, shaped for linguistics: narrowed metadata, per-episode text statistics, repetition measures, and a second config splitting the dialogue into speaker turns.
Rows
5,329 episodes + 464,859 turns
Fields
86
Licence
CC-BY-4.0
Start with the data dictionary
data-dictionary.json
describes every field in both datasets — type, meaning, and the share of rows
actually populated, measured from the published data rather than asserted.
Where a null carries meaning, it says what the null means.
Check coverage before you use a column. Several fields are
well under 50 % populated, and the gaps are not random — they follow
eras of the show. A field that is empty for the back catalogue is missing
data, not a measured zero.
The dataset navigator
is the same file as a browsable page — search and filter every field, see
coverage at a glance, and link someone to a single column with a
#field= anchor.
22.6 million words of LLM-written conversation by 14 recurring speakers, with turn-level segmentation. A corpus of machine dialogue at a scale and consistency that is hard to assemble from scraped sources — one show, one format, one cast, 5,300 episodes.
Tracking idiom and verbal tics over time
Every turn is timestamped and attributed to a script-writing model. You can follow a phrase — "here’s the thing", "at the end of the day" — as a rate per 10,000 words across eras, and see where in an episode it tends to land.
Measuring repetition and degeneration
Per-episode rep-4 and rep-8, gzip compression ratio, repeated-span coverage and adjacent-turn similarity, each localised to the first, middle and last third. Enough to ask whether a model pads when it runs out of material — the target length it was writing toward is in the data too.
Readability and delivery
Flesch scores, MATTR, hapax ratio and words-per-minute against actual audio duration, so written complexity can be compared with delivered pace.
Production telemetry as ground truth
Per-episode GPU type, worker count, synthesis time and compute cost in USD. A rare public record of what it actually costs to generate and voice long-form audio at scale.
Benchmarking and fine-tuning
Prompt-free, permissively licensed, consistently formatted long-form dialogue. Useful as a conversational-style reference set, or as evaluation data for summarisation and speaker-attribution tasks.
Read this before drawing conclusions
The model distribution is extremely uneven. Two script-writing
models account for roughly 93 % of the corpus. “Over time” and
“by model” are very nearly the same axis and for most of the run
cannot be separated.
Episode length moved. Median length rose from about 3,000 words
in 2025 to about 4,200 in 2026. Most repetition measures move with length, so
control for it before reading a trend. Adjacent-turn similarity is the exception.
A cleanup pass edits the scripts. Stock AI phrasings are stripped
after generation, and the counts are published per category. Without them a fall
in those phrasings over time is indistinguishable from the regex that removed them.
This is synthetic dialogue. Written by an LLM, spoken by a TTS
model. It is an accurate record of what the show said — not human speech, and not
a factual reference.
Listener prompts are not published. Neither dataset carries the
submitted prompt text. Prompt length, the sender’s role and how it arrived
are published; the words are not.
Loading it
from datasets import load_dataset
episodes = load_dataset("My-Weird-Prompts/transcripts", "episodes", split="train")
turns = load_dataset("My-Weird-Prompts/transcripts", "turns", split="train")
# pub_date is ISO 8601 at mixed precision — pass format="ISO8601" or pandas
# will infer one format from the first row and coerce most of the column to NaT
import pandas as pd
df = episodes.to_pandas()
df["pub_date"] = pd.to_datetime(df["pub_date"], utc=True, format="ISO8601")
main is rebuilt daily, so a figure measured against it cannot be
reproduced tomorrow. For a number that stays put, use a dated snapshot under
exports/
or pin a commit revision.
Figures on this page are as of 22 September 2026; both datasets grow daily.