Simple audio / video player and karaoke app written in Python and GTK4
- Audio and video playback
- Subtitle support
- Karaoke mode (synced lyrics needed in own srt format, see below for instructions)
- Static lyric automatically from online sources
- Metadata editor (for audio files)
- Playlists (from folder structure)
- Seamlessly switch back and forth between video and audio playback (remembers where to continue)
- Native, lightweight and simple
- Minimalistic design
- Customizable
- Flatpak package for compatibility and security
First you have to clone this repo, then change directory into it's root (where the Makefile
is).
You can then use the make
command with the provided flags:
- Add new translation:
make translate-new lang=en
- Generate
.mo
files:make translate-add lang=en
- Update
.po
files:make translate-update lang=en
- Update
.mo
files:make translate-upgrade lang=en
It's important to use UTF-8 charset when needed (instead of ASCII).
I recommend using one of these tools:
- GTK4 - For the GUI framework
- GStreamer - For the multimedia backend
- Amolenaar - For the PyGObject documentation
- AutoLyrixAlign - For the neural network to align lyrics to music
- srt - For the Python srt module
- mediafile - For the handy wrapper around mutagen
- azapi - For the AZLyrics API
- PyICU - For providing proper name of a language from language code
- gst-plugins-rs - For
gtk4paintablesink
for video playback - pyacoustid and musicbrainzngs - For the AcoustID and MusicBrainz bindings
- MusicBrainz and AcoustID - For the open databases
- mpris_server - For the MPRIS server
- Flatpak - For this awesome distribution system
Here I'll show you how to generate synced lyrics for yourslef
- ~20GB of RAM (you can use swap to extend your memory)
- ~20GB of disk space
- node v12 or above (for ubuntu/debian based distros you can use this repo)
- Install AutoLyrixAlignService
- It'll guide you through downloading the neural network and the dependencies
- Run the server as described above, connect to it and set things up
- Select RAW output format, save to
aligned.txt
when ready (DO NOT copy into a file, use Ctrl+S to save it) - Save the plain lyrics to
lyrics.txt
- Run tosrt.py from this repo like this:
python3 tosrt.py aligned.txt lyrics.txt output.srt
- Move and rename the resulted output file alongside your audio file
You can try to generate a word by word .lrc file (here for example), and you can try my experimental enhanced-lrc converter like this: python3 lrc2srt.py lyric.lrc output.srt
You can use AutoSub which is a nice tool if you want to generate your own subtitles.
A manual alternative is the GTK program Gnome Subtitles
Note: You can also use this program, to adjust already generated synced lyrics to different audio files of the same song.