Fixes #75
Drops any tracks that start after the track length (as per YouTube).
We can add a flag for making this optional in case it is needed
Diff
index.js | 2 +-
src/parser.js | 8 ++++++++
2 files changed, 8 insertions(+), 2 deletions(-)
@@ -49,7 +49,6 @@
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 @@
artist,
forceTimestamps,
forceDurations,
length: Number(info.videoDetails.lengthSeconds)
});
generate({ tracks, artist, audioFile, album }, output_file);
console.log(`"${output_file}" saved`);
@@ -153,6 +153,12 @@
}
};
var dropInvalid = function(e) {
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 @@
}
}
return result.map(parseTitle).map(parseArtist).map(addTrack).map(addEnd);
return result.map(parseTitle).map(parseArtist).map(addTrack).map(addEnd).filter(dropInvalid);
}