nixfiles/musicutil/commands/transcode_command.py
2022-02-04 16:19:11 +00:00

32 lines
1.2 KiB
Python

from ..utils.transcoder import get_transcode_config, transcode
from ..utils.scan_for_music import file_from_path
from ..transcode_levels import transcode_levels
from pathlib import Path
class TranscodeCommand:
def __init__(self, src: str, dest: str, transcode_level: str):
self.src = src
self.dest = dest
self.transcode_level = transcode_level
def run(self):
if self.transcode_level == "list":
print("Transcode Levels:", ", ".join(transcode_levels))
exit()
print("Transcoding...")
input_file = file_from_path(Path(self.src), "")
trans_config = get_transcode_config(input_file, self.transcode_level)
output_file = file_from_path(Path(self.dest), "")
if trans_config.file_extension != output_file.extension:
print(
f"{output_file.extension} is not the recommended "+
f"extension for transcode_level {self.transcode_level} "+
f"please change it to {trans_config.file_extension} "+
f"or TODO(add --ignore-extension)"
)
exit()
transcode(input_file, trans_config, self.transcode_level, self.dest)