diff --git a/index.js b/index.js index 6a13e67..e94fe72 100755 --- a/index.js +++ b/index.js @@ -49,7 +49,6 @@ if (argv.version) { let url = argv._[0]; ytdl.getInfo(url).then((info) => { - console.log(info); let audioFile = argv["audio-file"] ? argv["audio-file"] : `${info.videoDetails.title}.m4a`; @@ -75,6 +74,7 @@ if (argv.version) { artist, forceTimestamps, forceDurations, + length: Number(info.videoDetails.lengthSeconds) }); generate({ tracks, artist, audioFile, album }, output_file); console.log(`"${output_file}" saved`); diff --git a/src/parser.js b/src/parser.js index ad966d3..ea0d421 100644 --- a/src/parser.js +++ b/src/parser.js @@ -153,6 +153,12 @@ var fixDurations = function (list) { } }; +var dropInvalid = function(e) { + // All tracks should start before the closing time + if (_options.length) return (e.start.calc < _options.length); + return true; +} + export function parse( text, options = { artist: "Unknown", forceTimestamps: false, forceDurations: false } @@ -184,5 +190,5 @@ export function parse( } } - return result.map(parseTitle).map(parseArtist).map(addTrack).map(addEnd); + return result.map(parseTitle).map(parseArtist).map(addTrack).map(addEnd).filter(dropInvalid); }