marcan / blitzloop

Open source karaoke software
GNU General Public License v2.0
207 stars 31 forks source link

Process song (directory) even if no .blitz file is present #50

Open jose1711 opened 4 years ago

jose1711 commented 4 years ago

It's not uncommon to find songs online with lyrics directly placed into videos. For cases like these the lyrics in .blitz file basically is unnecessary and blitzloop can be used in role of player (with ability to change speed/pitch), playlist manager and music/microphone mixer. At this moment though in order for this to work a void .blitz is still required.

marcan commented 4 years ago

The .blitz files are not just for lyrics, they also contain all the song metadata to list the song in search, the UI, cover art reference, filename for the audio/video, sync offset info, ReplayGain info, etc. It doesn't make any sense to have BlitzLoop scan for video/audio files and make up all of that from thin air. Hypothetically we could use file tags, but that would be adding a whole separate code path just for these files, which I don't think makes any sense; BlitzLoop isn't intended as a general media player, there are plenty of apps for that already. Plus file tags won't let you add info like katakana/search hint fields that blitz files support, even if we did add them.

jose1711 commented 4 years ago

So your suggestion for cases like these would be make a small script that'll make just a minimum file? Maybe we can leave this opened until such thing hits surface.

marcan commented 4 years ago

Sure, but you still need to add the metadata, so I'm not sure how useful that script would be. You might as well have a template with no lyrics you just copy and edit to add the missing info.

jose1711 commented 4 years ago

An attempt to pull the missing information from a 3rd party service (provided tracks are mostly English and correctly named): video_karaoke2blitz.zip. This may work for smaller collections of karaoke videos.

marcan commented 4 years ago

Looks reasonable. Instead of using textual substitution and a template, you can look at how import_joy02.py etc create a Song() object and set properties there, since BlitzLoop already supports writing out its own song files. Then this kind of script belongs in that repo :-)

jose1711 commented 4 years ago

Thank you for tip, PR is here: https://github.com/marcan/blitzloop-tools/pull/3