{"id":17036267,"url":"https://github.com/mtillmann/chaptertool","last_synced_at":"2026-01-24T23:20:23.859Z","repository":{"id":65149504,"uuid":"584173656","full_name":"Mtillmann/chaptertool","owner":"Mtillmann","description":"Manage, generate convert chapters for podcasts and other media via cli and web","archived":false,"fork":false,"pushed_at":"2025-04-11T12:34:59.000Z","size":3777,"stargazers_count":29,"open_issues_count":2,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-04-11T14:11:51.197Z","etag":null,"topics":["alpinejs","apple-chapters","chapters","edl","ffmpeg","hls","matroska","mkvmerge","mkvtoolnix","podcast","podlove","pyscenedetect","video","vorbis-comment","vorbis-comments","webvtt","youtube","youtube-dl"],"latest_commit_sha":null,"homepage":"https://mtillmann.github.io/chaptertool/","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Mtillmann.png","metadata":{"files":{"readme":".github/readme.md","changelog":"changes.md","contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2023-01-01T17:35:27.000Z","updated_at":"2025-04-11T12:35:03.000Z","dependencies_parsed_at":"2024-02-01T18:58:00.924Z","dependency_job_id":"2f32f0d7-8cf0-4a2f-b77c-95de3e22d4c8","html_url":"https://github.com/Mtillmann/chaptertool","commit_stats":null,"previous_names":[],"tags_count":6,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Mtillmann%2Fchaptertool","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Mtillmann%2Fchaptertool/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Mtillmann%2Fchaptertool/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Mtillmann%2Fchaptertool/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Mtillmann","download_url":"https://codeload.github.com/Mtillmann/chaptertool/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248571640,"owners_count":21126520,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["alpinejs","apple-chapters","chapters","edl","ffmpeg","hls","matroska","mkvmerge","mkvtoolnix","podcast","podlove","pyscenedetect","video","vorbis-comment","vorbis-comments","webvtt","youtube","youtube-dl"],"created_at":"2024-10-14T08:49:54.845Z","updated_at":"2025-12-28T11:13:06.590Z","avatar_url":"https://github.com/Mtillmann.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"![chaptertool](../static/icons/icon-180.png)\n\n# chaptertool\n\nCreate and _convert_ chapters for podcasts, youtube, matroska, mkvmerge/nero/vorbis, webvtt, ffmpeginfo, ffmetadata, pyscenedetect, apple chapters, edl, podlove simple chapters (xml, json), apple hls chapters and mp4chaps.\n\n\u003e Build on [@mtillmann/chapters](https://github.com/Mtillmann/chapters)\n\n## [Web App](https://mtillmann.github.io/chaptertool)\n\n[Click here to open the web app](https://mtillmann.github.io/chaptertool).\n\n## Supported Formats\n\n| name                  | key            | ext    | info                                                                                                                                                               |\n| ---------------------------- | -------------- | ------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------ |\n| Podcasting 2.0 Chapters      | chaptersjson   | `json` | [spec](https://github.com/Podcastindex-org/podcast-namespace/blob/main/chapters/jsonChapters.md)                                                                   |\n| FFMetadata                   | ffmpegdata     | `txt`  | [spec](https://ffmpeg.org/ffmpeg-formats.html#Metadata-1)                                                                                                          |\n| Matroska XML chapters        | matroskaxml    | `xml`  | [spec](https://www.matroska.org/technical/chapters.html)                                                                                                           |\n| MKVToolNix mkvmerge XML      | mkvmergexml    | `xml`  | [spec](https://mkvtoolnix.download/doc/mkvmerge.html#mkvmerge.chapters)                                                                                            |\n| MKVToolNix mkvmerge _simple_ | mkvmergesimple | `txt`  | [spec](https://mkvtoolnix.download/doc/mkvmerge.html#mkvmerge.chapters)                                                                                            |\n| WebVTT Chapters              | webvtt         | `vtt`  | [spec](https://developer.mozilla.org/en-US/docs/Web/API/WebVTT_API)                                                                                                |\n| Youtube Chapter Syntax       | youtube        | `txt`  |                                                                                                                                                                    |\n| FFMpegInfo                   | ffmpeginfo     | `txt`  | read only, used internally                                                                                                                                         |\n| PySceneDetect                | pyscenedetect  | `csv`  | [project home](https://github.com/Breakthrough/PySceneDetect)                                                                                                      |\n| Vorbis Comment Format        | vorbiscomment  | `txt`  | [spec](https://wiki.xiph.org/Chapter_Extension)                                                                                                                    |\n| \"Apple Chapters\"             | applechapters  | `xml`  | [source](https://github.com/rigaya/NVEnc/blob/master/NVEncC_Options.en.md#--chapter-string:~:text=CHAPTER03NAME%3Dchapter%2D3-,apple%20format,-(should%20be%20in)) |\n| Shutter EDL                  | edl            | `edl`  | [source](https://github.com/paulpacifico/shutter-encoder/blob/f3d6bb6dfcd629861a0b0a50113bf4b062e1ba17/src/application/SceneDetection.java)                        |\n| Podigee Chapters/Chaptermarks | podigee | `json` | [spec](https://app.podigee.com/api-docs#!/ChapterMarks/updateChapterMark:~:text=Model-,Example%20Value,-%7B%0A%20%20%22title%22%3A%20%22string%22%2C%0A%20%20%22start_time)                                                                                                                        | \n| Podlove Simple Chapters      | psc            | `xml`  | [spec](https://podlove.org/simple-chapters/)                                                                                                                       |\n| Podlove Simple Chapters JSON | podlovejson    | `json` | [source](https://github.com/podlove/chapters#:~:text=org/%3E-,Encode%20to%20JSON,-iex%3E%20Chapters)                                                               |\n| MP4Chaps                     | mp4chaps       | `txt`  | [source](https://github.com/podlove/chapters#:~:text=%3Achapters%3E-,Encode%20to%20mp4chaps,-iex%3E%20Chapters)                                                    |\n| Apple HLS Chapters           | applehls       | `json` | [spec](https://developer.apple.com/documentation/http-live-streaming/providing-javascript-object-notation-json-chapters), partial support                          |\n| Scenecut format              | scenecut       | `json` | [source](https://github.com/slhck/scenecut-extractor#:~:text=cuts%20in%20JSON-,format,-%3A)                                                                        |\n| Audible Chapter Format         | audible        | `json` | [source](./audible-chapter-spec.md)                                                                                                                               |\n| Spotify Formats A/B | spotifya\\|spotifyb | `txt` | [see](https://github.com/Mtillmann/chapters/blob/main/misc-text-chapter-spec.md) |\n| Podcastpage Format | podcastpage | `txt` | [see](https://github.com/Mtillmann/chapters/blob/main/misc-text-chapter-spec.md) |\n| Podigee Text Format | podigeetext | `txt` | [see](https://github.com/Mtillmann/chapters/blob/main/misc-text-chapter-spec.md) |\n| TransistorFM Chapter Format | transistorfm | `txt` | [see](https://github.com/Mtillmann/chapters/blob/main/misc-text-chapter-spec.md) |\n| Unknown Shownotes Format | shownotes | `txt` | [see](https://github.com/Mtillmann/chapters/blob/main/misc-text-chapter-spec.md) |\n\n\n## CLI\n\nAn updated cli tool with better interface is available here: [chapconv](https://github.com/Mtillmann/chapconv)\n\nIf you want to extract chapters from videos, rather use native ffmpeg or pyscenedetect commands and integrate chapconv in your pipeline. Here is the [old CLI Documentation](/cli.md). \n\n## Examples \u0026 FAQ\n\n[examples.md](/examples.md), [FAQ](/faq.md)\n\n## Docker\n\nUse docker to run the web GUI:\n\n```shell\ndocker build -t chaptertool-gui .\ndocker run -p 8989:8989 chaptertool-gui\n# open http://localhost:8989 in your browser\n```\n\nor use the image from dockerhub:\n\n```shell\ndocker run -p 8989:8989 martintillmann/chaptertool-gui\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmtillmann%2Fchaptertool","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmtillmann%2Fchaptertool","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmtillmann%2Fchaptertool/lists"}