{"id":15364165,"url":"https://github.com/kellnerd/cueshit","last_synced_at":"2025-04-15T09:30:18.995Z","repository":{"id":223721676,"uuid":"761345710","full_name":"kellnerd/cueshit","owner":"kellnerd","description":"Convert between different cue sheet / chapter / tracklist formats","archived":false,"fork":false,"pushed_at":"2024-12-20T12:30:56.000Z","size":123,"stargazers_count":5,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-04-07T21:19:01.865Z","etag":null,"topics":["chapters","converter-cli","cuesheet","deno","tracklist"],"latest_commit_sha":null,"homepage":"https://deno.land/x/cueshit","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/kellnerd.png","metadata":{"files":{"readme":"README.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":"2024-02-21T17:40:06.000Z","updated_at":"2025-01-24T17:09:54.000Z","dependencies_parsed_at":"2024-03-25T18:32:00.954Z","dependency_job_id":"97c46c2c-a016-4afd-a08d-7c659f301c58","html_url":"https://github.com/kellnerd/cueshit","commit_stats":{"total_commits":101,"total_committers":1,"mean_commits":101.0,"dds":0.0,"last_synced_commit":"61c565aad744d5825b2933e4efce73b522e31d16"},"previous_names":["kellnerd/cueshit"],"tags_count":11,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kellnerd%2Fcueshit","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kellnerd%2Fcueshit/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kellnerd%2Fcueshit/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kellnerd%2Fcueshit/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/kellnerd","download_url":"https://codeload.github.com/kellnerd/cueshit/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":249042689,"owners_count":21203333,"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":["chapters","converter-cli","cuesheet","deno","tracklist"],"created_at":"2024-10-01T13:10:23.976Z","updated_at":"2025-04-15T09:30:18.978Z","avatar_url":"https://github.com/kellnerd.png","language":"TypeScript","readme":"# cueshit\n\nConvert between different cue sheet / chapter / tracklist formats.\n\nEach supported input format is parsed into an [internal representation] which can be serialized into a supported output format.\n\nThe command line app can read from standard input (default), local files (specify a path) and online resources (specify an URL).\nIt will write to standard output (default) or to a local file (specify a path).\n\n## Setup\n\nInstall the command line app (once [Deno] is set up on your computer):\n\n```sh\ndeno install --global --allow-read --allow-write --allow-net https://deno.land/x/cueshit/cli.ts\n```\n\nIf you have installed [FFmpeg], you can alternatively install the CLI with enabled FFmpeg integration:\n\n```sh\ndeno install --global --allow-run=ffmpeg,ffprobe --allow-read --allow-write --allow-net https://deno.land/x/cueshit/cli.ts\n```\n\nThis allows you to read embedded chapters directly from multimedia files using [ffprobe].\nAdditionally you can also split multimedia files into one file per chapter.\n\n## Usage\n\nDisplay the integrated help to learn how to use the CLI:\n\n```sh\ncueshit --help\n```\n\nThe basic command to convert from one format to another looks as follows:\n\n```sh\ncueshit [input-path-or-url] [--from \u003cformat\u003e] [--to \u003cformat\u003e] [--output \u003cpath\u003e]\n```\n\nSee the sections below for [examples](#examples) and an overview of the [supported formats](#supported-formats).\n\n\u003e [!NOTE]\n\u003e Input format (`--from` or `-f`) and output format (`--to` or `-t`) options are optional for conversion (since v0.3).\n\u003e If these are not specified, the CLI automatically tries to detect them based on file extensions (and content).\n\nAll formats which can be parsed (including embedded chapters) can also be used to split a multimedia file into its chapters.\nThe following subcommand calls `ffmpeg` with the appropriate arguments under the hood:\n\n```sh\ncueshit split [--from \u003cformat\u003e] \u003cinput-path-or-url\u003e [ffmpeg-options...]\n```\n\nAgain you can display the integrated help to learn more about the command:\n\n```sh\ncueshit split --help\n```\n\n\u003e [!NOTE]\n\u003e Many supported cue sheet formats can not store the path to the associated media file.\n\u003e For these formats the path to the source media file has to be passed with `--sheet.media-file \u003cpath\u003e`.\n\n### Examples\n\nConvert chapters from a YouTube description into a MusicBrainz track parser listing.\nInput is read from standard input (via `cat`), output is written to standard output (by default):\n\n```\n$ cat \u003c\u003c --- | cueshit --from youtube --to musicbrainz\nLines which do not start with a timestamp will be skipped.\n0:00 Test Title\n2:56 Another Title\n4:17 Final Title\n---\n1. Test Title (2:56)\n2. Another Title (1:21)\n3. Final Title (?:??)\n```\n\nExtract chapters from a FLAC audio file using [ffprobe] and store them as a cue sheet (`test.cue`):\n\n```sh\nffprobe -v error -of json -show_format -show_streams -show_chapters test.flac | cueshit -o test.cue\n```\n\nIf you have enabled the FFmpeg integration during installation, the above command can be simplified to (since v0.4):\n\n```sh\ncueshit test.flac --output test.cue\n```\n\nYou can also split the audio into one file per chapter instead:\n\n```sh\ncueshit split test.flac\n```\n\nCreate a cue sheet from an Audacity label track (`labels.txt`) which belongs to the audio from `test.wav`.\nSince the input format only contains chapters and does not know about the audio file, it has to be specified manually:\n\n```sh\ncueshit -f audacity labels.txt -o test.cue --sheet.media-file test.wav\n```\n\nAdditional cue sheet properties can be specified via the `--sheet.title` and `--sheet.performer` options.\n\n## Supported Formats\n\nNot all formats are supported as both input and output format (currently).\nYou can read the documentation for all formats inside their [modules](https://deno.land/x/cueshit/format).\n\n```\nID           Input  Output  Name\n-----------  -----  ------  -----------------------------------------------\naudacity       X      X     Audacity Label Track (TSV)\ncue                   X     Cue Sheet\nffmpeg                X     FFmpeg Split Commands\nffprobe        X            ffprobe Metadata with Chapters (JSON)\nia-segments    X            Internet Archive Segment Data (JSON)\ninternal              X     Internal Representation (JSON)\nllc                   X     LosslessCut Project (LLC)\nlosslesscut    X      X     LosslessCut Segments (CSV)\nmusicbrainz    X      X     MusicBrainz Track Parser Listing\nmb-api         X            MusicBrainz API Release (JSON)\nogm                   X     OGM Tools Chapters / MKVToolNix Simple Chapters\nyoutube        X      X     Youtube Description with Chapters\n```\n\nList all formats which are currently available for the CLI:\n\n```sh\ncueshit formats\n```\n\n[Deno]: https://deno.com/\n[internal representation]: https://deno.land/x/cueshit/cuesheet.ts?s=CueSheet\n[FFmpeg]: https://ffmpeg.org/\n[ffprobe]: https://ffmpeg.org/ffprobe.html\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkellnerd%2Fcueshit","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fkellnerd%2Fcueshit","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkellnerd%2Fcueshit/lists"}