Turn notes into a podcast: a real example from a shell lesson
Lesson notes from a Software Carpentry shell course became a two-host podcast for beginners. Hear it, copy the request, see its cost and our check.
How this was made. Audio and video overviews, slide decks and infographics are made with Google's Gemini Notebook (formerly NotebookLM), on accounts that AutoContent operates. AutoContent has no agreement with Google. Google can limit or stop this access at any time.
What came out, and what we would change
The notes are one lesson page of the Software Carpentry shell course, sent as a link; lecture notes, a handout or a textbook section work the same way. We asked for a lesson for complete beginners: an example for each command, the mistakes to avoid, and a short recap. We left duration at default. The result is a two-host episode of 19 min 41 s. It opens with the movie picture of a hacker at a black screen, walks through pwd, ls and cd, and ends with the recap we asked for.
The facts match the lesson. Every command, option and error message in the episode is in the source: ls -F, -s and -S, -l with -h, -t with -r, the error for ls-F without a space, the error for an unsupported option, relative and absolute paths, .., ~ and cd -, tab completion, --help, man and help cd, and clear -x. The hosts also keep the lesson's story about Nelle, her 1,520 data files and the north-pacific-gyre folder.
The hosts add their own pictures: a hotel, a pantry and GPS coordinates. They are not in the lesson, but they make relative and absolute paths easy to follow. As asked, nobody names the lesson's authors. The transcript spells some names by ear, for example Nell for Nelle.
Length is the thing to change. The API docs describe default as 8 to 12 minutes; this episode is well above that range. For a shorter lesson, set duration to short: in our runs, short gave 4 to 7 minutes in English and Spanish, but it did not shorten two Brazilian Portuguese episodes (17 and 28 minutes). Generation took 8 min 36 s. The episode used 10 credits, the same as a short one, because a podcast costs 10 credits at any length. For a full course, send one request per lesson and add podcastId to put every episode in the same show feed.
Guide for this job: Turn a course into a learning podcast.
Transcript excerpt
Speech-to-text of the output, not edited and without speaker labels. It is part of the sample output.
Ah, so this brings us to the grammar of the shell. The grammar. Yeah. A shell command is usually made up of three parts. The command, the option, and the argument. Okay. Command, option, argument. Right. So you use the command ls. We can add an option to modify how that command behaves. How does that look? For example, typing ls, a space, and then a capital F. Capital F. Yes. This tells the list command to classify the output. It actually adds a little marker to the end of each name.
Oh, that's handy. Yeah. If something is a directory, it puts a forward slash at the end of the name. If it's an executable program, it puts a little star. Oh, I see. So seeing desktop instantly tells me it's a directory, a door I can walk through. Exactly. Now, looking at the source material, there are a lot of these options, and some of them look really similar but seem to do completely different things. Oh, yeah. Like I'm looking at the lowercase s and the uppercase s. And capitalization absolutely matters in the shell.
The exact request
The body that was sent to POST /content/Create, unchanged, and the same request as curl.
{
"resources": [
{
"type": "website",
"content": "https://swcarpentry.github.io/shell-novice/02-filedir.html"
}
],
"outputType": "audio",
"text": "Teach this lesson to beginners who have never used a terminal. Explain each command with a concrete example, say what can go wrong, and end with a short recap of the commands. Do not mention the lesson's authors.",
"duration": "default",
"language": "English"
}curl -X POST "https://api.autocontentapi.com/content/Create" \
-H "Authorization: Bearer $AUTOCONTENT_API_KEY" \
-H "Content-Type: application/json" \
-d '{"resources":[{"type":"website","content":"https://swcarpentry.github.io/shell-novice/02-filedir.html"}],"outputType":"audio","text":"Teach this lesson to beginners who have never used a terminal. Explain each command with a concrete example, say what can go wrong, and end with a short recap of the commands. Do not mention the lesson'\''s authors.","duration":"default","language":"English"}'
# then poll until "status" is 100:
curl -H "Authorization: Bearer $AUTOCONTENT_API_KEY" "https://api.autocontentapi.com/content/Status/<request_id>"How we checked it
- Transcript
- We transcribed the output with Whisper large-v3-turbo and compared the transcript with the source.
- Language
- Detected en, requested en.
- Loudness
- -24.2 LUFS integrated, true peak -5.2 dBTP.
- Notes
- Every command, option and error message matches the lesson; the hotel, pantry and GPS pictures are the hosts' own. The episode is longer than the docs' range for "default".
- Checked on
- 2026-11-02. Failed generations are run again and never published.
More examples
All examples- Infographic · EnglishTurn a textbook chapter into an infographic: a Rust study sheetOne image · 10 credits (€0.29 on Starter)
- Explainer video · EnglishDocs to video: Kubernetes documentation as an explainer video9 min 16 s · 50 credits (€1.45 on Starter)
- Explainer video · GermanA research paper turned into a German explainer video7 min 24 s · 50 credits (€1.45 on Starter)