ForHosting KIT · Audio et voix

Formater chapitres audio pour apps

Trois chapitres qui commencent à 0, 120 et 1800 secondes deviennent un seul fichier que les applis de podcast lisent pour afficher une table des matières et naviguer dans l'épisode. Les temps doivent toujours avancer, sinon rien n'est exporté. Gratuit dans votre navigateur.

  • Gratuit
  • Fonctionne dans votre navigateur
  • Sans inscription
  • Vos données restent sur votre appareil
Utilisez-le depuis WebAPIE-mailTelegramApp bientôt

Tout se passe dans votre navigateur : gratuit, sans envoi de vos données.

Les producteurs connaissent déjà les titres de section et l’instant de début de chacune ; ce dont ils ont besoin est un export correct et lisible par l’app, avec des champs startTime en camelCase, une pochette et des liens optionnels, et la garantie que les horodatages ne reculent jamais.

Ce qu'un fichier de chapitres apporte à l'auditeur

Les applis de podcast qui gèrent les chapitres ne les lisent pas dans le fichier audio lui-même. Elles récupèrent un petit fichier séparé, lié à l'épisode dans votre flux, et s'en servent pour afficher une table des matières, sauter à chaque partie et changer l'image pendant l'écoute. Chaque chapitre a besoin d'une heure de début en secondes depuis le début de l'audio ; un titre est vivement conseillé pour que l'auditeur voie des noms lisibles. Vous pouvez aussi ajouter une image et un lien à n'importe quel chapitre, marquer un chapitre comme silencieux pour qu'il n'apparaisse pas dans la liste et fixer une heure de fin si vous le souhaitez. Comme les applis récupèrent le fichier à la lecture, vous pouvez corriger un titre ou ajouter une image après publication sans réencoder l'épisode.

Préparer les chapitres sans erreur

Écrivez vos parties dans l'ordre, chacune avec son titre et la seconde où elle commence, par exemple une introduction à 0, le sujet principal à 120 et la conclusion à 1800. L'outil les convertit au format standard et renvoie le texte prêt à héberger à une adresse web stable. L'erreur la plus courante est une heure de début répétée ou qui recule. L'outil ne réordonne jamais les chapitres à votre place, car un réordonnancement silencieux pourrait masquer une erreur et associer la mauvaise image au mauvais segment ; il s'arrête et indique la ligne hors d'ordre.

À quoi ressemble un fichier de chapitres de podcast

L’espace de noms Podcasting 2.0 pointe chaque épisode vers un fichier externe de chapitres avec le type MIME application/json+chapters. Chaque chapitre nécessite au minimum startTime sous forme de nombre flottant en secondes depuis le début de l’audio ; title est fortement recommandé pour que les auditeurs voient une table des matières lisible. Les champs optionnels de chapitre incluent img pour l’illustration par section, url pour une page web ou des notes d’épisode, toc à false pour des marqueurs silencieux de métadonnées uniquement, et endTime lorsque vous souhaitez une fin explicite.

L’ordre des chapitres est validé, non deviné : la capacité ne réordonne jamais des temps désordonnés, car un réordonnancement silencieux pourrait masquer des erreurs de production et placer la mauvaise illustration sur le mauvais segment. Elle exige au contraire des heures de début strictement croissantes et échoue clairement lorsqu’une ligne ultérieure est égale ou antérieure à la précédente. Les apps récupèrent le fichier à la lecture, vous pouvez donc corriger des titres ou ajouter des images après publication sans réencoder l’épisode.

Que se passe-t-il si les heures de début ne sont pas strictement croissantes ?

Les temps égaux ou décroissants sont rejetés afin que les apps de podcast ne reçoivent jamais de marqueurs désordonnés.

Puis-je inclure des images et des liens par chapitre ?

Oui. Les chaînes optionnelles img et url de chaque chapitre deviennent les champs img et url Podcasting 2.0. Les chaînes vides sont omises de l’export.

Comment rattacher le fichier à mon flux RSS ?

Les apps récupèrent le fichier à la lecture.

Puis-je modifier un titre après la publication de l'épisode ?

Oui. Les applis récupèrent le fichier de chapitres à la lecture : vous pouvez corriger des titres ou ajouter des images plus tard et héberger le nouveau fichier à la même adresse, sans réencoder l'audio.

Un chapitre peut-il rester hors de la table des matières ?

Oui. Marquez-le comme silencieux : il sert alors de repère que les applis conservent sans l'afficher à l'auditeur. Par défaut, tous les chapitres figurent dans la liste ; ne modifiez que ceux à masquer.

Tout sur cette page est disponible par programmation. Cette section s'adresse aux équipes qui veulent l'intégrer à leurs systèmes ; les autres peuvent simplement utiliser l'outil ci-dessus.

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

Authentification par jeton Bearer : un seul POST met la tâche en file d’attente, et le résultat vous parvient par webhook ou lien signé.

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 est asynchrone : chaque appel renvoie un task_id immédiatement, puis vous interrogez l’état à raison d’une requête par seconde.

par requête$0.002

Le prix est publié, sans tokens ni crédits. Une tâche qui échoue n’est pas facturée.

max_mb200
max_minutes180
HTTPCodeSignification
401unauthorizedClé API absente ou invalide : vérifiez l’en-tête Authorization.
402insufficient_balanceSolde insuffisant : rechargez votre compte pour lancer cette tâche.
404unknown_typeType de tâche inconnu : vérifiez le champ type de votre requête.
429rate_limitedTrop de requêtes : ralentissez la cadence, puis réessayez.

Les applications de podcast compatibles avec les chapitres Podcasting 2.0 attendent un petit fichier JSON lié à l’élément RSS de l’épisode, et non des balises de chapitre intégrées dans le MP3. Cette capacité prend vos lignes de chapitres ordonnées—titre plus heure de début en secondes, avec image et URL optionnelles par chapitre—et émet l’objet chapters versionné standard ainsi qu’une chaîne json_text mise en forme que vous pouvez héberger et référencer avec la balise podcast:chapters. Si les heures de début ne sont pas strictement croissantes, la tâche échoue avec invalid_input afin que de mauvais marqueurs n’atteignent pas le flux.

À quoi ressemble le JSON de chapitres Podcasting 2.0

Ce fichier est un objet JSON dont les clés obligatoires sont version (souvent 1.2.0) et chapters, un tableau de marqueurs ordonnés par startTime croissant. Des champs optionnels au niveau du fichier tels que author, title, podcastName et description aident les lecteurs web et les archives sans changer la façon dont les apps sautent dans l’audio. Cet exporteur mappe votre entrée par lignes—start_time et title sur chaque chapitre, img et url optionnels—vers cette forme camelCase afin que vous n’éditiez pas les accolades à la main ni n’oubliiez la chaîne de version. Hébergez le json_text résultant à une URL HTTPS stable, puis ajoutez podcast:chapters avec type application/json+chapters dans l’élément.

Contrat d’entrée, forme de la réponse et règles de validation

Les clés de sortie optionnelles sont omises entièrement plutôt que mises à null. Envoyez en POST un corps JSON avec un tableau chapters obligatoire d’au moins un objet. Chaque objet doit inclure title comme chaîne non vide et start_time comme nombre fini non négatif en secondes (des alias tels que startTime sont acceptés sur chaque ligne). Les champs optionnels par chapitre sont img et url comme chaînes non vides, toc comme booléen (false marque un chapitre silencieux ; true est la valeur par défaut et est omis de l’export), et end_time comme nombre non négatif non inférieur au début de ce chapitre. Les chaînes optionnelles au niveau du fichier—version (par défaut 1.2.0), episode_title, author, podcast_name et description—sont copiées dans l’objet chapters lorsqu’elles sont présentes. En cas de succès le corps renvoie version, chapter_count, chapters comme le tableau Podcasting 2.0 avec des clés startTime, json_text comme le fichier mis en forme prêt à téléverser, mime_type égal à application/json+chapters, et les métadonnées d’épisode fournies sous author, title, podcast_name et description. Les échecs de validation lèvent invalid_input et ne sont pas facturés : chapters manquant, title vide, temps négatifs ou non finis, fin avant le début, plus de cinq cents lignes, ou heures de début qui ne sont pas strictement croissantes. Exemple : trois lignes à zéro, cent vingt et mille huit cents secondes avec une image et un lien sur le chapitre du milieu produisent un tableau chapters de trois entrées et une chaîne json_text alignée structurellement sur les exemples publics Podcasting 2.0.

Où un exporteur déterministe de chapitres justifie son coût

Les outils de transcription ou de suggestion de chapitres qui produisent des paires titre et secondes peuvent diriger leur résultat ici pour obtenir le format orienté app sans intégrer la connaissance Podcasting 2.0 dans chaque client. Une validation en échec ne consomme pas de solde. Associez cet exporteur à des produits distincts de génération de chapitres par ASR lorsque vous devez inventer des horodatages à partir de l’audio ; utilisez ce chemin lorsque vous connaissez déjà les marqueurs et n’avez besoin que d’un export conforme au standard. Les producteurs indépendants qui terminent un épisode dans un DAW ont déjà des horodatages dans un tableur ou des notes d’émission ; ils ont besoin d’un fichier JSON correct sans apprendre l’espace de noms par essais et erreurs dans chaque app. Comme l’implémentation est pure parse de niveau A, chaque appel réussi coûte le prix de base publié $0.002 sans jetons de modèle et sans réseau sortant. Gardez les titres de chapitre assez courts pour les interfaces d’index mobile, préférez des URL HTTPS absolues pour img et url, et relancez le formateur après chaque modification afin que l’ordre strictement croissant reste appliqué.

Chapitres prêts à publier depuis le tableau de notes

Collez des lignes titre et heure de début depuis le plan de l’épisode, ajoutez des liens d’illustration optionnels et téléchargez le json_text Podcasting 2.0 à héberger à côté du MP3.

Contrôles du pipeline CMS et d’hébergement

Appelez l’API depuis votre job de publication pour valider que la liste de chapitres de chaque épisode a des temps strictement croissants avant d’écrire la balise RSS podcast:chapters.

Passerelle des marqueurs simples vers le JSON d’app

Convertissez la sortie titre-plus-secondes d’éditeurs ou d’outils de transcription en chapitres startTime camelCase sans éditer manuellement les accolades du JSON.

Quel format l’export de chapitres audio produit-il ?

Des chapitres JSON Podcasting 2.0 : une chaîne version (par défaut 1.2.0), un tableau chapters avec startTime et title (plus img, url, toc et endTime optionnels), et un fichier json_text mis en forme avec le type MIME application/json+chapters.

Combien coûte le formatage des chapitres audio ?

L’outil navigateur est gratuit. Les requêtes API utilisent le solde prépayé KIT à $0.002 par appel réussi ; une entrée invalide n’est pas facturée.

Consulter la documentation complète du KIT →