Skip to content

phishbacon/lyric-sync

Repository files navigation

Lyric-Sync

Docker CI
Lint

A free and open source self hosted solution for grabbing lyrics for your Plex Music Libraries.

Powered By

Inspiration

First and foremost, checkout tranzuanthang's lrcget this was the main inspiration behind Lyric-Sync. If you're looking for an offline solution, then lrcget is your answer. tranxuanthang is also the individual behind lrclib.net which is currently the only lyric source that Lyric-Synce supports (more to come in the future)

Features

  • Connect with your personal Plex Server Server configuration page
  • Grab lyrics for multiple music libraries Library select page
  • View all library Artists and their sync progress All artists page
  • View all Albums by a specific artist Artist's Album page
  • View an Album and all of its tracks Album's Tracks page
  • Sync individual tracks with the click of a button Tracks synced

Installation

Docker

Docker is the recommended way to run Lyric-Sync. It just makes things easier.

Lyric-Sync must have access to your Plex Music library and the root directory must be named exactly the same. If Plex says song2 is at path /music/artist/song2.flac, then Lyric-Sync should see it there as well, otherwise Lyric-Sync won't be able to find music where Plex is telling it to.

Here is a sample docker-compose.yml

services:
  lyric-sync:
    image: ghcr.io/phishbacon/lyric-sync:main
    container_name: lyric-sync
    environment:
      - ORIGIN=http://where-lyric-sync-is-running:3000
      - DATABASE_URL=file:/your-music-library/lyric-sync.db
    volumes:
      - /your-music-library:/your-music-library
    ports:
      - "3000:3000" # lyric sync runs on port 3000
    restart: unless-stopped

docker-compose up -d and you're on your way.

Or the old fashioned way

# grab the latest image
docker pull ghcr.io/phishbacon/lyric-sync:main

# and run
docker run -p 3000:3000 \
  -e ORIGIN=http://where-lyric-sync-is-running:3000 \
  -e DATABASE_URL=file:/your-music-library/lyric-sync.db \
  --volume /your-music-library:/your-music-library \
  --name lyric-sync \
  -i ghcr.io/phishbacon/lyric-sync:main

Building and Running Locally

You can also build Lyric-Sync yourself if you don't wish to run it in a container.

# clone this repo
git clone git@github.com:phishbacon/lyric-sync.git

# cd into the project directory
cd lyric-sync

# install dependencies
pnpm install

# copy the .env.example file and rename it to .env
cp .env.example .env

# build it
pnpm build

# start Lyric-Sync
node build

Contributing

Lyric-Sync is an open source project, it is made possible with contributors like you.

The best way to start contributing to Lyric-Sync is by having access to an instance of Plex. This way, you can populate the database with real data and get real responses back from Plex.

# clone this repo
git clone git@github.com:phishbacon/lyric-sync.git

# cd into the project directory
cd lyric-sync

# install dependencies
pnpm install

# copy the .env.example file and rename it to .env
cp .env.example .env

# start the project
pnpm dev

Open an issue!

About

A free and open source self hosted solution for grabbing lyrics for your Plex Music Libraries.

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors