mirror of
https://github.com/captn3m0/youtube-cue.git
synced 2024-09-07 22:46:26 +00:00
![]() Bumps [ytdl-core](https://github.com/fent/node-ytdl-core) from 4.9.0 to 4.9.1. - [Release notes](https://github.com/fent/node-ytdl-core/releases) - [Commits](https://github.com/fent/node-ytdl-core/compare/v4.9.0...v4.9.1) --- updated-dependencies: - dependency-name: ytdl-core dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> |
||
---|---|---|
.github | ||
src | ||
test | ||
.editorconfig | ||
.gitignore | ||
.npmignore | ||
CHANGELOG.md | ||
index.js | ||
package-lock.json | ||
package.json | ||
README.md |
youtube-cue
![Total Dependencies](https://img.shields.io/badge/Total%20Dependencies-4-orange)
Generate CUE sheet from timestamps in youtube video description.
What is this for?
- If you have DJ-mix or album on YouTube that you'd like to generate a CUE sheet for.
- The video has timestamps in the video description.
- The video is publicly available on Youtube.
youtube-cue
will read the video description, get the timestamps and generate a CUE sheet accordingly. It will also work if track durations are used instead of timestamps.
Anti-features
- It does not download tracks from YouTube
- It does not split your tracks
- 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.
Installation
npm install -g youtube-cue
Upgrade
npm update -g youtube-cue
Usage
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_file]
Options
--help, Show help
--audio-file, Input Audio File (optional) that is written to the CUE sheet
The default audio file is set to %VIDEOTITLE.m4a
The default output file is set to %VIDEOTITLE.cue
where $VIDEOTITLE is the title of the YouTube video.
Generally the parser detects whether numbers are positional timestamps or track durations.
To enforce a desired interpretation you can use these flags:
--timestamps Parse as positional timestamps (relative to the start of the playlist)
--durations Parse as track durations
The above 2 are only needed to force behaviour in
very specific edge cases, they should not be required for most files.
Examples
$ youtube-cue --audio-file audio.m4a "https://www.youtube.com/watch?v=THzUassmQwE"
"T A Y L O R S W I F T – Folklore [Full album].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 .
}
HACKING
- If it 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
License
Licensed under the MIT License