AutoContent API is an independent service. It is not affiliated with, sponsored by or endorsed by Google. Gemini, Gemini Notebook and NotebookLM are trademarks of Google LLC.

Product docs turned into a Brazilian Portuguese podcast: ConfigMaps

The Brazilian Portuguese Kubernetes page on ConfigMaps became a two-host podcast for developers. Hear it, copy the request, and 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.

The podcast (Brazilian Portuguese)21 min 58 s
AI-generated with AutoContent APIDownload MP3Full transcript (TXT)

What came out, and what we would change

The source is the Brazilian Portuguese version of the Kubernetes page on ConfigMaps, and the request sets language to português (Brasil). We first asked for duration short, but two runs ignored it (27 min 42 s and 17 min 18 s). We rejected both, reported the problem as a defect, and sent the same request with default. This episode runs 21 min 58 s.

The facts follow the page: a ConfigMap keeps settings that are not secret outside the container image, with the page's own example of DATABASE_HOST set to localhost on a laptop and to a Service in the cluster. It has data and binaryData instead of a spec, binaryData is base64, a key must not appear in both, and the data cannot exceed 1 MiB. The hosts name the four ways a Pod can use a ConfigMap, explain that files in a mounted volume update while environment variables need a restart, and cover immutable ConfigMaps.

The question of when to use a Secret instead gets a long, clear answer: a ConfigMap gives no secrecy or encryption, so passwords and keys belong in a Secret. Two points go beyond the page: the hosts explain the 1 MiB limit with the load on etcd, which the page does not mention, and they say immutable ConfigMaps came with version 1.21, while the page shows the field from v1.19 and general availability in v1.21.

The episode took 10 min 47 s to generate and used 10 credits; a podcast costs the same at any length and in any language. The transcript uses Brazilian expressions such as galera and né, and keeps technical terms such as ConfigMap, Secret and kubelet in English.

Transcript excerpt

Speech-to-text of the output, not edited and without speaker labels. It is part of the sample output.

Uma tatuagem? É. Como assim? Pensa bem. Quando escolhemos mapear o config map como variáveis de ambiente, a gente está fazendo uma tatuagem no container. No exato milissegundo em que o processo principal é iniciado, o sistema lê aquelas variáveis e grava na memória do processo. A tinta já está na pele. Ah, entendi. Fica permanente ali. Exato. Se a administração do cluster for lá e editar o config map no Kubernetes, depois que o container já estiver rodando, o processo atual não vai saber da mudança. Ele vai continuar operando com os valores antigos até o fim da vida dele.

The exact request

The body that was sent to POST /content/Create, unchanged, and the same request as curl.

request.json
{
  "resources": [
    {
      "type": "website",
      "content": "https://kubernetes.io/pt-br/docs/concepts/configuration/configmap/"
    }
  ],
  "outputType": "audio",
  "text": "Explain ConfigMaps to developers in Brazil who are starting with Kubernetes: what problem they solve, the ways a Pod can use one, and when to use a Secret instead.",
  "duration": "default",
  "language": "português (Brasil)"
}
curl
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://kubernetes.io/pt-br/docs/concepts/configuration/configmap/"}],"outputType":"audio","text":"Explain ConfigMaps to developers in Brazil who are starting with Kubernetes: what problem they solve, the ways a Pod can use one, and when to use a Secret instead.","duration":"default","language":"português (Brasil)"}'
# 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 pt, requested pt.
Loudness
-21.4 LUFS integrated, true peak -4.9 dBTP.
Notes
The facts match the page. The etcd explanation of the size limit is the hosts' own; the page shows immutable ConfigMaps from v1.19, GA in v1.21. Two earlier runs with "short" were rejected because they ignored it.
Checked on
2026-11-02. Failed generations are run again and never published.

More examples

All examples