From 10b48620dfa8cb56d8e1139154ab988638519437 Mon Sep 17 00:00:00 2001 From: flyingrub Date: Tue, 10 Apr 2018 13:10:08 +0200 Subject: [PATCH] Add --flac option --- scdl/scdl.py | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) diff --git a/scdl/scdl.py b/scdl/scdl.py index 00fad0f..9f33dd5 100755 --- a/scdl/scdl.py +++ b/scdl/scdl.py @@ -7,11 +7,11 @@ Usage: scdl -l [-a | -f | -C | -t | -p][-c][-o ]\ [--hidewarnings][--debug | --error][--path ][--addtofile][--addtimestamp] [--onlymp3][--hide-progress][--min-size ][--max-size ][--remove] -[--no-playlist-folder][--download-archive ][--extract-artist] +[--no-playlist-folder][--download-archive ][--extract-artist][--flac] scdl me (-s | -a | -f | -t | -p | -m)[-c][-o ]\ [--hidewarnings][--debug | --error][--path ][--addtofile][--addtimestamp] [--onlymp3][--hide-progress][--min-size ][--max-size ][--remove] -[--no-playlist-folder][--download-archive ][--extract-artist] +[--no-playlist-folder][--download-archive ][--extract-artist][--flac] scdl -h | --help scdl --version @@ -48,6 +48,7 @@ Options: even if track has a Downloadable file --path [path] Use a custom path for downloaded files --remove Remove any files not downloaded from execution + --flac Convert downloaded .wav files to .flac """ import logging @@ -62,6 +63,7 @@ import requests import re import tempfile import codecs +import shlex import configparser import mutagen @@ -524,7 +526,15 @@ def download_track(track, playlist_name=None, playlist_file=None): sys.exit() shutil.move(temp.name, os.path.join(os.getcwd(), filename)) - if filename.endswith('.mp3') or filename.endswith('.m4a'): + if arguments['--flac'] and filename.endswith('.wav'): + newfilename = filename[:-4] + ".flac" + new = shlex.quote(newfilename) + old = shlex.quote(filename) + logger.debug("ffmpeg -i {0} {1} -loglevel fatal".format(old, new)) + os.system("ffmpeg -i {0} {1} -loglevel fatal".format(old, new)) + filename = newfilename + + if filename.endswith('.mp3'): try: set_metadata(track, filename, playlist_name) except Exception as e: @@ -663,7 +673,7 @@ def set_metadata(track, filename, album=None): ) else: logger.error('Artwork can not be set.') - audio.save(v2_version=3) + audio.save() def signal_handler(signal, frame):