diff --git a/lib/__pycache__/flac2pod.cpython-310.pyc b/lib/__pycache__/flac2pod.cpython-310.pyc new file mode 100644 index 0000000..fd1a926 Binary files /dev/null and b/lib/__pycache__/flac2pod.cpython-310.pyc differ diff --git a/lib/flac2pod-artconvert.py b/lib/flac2pod-artconvert.py new file mode 100755 index 0000000..737e64f --- /dev/null +++ b/lib/flac2pod-artconvert.py @@ -0,0 +1,40 @@ +#!/usr/bin/env python3 + +from argparse import ArgumentParser +from flac2pod import scan_source +from mutagen import mp4 +from mutagen.mp4 import MP4Cover +from os import listdir +from PIL import Image + +if __name__ == "__main__": + parser = ArgumentParser(description='Convert embedded album art in MP4/M4A files to iPod-compatible JPEGs.') + parser.add_argument('source_dir', nargs='+', + help='directory tree containing music files - folder must contain library sorted into artists ' + 'and albums') + args = parser.parse_args() + + if args.source_dir[0].endswith('/'): + source = args.source_dir[0][:-1] + else: + source = args.source_dir[0] + + source_directories = scan_source(source) + + for album in sorted(source_directories[0]): + for song in listdir(album): + audio = mp4.MP4(f"{album}/{song}") + if audio.tags is None: + continue + if "covr" not in audio.tags: + continue + cover = audio.tags["covr"][0] + open("/tmp/cover.png", "wb").write(cover) + image = Image.open("/tmp/cover.png") + image.thumbnail((300, 300)) + image.save("/tmp/cover.jpeg", "JPEG", quality=50) + with open("/tmp/cover.jpeg", "rb") as f: + audio["covr"] = [ + MP4Cover(f.read(), imageformat=MP4Cover.FORMAT_JPEG) + ] + audio.save() diff --git a/lib/flac2pod-flacgain.py b/lib/flac2pod-flacgain.py index 42414d9..4bd3a97 100755 --- a/lib/flac2pod-flacgain.py +++ b/lib/flac2pod-flacgain.py @@ -7,7 +7,6 @@ from os import listdir, system from subprocess import PIPE, run from sys import exit as s_exit -# argument parsing if __name__ == "__main__": parser = ArgumentParser(description='Quickly tag your FLAC library with ReplayGain data using metaflac.') parser.add_argument('source_dir', nargs='+', diff --git a/package.sh b/package.sh index 55d9ec4..551b1f1 100755 --- a/package.sh +++ b/package.sh @@ -19,6 +19,7 @@ echo -e '\npackaging as generic...\n' mkdir -p output/generictemp/usr/{bin,lib/flac2pod} cp -r lib/. output/generictemp/usr/lib/flac2pod/ ln -s /usr/lib/flac2pod/flac2pod.py output/generictemp/usr/bin/flac2pod +ln -s /usr/lib/flac2pod/flac2pod-artconvert.py output/generictemp/usr/bin/flac2pod-artconvert ln -s /usr/lib/flac2pod/flac2pod-flacgain.py output/generictemp/usr/bin/flac2pod-flacgain cp -r share output/generictemp/usr/ tar -C output/generictemp -cvJf output/flac2pod-"$version".tar.xz usr/ @@ -37,7 +38,7 @@ pkgdesc='Converts your FLAC library to be iPod-ready' url='https://github.com/rwinkhart/flac2pod' arch=('any') license=('GPL2') -depends=(ffmpeg flac python python-mutagen screen) +depends=(ffmpeg flac python python-mutagen python-pillow screen) source=(\""$source"\") sha512sums=('"$sha512"')