ForHosting KIT · Audio e voce

Formattare capitoli audio per app

Tre capitoli che iniziano a 0, 120 e 1800 secondi diventano un unico file che le app di podcast leggono per mostrare un indice e saltare nell'episodio. I tempi devono sempre avanzare, altrimenti non si esporta nulla. Gratis nel suo browser.

  • Gratis
  • Funziona nel suo browser
  • Senza registrazione
  • I suoi dati restano sul dispositivo
Usalo da WebAPIEmailTelegramApp presto

Funziona nel tuo browser: gratis, senza registrazione, i file non escono dal tuo dispositivo.

Chi produce l’episodio conosce già i titoli delle sezioni e l’istante di inizio di ciascuna; ciò che serve è un’esportazione corretta e leggibile dall’app, con campi startTime in camelCase, copertina e link opzionali, e la garanzia che le marche temporali non tornino mai indietro.

Che cosa offre un file dei capitoli a chi ascolta

Le app di podcast che supportano i capitoli non li leggono dal file audio stesso. Scaricano un piccolo file separato, collegato all'episodio nel suo feed, e lo usano per mostrare un indice, saltare a ogni sezione e cambiare l'immagine durante l'ascolto. Ogni capitolo richiede un tempo di inizio in secondi dall'inizio dell'audio; il titolo è fortemente consigliato perché chi ascolta veda nomi leggibili. Può anche aggiungere un'immagine e un link a qualsiasi capitolo, segnare un capitolo come silenzioso perché non compaia nell'elenco e fissare un tempo di fine, se lo desidera. Poiché le app scaricano il file durante la riproduzione, può correggere un titolo o aggiungere un'immagine dopo la pubblicazione senza ricodificare l'episodio.

Come preparare i capitoli ed evitare errori

Scriva le sezioni in ordine, ciascuna con il titolo e il secondo in cui inizia, per esempio un'introduzione a 0, il tema principale a 120 e la chiusura a 1800. Lo strumento le converte nel formato standard e restituisce il testo pronto da pubblicare a un indirizzo web stabile. L'errore più comune è un tempo di inizio che si ripete o torna indietro. Lo strumento non riordina mai i capitoli al posto suo, perché un riordino silenzioso potrebbe nascondere un errore e mettere l'immagine sbagliata sul segmento sbagliato; si ferma invece e indica quale riga è fuori ordine.

Com'è fatto un file dei capitoli per podcast

Il namespace Podcasting 2.0 punta ogni episodio a un file esterno di capitoli con il tipo MIME application/json+chapters. Ogni capitolo richiede almeno startTime come numero in virgola in secondi dall’inizio dell’audio; title è fortemente consigliato affinché gli ascoltatori vedano un indice leggibile. I campi opzionali di capitolo includono img per l’illustrazione per sezione, url per una pagina o le note dell’episodio, toc impostato a false per marcatori silenziosi solo di metadati, e endTime quando desidera una fine esplicita.

L’ordine dei capitoli è validato, non indovinato: la capacità non riordina mai tempi fuori sequenza, perché un riordino silenzioso potrebbe nascondere errori di produzione e mettere la copertina sbagliata sul segmento sbagliato. Invece richiede tempi di inizio strettamente crescenti e fallisce in modo chiaro quando una riga successiva è uguale o precedente alla precedente. Le app recuperano il file in riproduzione, così può correggere titoli o aggiungere immagini dopo la pubblicazione senza ricodificare l’episodio.

Cosa succede se i tempi di inizio non sono strettamente crescenti?

Tempi uguali o decrescenti vengono rifiutati così le app podcast non ricevono mai marcatori fuori ordine.

Posso includere immagini e link per capitolo?

Sì. Le stringhe opzionali img e url di ogni capitolo diventano i campi img e url di Podcasting 2.0. Le stringhe vuote sono omesse dall’esportazione.

Come aggiungo i capitoli al feed del mio podcast?

Pubblichi il file restituito dallo strumento a un indirizzo web stabile e lo colleghi all'episodio nel suo feed come file dei capitoli. Le app compatibili lo scaricano quando l'episodio viene riprodotto.

Posso cambiare un titolo dopo aver pubblicato l'episodio?

Sì. Le app scaricano il file dei capitoli durante la riproduzione, quindi può correggere titoli o aggiungere immagini in seguito e pubblicare il nuovo file allo stesso indirizzo, senza ricodificare l'audio.

Un capitolo può restare fuori dall'indice?

Sì. Lo segni come silenzioso e funzionerà come un segnaposto che le app conservano senza mostrarlo a chi ascolta. Per impostazione tutti i capitoli compaiono nell'elenco, quindi modifichi solo quelli da nascondere.

Tutto quello che vedi in questa pagina è disponibile anche via API. Questa sezione è per i team che vogliono integrarlo nei propri sistemi; chi non ne ha bisogno può semplicemente usare lo strumento qui sopra.

POSThttps://api.kit.forhosting.com/audio/audio-chapter-export-format

Autenticazione con Bearer token: un POST mette in coda l'attività e il risultato arriva via webhook o link firmato.

curl -X POST https://api.kit.forhosting.com/audio/audio-chapter-export-format \
  -H "Authorization: Bearer $KIT_KEY" \
  -H "Content-Type: application/json" \
  -d '{"chapters":[{"title":"Intro","start_time":0},{"title":"Main topic","start_time":120,"img":"https://example.com/art/main.jpg","url":"https://example.com/notes/main"},{"title":"Outro","start_time":1800}]}'
{
  "chapters": [
    {
      "title": "Intro",
      "start_time": 0
    },
    {
      "title": "Main topic",
      "start_time": 120,
      "img": "https://example.com/art/main.jpg",
      "url": "https://example.com/notes/main"
    },
    {
      "title": "Outro",
      "start_time": 1800
    }
  ]
}
{
  "task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
  "type": "audio.audio_chapter_export_format",
  "status": "queued",
  "_links": {
    "result": "/tasks/tsk_…/result"
  }
}

L'API è asincrona: ricevi subito un task_id e puoi fare polling fino a 1 richiesta al secondo.

per richiesta$0.002

Prezzo pubblicato, senza token né crediti. Se l'attività fallisce, non paghi.

max_mb200
max_minutes180
HTTPCodiceSignificato
401unauthorizedChiave API mancante o non valida: controlla l'header Authorization.
402insufficient_balanceCredito esaurito: ricarica per continuare a eseguire attività.
404unknown_typeTipo di attività sconosciuto: controlla il campo type della richiesta.
429rate_limitedTroppe richieste in poco tempo: rallenta e riprova tra qualche secondo.

Le app di podcast compatibili con i capitoli Podcasting 2.0 si aspettano un piccolo file JSON collegato all’elemento RSS dell’episodio, non tag di capitolo incorporati nell’MP3. Questa capacità riceve le righe di capitolo ordinate—titolo più tempo di inizio in secondi, con immagine e URL opzionali per capitolo—ed emette l’oggetto chapters versionato standard più una stringa json_text formattata che Lei può ospitare e referenziare con il tag podcast:chapters. Se i tempi di inizio non sono strettamente crescenti, l’attività fallisce con invalid_input così che marcatori errati non raggiungano il feed.

Come si presenta il JSON dei capitoli Podcasting 2.0

Quel file è un oggetto JSON le cui chiavi obbligatorie sono version (comunemente 1.2.0) e chapters, un array di marcatori ordinati per startTime crescente. Campi opzionali a livello di file come author, title, podcastName e description aiutano player web e archivi senza cambiare il modo in cui le app saltano nell’audio. Questo esportatore mappa l’input a righe—start_time e title su ogni capitolo, img e url opzionali—in quella forma camelCase così non deve modificare le parentesi graffe a mano né dimenticare la stringa di versione. Ospiti il json_text risultante a un URL HTTPS stabile, poi aggiunga podcast:chapters con type application/json+chapters nell’item.

Contratto di input, forma della risposta e regole di validazione

Le chiavi di output opzionali sono omesse del tutto invece di essere impostate a null. Invii con POST un corpo JSON con un array chapters obbligatorio di almeno un oggetto. Ogni oggetto deve includere title come stringa non vuota e start_time come numero finito non negativo in secondi (sono accettati alias come startTime su ogni riga). I campi opzionali per capitolo sono img e url come stringhe non vuote, toc come booleano (false segna un capitolo silenzioso; true è il predefinito ed è omesso dall’esportazione), e end_time come numero non negativo non inferiore all’inizio di quel capitolo. Stringhe opzionali a livello di file—version (predefinito 1.2.0), episode_title, author, podcast_name e description—vengono copiate nell’oggetto chapters quando presenti. In caso di successo il corpo restituisce version, chapter_count, chapters come l’array Podcasting 2.0 con chiavi startTime, json_text come il file formattato pronto per il caricamento, mime_type impostato su application/json+chapters, e gli eventuali metadati di episodio forniti sotto author, title, podcast_name e description. I fallimenti di validazione sollevano invalid_input e non vengono fatturati: chapters assente, title vuoto, tempi negativi o non finiti, fine prima dell’inizio, più di cinquecento righe, o tempi di inizio non strettamente crescenti. Esempio: tre righe a zero, centoventi e milleottocento secondi con immagine e link sul capitolo centrale producono un array chapters di tre voci e una stringa json_text allineata strutturalmente agli esempi pubblici Podcasting 2.0.

Dove un esportatore deterministico di capitoli ripaga

Strumenti di trascrizione o di suggerimento capitoli che emettono coppie titolo e secondi possono inoltrare il risultato qui per ottenere il formato orientato all’app senza incorporare la conoscenza Podcasting 2.0 in ogni client. La validazione fallita non consuma saldo. Abbini questo esportatore a prodotti separati di generazione capitoli tramite ASR quando deve inventare marche dall’audio; usi questo percorso quando conosce già i marcatori e le serve solo un’esportazione conforme allo standard. I produttori indipendenti che concludono un episodio in un DAW hanno già le marche temporali in un foglio di calcolo o nelle note della puntata; serve loro un file JSON corretto senza imparare il namespace per tentativi ed errori in ogni app. Poiché l’implementazione è pure parse di livello A, ogni chiamata riuscita costa il prezzo base pubblicato $0.002 senza token di modello e senza rete in uscita. Mantenga i titoli di capitolo abbastanza corti per le UI di indice su mobile, preferisca URL HTTPS assolute per img e url, e riesegua il formattatore dopo ogni modifica affinché l’ordine strettamente crescente resti applicato.

Capitoli pronti per la pubblicazione dalla tabella note

Incolli righe di titolo e tempo di inizio dallo schema dell’episodio, aggiunga link di copertina opzionali e scarichi il json_text Podcasting 2.0 da ospitare accanto all’MP3.

Controlli nella pipeline di CMS e hosting

Chiami l’API dal job di pubblicazione per validare che l’elenco capitoli di ogni episodio abbia tempi strettamente crescenti prima di scrivere il tag RSS podcast:chapters.

Ponte dai marcatori semplici al JSON dell’app

Converta l’output titolo-più-secondi di editor o strumenti di trascrizione in capitoli startTime camelCase senza modificare a mano le parentesi graffe del JSON.

Quale formato produce l’esportazione dei capitoli audio?

Capitoli JSON Podcasting 2.0: una stringa version (predefinito 1.2.0), un array chapters con startTime e title (più img, url, toc e endTime opzionali), e un file json_text formattato con tipo MIME application/json+chapters.

Come allegare il file al feed RSS?

Ospiti json_text a un URL HTTPS pubblico, poi aggiunga <podcast:chapters url="…" type="application/json+chapters" /> sull’item dell’episodio. Le app recuperano il file in riproduzione.

Quanto costa formattare i capitoli audio?

Lo strumento nel browser è gratuito. Le richieste API usano il saldo prepagato KIT a $0.002 per chiamata riuscita; l’input non valido non viene fatturato.

Leggi la documentazione completa del KIT →