Go to file
2021-06-28 15:04:09 +05:30
.github Run tests on GitHub Actions 2021-06-09 19:10:14 +00:00
src Fixes #64 2021-06-28 14:53:41 +05:30
test broken test for #64 2021-06-28 14:26:58 +05:30
.editorconfig Initial commit 2017-06-08 01:44:09 +05:30
.gitignore Initial commit 2017-06-08 01:44:09 +05:30
.npmignore add npm ignore 2021-06-01 12:35:39 +05:30
CHANGELOG.md Version Bump 2021-06-28 13:55:31 +05:30
index.js Improve helptext 2021-06-28 15:04:09 +05:30
package-lock.json Version Bump 2021-06-28 13:55:31 +05:30
package.json Version Bump 2021-06-28 13:55:31 +05:30
README.md Improve README and --help 2021-06-28 14:20:10 +05:30


Generate CUE sheet from timestamps in youtube video description.

What is this for?

  1. If you have DJ-mix or album on YouTube that you'd like to generate a CUE sheet for.
  2. The video has timestamps in the video description.
  3. The video is publicly available on Youtube.

youtube-cue will read the video description, get the timestamps and generate a CUE sheet accordingly.


  1. It does not download tracks from YouTube
  2. It does not split your tracks
  3. It does not tag your tracks.

For all of the above, there are better tools available, such as youtube-dl, m4acut, mp3splt, cuetools, beets and many more. youtube-cue tries to do one thing well.


npm install -g youtube-cue


npm update -g youtube-cue


You need to pass 2 parameters, a Youtube URL and a output CUE filename. YouTube short URLs (youtu.be) are accepted. You can additionally pass a audio-file argument which is used for the FILE specified in the CUE file.

$ youtube-cue [--audio-file audio.m4a] <youtube_url> <output.cue>

  --help, Show help
  --audio-file, Input Audio File (optional)

  $ youtube-cue --audio-file audio.m4a "https://www.youtube.com/watch?v=THzUassmQwE" output.cue
    output.cue saved
  $ youtube-cue "https://youtu.be/THzUassmQwE" folklore.cue
    folklore.cue saved

Personal Usage

I have this in my .bashrc to download, split, tag, and import albums:

function ytdl.album() {
  cd $(mktemp -d)
  youtube-dl -f "bestaudio[ext=m4a]" --output "audio.m4a" "$1"
  youtube-cue --audio-file "audio.m4a" "$1" tracks.cue
  m4acut -C tracks.cue "audio.m4a" && \
  trash audio.m4a && \
  beet import -map .


  • If this video does not work on a specific video, please attach the complete output
  • Pull Requests are welcome that add support for a better parser without breaking the existing tests
  • Please add tests for any new functionality


Licensed under the MIT License