mirror of
https://github.com/rwinkhart/flac2pod.git
synced 2026-09-06 00:57:14 -04:00
Added a script to convert embedded album art to iPod-ready JPEGs
This commit is contained in:
Binary file not shown.
Executable
+40
@@ -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()
|
||||||
@@ -7,7 +7,6 @@ from os import listdir, system
|
|||||||
from subprocess import PIPE, run
|
from subprocess import PIPE, run
|
||||||
from sys import exit as s_exit
|
from sys import exit as s_exit
|
||||||
|
|
||||||
# argument parsing
|
|
||||||
if __name__ == "__main__":
|
if __name__ == "__main__":
|
||||||
parser = ArgumentParser(description='Quickly tag your FLAC library with ReplayGain data using metaflac.')
|
parser = ArgumentParser(description='Quickly tag your FLAC library with ReplayGain data using metaflac.')
|
||||||
parser.add_argument('source_dir', nargs='+',
|
parser.add_argument('source_dir', nargs='+',
|
||||||
|
|||||||
+2
-1
@@ -19,6 +19,7 @@ echo -e '\npackaging as generic...\n'
|
|||||||
mkdir -p output/generictemp/usr/{bin,lib/flac2pod}
|
mkdir -p output/generictemp/usr/{bin,lib/flac2pod}
|
||||||
cp -r lib/. output/generictemp/usr/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.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
|
ln -s /usr/lib/flac2pod/flac2pod-flacgain.py output/generictemp/usr/bin/flac2pod-flacgain
|
||||||
cp -r share output/generictemp/usr/
|
cp -r share output/generictemp/usr/
|
||||||
tar -C output/generictemp -cvJf output/flac2pod-"$version".tar.xz 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'
|
url='https://github.com/rwinkhart/flac2pod'
|
||||||
arch=('any')
|
arch=('any')
|
||||||
license=('GPL2')
|
license=('GPL2')
|
||||||
depends=(ffmpeg flac python python-mutagen screen)
|
depends=(ffmpeg flac python python-mutagen python-pillow screen)
|
||||||
source=(\""$source"\")
|
source=(\""$source"\")
|
||||||
sha512sums=('"$sha512"')
|
sha512sums=('"$sha512"')
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user