{"id":28219736,"url":"https://github.com/landeyucc/mkv-chapweb","last_synced_at":"2025-10-14T20:33:34.008Z","repository":{"id":281332427,"uuid":"944958439","full_name":"landeyucc/MKV-ChapWeb","owner":"landeyucc","description":"A tool for generating and editing MKV chapters using static web pages. 一个用于创建与编辑MKV章节的在线工具（也编译了离线使用的便携版）。","archived":false,"fork":false,"pushed_at":"2025-03-15T13:37:47.000Z","size":1405,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-06-11T09:48:00.423Z","etag":null,"topics":["javascript","mkv","mkv-chapters","mkvtool","offline-app","video","web-app","xml"],"latest_commit_sha":null,"homepage":"https://mkv-chapweb.coldsea.vip","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/landeyucc.png","metadata":{"files":{"readme":"readme-CN.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","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}},"created_at":"2025-03-08T10:21:57.000Z","updated_at":"2025-04-06T15:30:01.000Z","dependencies_parsed_at":"2025-03-08T11:36:15.406Z","dependency_job_id":null,"html_url":"https://github.com/landeyucc/MKV-ChapWeb","commit_stats":null,"previous_names":["landeyucc/mkv-chapweb"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/landeyucc/MKV-ChapWeb","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/landeyucc%2FMKV-ChapWeb","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/landeyucc%2FMKV-ChapWeb/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/landeyucc%2FMKV-ChapWeb/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/landeyucc%2FMKV-ChapWeb/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/landeyucc","download_url":"https://codeload.github.com/landeyucc/MKV-ChapWeb/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/landeyucc%2FMKV-ChapWeb/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":279020904,"owners_count":26086948,"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","status":"online","status_checked_at":"2025-10-14T02:00:06.444Z","response_time":60,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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":["javascript","mkv","mkv-chapters","mkvtool","offline-app","video","web-app","xml"],"created_at":"2025-05-18T03:11:23.584Z","updated_at":"2025-10-14T20:33:34.004Z","avatar_url":"https://github.com/landeyucc.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# MKV ChapWeb工具文档\n文档语言 [English](readme.md) | [简体中文](readme-CN.md)\n## 前言\n\n本年3月初，因个人需求需要生成MKV章节文件，但经过大量查找，发现支持直接编辑章节文件的软件极为稀少，且找到的软件界面陈旧，风格停留在较早时期。鉴于此，本人花费时间使用纯静态前端语言开发了此工具，并将其命名为MKV ChapWeb。\n\n## 简介\n\nMKV ChapWeb是一款专门用于MKV视频格式章节生成的工具，能够帮助用户高效地生成、编辑和管理视频文件中的章节信息。通过直观的网页界面设计，用户可以便捷地设置视频的章节数量、章节名称、开始时间和结束时间等基础参数，并生成符合MKV格式规范的章节标签XML文件，便于在支持MKV视频的播放器中实现精确的章节导航功能。\n\n![Chapter](./img/mkv-chapter-img-zh.jpg)\n\n## 使用方法\n此工具的参数设置相对简单，适用于日常使用场景，未包含较为生僻的参数标签。完成章节编辑后请使用相关工具进行混流，例如[MKVToolNix GUI](https://mkvtoolnix.download/)，此工具也提供了更加完善的章节编辑器，对比本项目显得更加强大。\n### 工具的界面布局\n  - **响应式布局** ：MKV ChapWeb界面采用现代化设计风格，能够自适应PC和移动端设备。该界面支持根据系统设置自动切换浅色模式和深色模式，同时支持中英文双语显示。在加载索引页时，工具会智能检测浏览器的语言设置，并自动跳转到相应语言的页面，避免了因语言不通而需要使用浏览器翻译的问题。\n  - **侧边栏参数块** ：打开MKV ChapWeb在线网站或启动MKV ChapWeb离线工具后，主界面的侧边栏会根据默认的章节数量动态生成参数块。每个参数块包含章节名称、开始时间、结束时间等输入项，用户可直接在对应的输入框中填写或修改章节信息。\n  - **主控参数区** ：位于页面主体部分，包含视频章节数量、语言标签等关键参数设置项。修改这些参数后，点击相关按钮可触发相应操作，部分操作会动态生成，例如生成章节标签、更新侧边栏参数块等。需要注意的是，修改主控参数区的数据会刷新并清除侧边栏已输入的信息，因此建议用户在设置完主控参数区后再进行下一步操作。\n  - **操作按钮** ：“生成章节标签”按钮用于根据当前设置生成XML格式的章节标签文件；“上传XML”和“下载XML”按钮分别用于导入已有的章节信息文件（方便在数据临时导出后再次上传继续编辑）和下载当前生成的章节标签文件。点击“下载XML”按钮后，用户可直接预览生成的XML文件并进行下载操作。\n\n### 章节参数设置\n  1. **章节数量调整** ：在主控参数区的“视频章节数量”输入框中输入所需的章节数，然后按下回车键，侧边栏将自动更新为相应数量的章节参数块，用户可在这些参数块中逐一填写各章节的详细信息。\n  2. **章节名称填写** ：在每个章节参数块的“章节名称”输入框中，输入该章节的名称或标题。章节名称应简洁明了且具有辨识度，以便在播放设备上清晰地标识章节内容。\n  3. **时间参数设置** ：对于“章节开始时间”和“章节结束时间”输入框，用户需按照指定的时间格式（如“时：分：秒”）输入相应的时间值，以准确反映章节在视频中的起止位置，确保在播放时能够正确识别到相应章节。\n\n在本功能部分的逻辑代码中，添加了纠错功能。在输入时间码时，系统仅识别前六位数字作为时间码，且除了标准时间格式所支持的冒号(:)作为分隔符外，还允许使用小数点(.)、减号(-)进行填写。最终输出的时间码会进行格式化处理，即将所有分隔符替换为冒号(:)，并移除多余的数字字符和空格，对于个位数的时间值，会自动补零为两位数（例如：输入2.44-6会格式化输出为02:44:06）。\n\n### 文件操作流程\n  - **生成XML文件** ：完成所有章节参数设置后，点击“生成章节标签”按钮，工具将根据当前参数生成符合规范的XML格式章节标签文件，并在页面中显示预览内容。预览页面使用开源的[highlight.js](https://highlightjs.org/)组件库实现XML语法高亮显示，用户可检查文件的准确性和完整性。完成编辑后，若文件无误，用户可双击输出的代码进行一键复制。\n  - **下载XML文件** ：若对生成的XML文件检查无误，点击“下载XML”按钮，将文件保存到本地设备，以便后续在视频编辑软件或MKV相关工具中使用，或将其混流封装到MKV视频文件中以实现章节功能。\n  - **上传XML文件** ：如需对已有的XML章节文件进行修改或查看，可点击“上传XML”按钮，选择本地的XML文件进行导入。工具会解析文件内容并更新侧边栏的章节参数块，用户可在此基础上进行进一步编辑，此外还可以通过拖拽文件至窗口进行上传。\n  \n支持解析OGM风格的简易章节文件\n```txt\nCHAPTER01=00:00:00.000\nCHAPTER01NAME=片头\nCHAPTER02=00:00:35.789\nCHAPTER02NAME=第一部分\nCHAPTER03=00:01:23.456\nCHAPTER03NAME=第二部分\n```\n\n也支持标准MKV章节规范的XML文件\n```xml\n\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\n\u003cChapters\u003e\n  \u003cEditionEntry\u003e\n    \u003cEditionUID\u003e100480617270839\u003c/EditionUID\u003e\n    \u003cChapterAtom\u003e\n      \u003cChapterUID\u003e1\u003c/ChapterUID\u003e\n      \u003cChapterTimeStart\u003e00:00:00.000000000\u003c/ChapterTimeStart\u003e\n      \u003cChapterDisplay\u003e\n        \u003cChapterString\u003e第1章\u003c/ChapterString\u003e\n    \t\u003cChapterLanguage\u003echi\u003c/ChapterLanguage\u003e\n    \t\u003cChapLanguageIETF\u003ezh\u003c/ChapLanguageIETF\u003e\n      \u003c/ChapterDisplay\u003e\n    \u003c/ChapterAtom\u003e\n    \u003cChapterAtom\u003e\n      \u003cChapterUID\u003e2\u003c/ChapterUID\u003e\n      \u003cChapterTimeStart\u003e00:00:00.000000000\u003c/ChapterTimeStart\u003e\n      \u003cChapterDisplay\u003e\n        \u003cChapterString\u003e第2章\u003c/ChapterString\u003e\n    \t\u003cChapterLanguage\u003echi\u003c/ChapterLanguage\u003e\n    \t\u003cChapLanguageIETF\u003ezh\u003c/ChapLanguageIETF\u003e\n      \u003c/ChapterDisplay\u003e\n    \u003c/ChapterAtom\u003e\n  \u003c/EditionEntry\u003e\n\u003c/Chapters\u003e\n```\n\n此处的上传操作由浏览器解析数据并在本地进行处理。对于上传解析识别“章节结束时间”的功能是智能化的，即便未勾选主控制块的“是否启用章节结束时间标签”选项，“章节结束时间”也会显示在右侧，但不会输出，因为输出章节结束时间的标签控制由“是否启用章节结束时间标签”的逻辑源码控制，而非上传解析逻辑源码。此功能目前已对其逻辑代码优化，由测试版转为正式版，如仍然发现无法上传文件，可刷新页面重试。并且在上传前，请先设置主参数，否则上传的数据会被刷新和清除。\n\n## 更新记录\n### 第二时期版本\n  - **v2.3a** ：修复翻译错误与不输出语言标签的问题并且优化了上传解析XML的功能，扩展了不止上传标准XML的章节信息文件，还允许上传OGM风格的简易章节文件(.txt格式的)进行解析为XML标签。修复章节名称无法解析部分常用符号的错误。\n  - **v2.2a** ：添加了移除和添加侧边参数块的功能，通过此操作不会重置已有的数据。同时，添加了适配语言以及浅色和深色模式的切换功能（支持在初始化页面时从浏览器检测），进一步优化了界面样式，使其具备更好的响应式布局效果。\n  - **v2.1b** ：新增了上传XML文件和下载XML文件的功能，目前上传功能处于beta阶段，可能会出现数据异常或无法上传的情况。\n  - **v2.0a** ：对样式和生成逻辑进行了重构，添加了侧边栏，并将所有子参数传入章节参数块。主控参数区添加了动态的章节参数块，并对移动端样式进行了适配优化。\n### 第一时期版本\n  - **v1.3c** ：添加了结束时间标签的可选状态，默认不启用。同时添加了双击复制所有代码的功能。\n  - **v1.2a** ：添加了自定义开始和结束时间的标签。时间输入框默认支持使用小数点和减号作为分隔符进行连接，最后输出时会格式化为标准的时间格式。\n  - **v1.1a** ：第二个版本，新增了语言标签和参数ID类型（顺序或随机）的设置功能。\n  - **v1.0a** ：初个版本，仅包含生成章节和章节数量两个参数。\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flandeyucc%2Fmkv-chapweb","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Flandeyucc%2Fmkv-chapweb","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flandeyucc%2Fmkv-chapweb/lists"}