Exit with message if ffmpeg is not installed

This commit is contained in:
7x11x13 2021-11-25 23:05:08 -05:00
parent d2ebc0feed
commit bcb94b2e5e

View File

@ -65,8 +65,6 @@ import logging
import mimetypes import mimetypes
import pathlib import pathlib
import soundcloud
mimetypes.init() mimetypes.init()
import os import os
@ -84,6 +82,7 @@ import mutagen
from mutagen.easymp4 import EasyMP4 from mutagen.easymp4 import EasyMP4
EasyMP4.RegisterTextKey("website", "purl") EasyMP4.RegisterTextKey("website", "purl")
import requests import requests
from clint.textui import progress from clint.textui import progress
from docopt import docopt from docopt import docopt
@ -107,6 +106,11 @@ def main():
""" """
signal.signal(signal.SIGINT, signal_handler) signal.signal(signal.SIGINT, signal_handler)
# exit if ffmpeg not installed
if not is_ffmpeg_available():
logger.error("ffmpeg is not installed")
sys.exit(1)
# Parse arguments # Parse arguments
arguments = docopt(__doc__, version=__version__) arguments = docopt(__doc__, version=__version__)
python_args = { python_args = {
@ -132,7 +136,7 @@ def main():
os.chdir(path) os.chdir(path)
else: else:
logger.error(f"Invalid download path '{path}' in {config_file}") logger.error(f"Invalid download path '{path}' in {config_file}")
sys.exit(-1) sys.exit(1)
logger.info("Soundcloud Downloader") logger.info("Soundcloud Downloader")
logger.debug(arguments) logger.debug(arguments)
@ -160,7 +164,7 @@ def main():
raise ValueError() raise ValueError()
except: except:
logger.error("Offset should be a positive integer...") logger.error("Offset should be a positive integer...")
sys.exit(-1) sys.exit(1)
logger.debug("offset: %d", python_args["offset"]) logger.debug("offset: %d", python_args["offset"])
if arguments["--min-size"] is not None: if arguments["--min-size"] is not None:
@ -170,7 +174,7 @@ def main():
logger.exception( logger.exception(
"Min size should be an integer with a possible unit suffix" "Min size should be an integer with a possible unit suffix"
) )
sys.exit(-1) sys.exit(1)
logger.debug("min-size: %d", arguments["--min-size"]) logger.debug("min-size: %d", arguments["--min-size"])
if arguments["--max-size"] is not None: if arguments["--max-size"] is not None:
@ -178,7 +182,7 @@ def main():
arguments["--max-size"] = utils.size_in_bytes(arguments["--max-size"]) arguments["--max-size"] = utils.size_in_bytes(arguments["--max-size"])
except: except:
logger.error("Max size should be an integer with a possible unit suffix") logger.error("Max size should be an integer with a possible unit suffix")
sys.exit(-1) sys.exit(1)
logger.debug("max-size: %d", arguments["--max-size"]) logger.debug("max-size: %d", arguments["--max-size"])
if arguments["--hidewarnings"]: if arguments["--hidewarnings"]:
@ -189,7 +193,7 @@ def main():
os.chdir(arguments["--path"]) os.chdir(arguments["--path"])
else: else:
logger.error("Invalid path in arguments...") logger.error("Invalid path in arguments...")
sys.exit(-1) sys.exit(1)
logger.debug("Downloading to " + os.getcwd() + "...") logger.debug("Downloading to " + os.getcwd() + "...")
if not arguments["--name-format"]: if not arguments["--name-format"]:
@ -459,7 +463,7 @@ def download_original_file(client: SoundCloud, track: BasicTrack, title: str, pl
if received != total_length: if received != total_length:
logger.error("connection closed prematurely, download incomplete") logger.error("connection closed prematurely, download incomplete")
sys.exit(-1) sys.exit(1)
shutil.move(temp.name, os.path.join(os.getcwd(), filename)) shutil.move(temp.name, os.path.join(os.getcwd(), filename))
if kwargs.get("flac") and can_convert(filename): if kwargs.get("flac") and can_convert(filename):
@ -571,7 +575,7 @@ def download_track(client: SoundCloud, track: BasicTrack, playlist_info=None, **
if not os.path.isfile(filename): if not os.path.isfile(filename):
logger.error(f"An error occurred downloading {filename}.\n") logger.error(f"An error occurred downloading {filename}.\n")
logger.error("Exiting...") logger.error("Exiting...")
sys.exit(-1) sys.exit(1)
# Try to set the metadata # Try to set the metadata
if ( if (
@ -630,7 +634,7 @@ def already_downloaded(track: BasicTrack, title: str, filename: str, **kwargs):
else: else:
logger.error(f'Track "{title}" already exists!') logger.error(f'Track "{title}" already exists!')
logger.error("Exiting... (run again with -c to continue)") logger.error("Exiting... (run again with -c to continue)")
sys.exit(-1) sys.exit(1)
return False return False