My significant other wanted a local streaming option where they could control the songs. So I started adding our music to Jellyfin.
Rip a CD
Install abcde and its requirements:
- sudo apt-get install abcde eyed3 lame flac id3v2
Modify abcde with the latest patch:
- https://github.com/glanois/abcde/pull/2/files
- Otherwise the mp3 files will not be tagged because eyeD3 will exit with the following error:
- Unknown genre ID: 255
The options I use with abcde:
- -o
- output types
- flac (lossless audio)
- mp3 (small portable version)
- -p
- leading 0s on track numbers
- -G
- get album art
- -B
- embed album art
- -V
- verbose
- -N
- don't prompt
- -d
- CD/DVD/Bluray device to use
Create a ripcd.sh script to automate the rip:
- cd Music
- echo -e '#!/usr/bin/sh\n\nabcde -o flac,mp3 -p -G -B -V -N -d "$@"\n' >> ripcd.sh
Run the rip:
- cd Music
- sh ripcd.sh /dev/sr0
If you only want to rip a specific track:
- cd Music
- sh ripcd.sh /dev/sr0 1
Add Album to Jellyfin
Add a Library of Music type
Jellyfin was doubling up tracks as it listed both the flac and mp3. To solve this, I created a .ignore file that contained *.mp3 and placed it in each album folder that had this issue
Appendix
Sources
- https://itsfoss.community/t/best-tool-to-rip-cds/11613/14
- https://github.com/glanois/abcde/issues/1
- https://www.reddit.com/r/jellyfin/comments/myqj0g/multiple_bitrate_options_for_music/
- https://features.jellyfin.org/posts/994/multiple-versions-of-music
- https://jellyfin.org/docs/general/server/media/excluding-directory/#excluding-specific-files-or-subdirectories
Patch:
From 5437ee1345d6c0fddee0edc65b32af43fe493922 Mon Sep 17 00:00:00 2001
From: Gerard Lanois <gerard@lanois.com>
Date: Thu, 16 Feb 2023 22:56:29 -0800
Subject: [PATCH] #1 Omit genre ID 255 (no genre).
---
abcde | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)
diff --git a/abcde b/abcde
index b53593a..2f06a43 100755
--- a/abcde
+++ b/abcde
@@ -912,10 +912,13 @@ do_tag ()
${COMMENTOUTPUT:+--comment "$COMMENTOUTPUT"} \
);;
esac
+ if [ "${GENREID}" != 255 ]; then
+ addopts+=( -G "$GENREID" )
+ fi
run_command "tagtrack-$OUTPUT-$1" nice $ENCNICE $TAGGER $TAGGEROPTS \
-A "$DALBUM" \
-a "$TRACKARTIST" -t "$TRACKNAME" \
- -G "$GENREID" -n "${TRACKNUM:-$1}" \
+ -n "${TRACKNUM:-$1}" \
${TRACKNUM:+-N "$TRACKS"} \
"${addopts[@]}" \
"${ABCDETEMPDIR}/track$1.$OUTPUT"