Add conversion script

This commit is contained in:
2022-07-08 12:52:54 +02:00
parent 60bbbf7d5a
commit e47c604339
3 changed files with 52 additions and 0 deletions

1
.gitignore vendored
View File

@@ -1,3 +1,4 @@
test/*
venv/* venv/*
*.mp3 *.mp3
*.flac *.flac

47
cttf.py Executable file
View File

@@ -0,0 +1,47 @@
#!/usr/bin/env python
from hashlib import new
import ffmpeg, os
from mutagen.flac import FLAC
FROM_CODEC = "flac"
TO_CODEC = "mp3"
FORMAT_STRING = "{TITLE} - {ARTIST}.{TO_CODEC}"
#Recursively add files matching FROM_CODEC to the list
original_files = []
for root, dirs, files in os.walk(os.getcwd()):
for file in files:
if file.endswith(FROM_CODEC):
path = os.path.join(root, file)
original_files.append(path)
print(f"Found {len(original_files)} files")
#Process files in the list
for file in original_files:
audio = FLAC(file)
album_folder = os.path.dirname(file)
#Create converted folder
if not os.path.exists(f"{album_folder}/processed"):
os.makedirs(f"{album_folder}/processed")
#Extract cover image if it doesn't exist
if not os.path.exists(f"{album_folder}/cover.jpg") and audio.pictures[0]:
open(f"{os.path.dirname(file)}/cover.jpg", 'wb').write(audio.pictures[0].data)
if audio.tags is None:
print(f"[ERR] NO TAGS ON {file}")
#Assemble new filename
new_name = f"{os.path.dirname(file)}/{FORMAT_STRING.format(TITLE=audio['title'][0], ARTIST=audio['albumartist'][0],TO_CODEC=TO_CODEC)}"
#Transcode
stream = ffmpeg.input(file)
stream = ffmpeg.output(stream, new_name, audio_bitrate='320k')
ffmpeg.run(stream)
#Move original file to processed
os.rename(file, f"{album_folder}/processed/{os.path.basename(file)}" )

4
requirements.txt Normal file
View File

@@ -0,0 +1,4 @@
ffmpeg-python==0.2.0
future==0.18.2
mutagen==1.45.1
pkg-resources==0.0.0