script now uses argparse instead of reinventing the wheel
This commit is contained in:
parent
ce32850410
commit
d4c5fd437b
16
coub-dl.py
16
coub-dl.py
@ -2,13 +2,22 @@ from subprocess import call, Popen, PIPE, check_output, DEVNULL
|
|||||||
from os import listdir, remove
|
from os import listdir, remove
|
||||||
from os.path import splitext, exists
|
from os.path import splitext, exists
|
||||||
from re import match
|
from re import match
|
||||||
from sys import argv
|
|
||||||
from enum import Enum
|
from enum import Enum
|
||||||
from datetime import timedelta
|
from datetime import timedelta
|
||||||
from math import ceil
|
from math import ceil
|
||||||
|
from argparse import ArgumentParser
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
# parse arguments
|
||||||
|
parser = ArgumentParser(description='Download player-looped videos with youtube-dl & ffmpeg.')
|
||||||
|
parser.add_argument('-nv', '--nonverbose', help='Turn off non-critical messages to user.')
|
||||||
|
parser.add_argument('url', type=str, help='The URL of the site containing the video to download.')
|
||||||
|
|
||||||
|
args = parser.parse_args()
|
||||||
|
VERBOSE = False if args.nonverbose else True
|
||||||
|
|
||||||
|
|
||||||
class Stream(Enum):
|
class Stream(Enum):
|
||||||
AUDIO = 1
|
AUDIO = 1
|
||||||
VIDEO = 2
|
VIDEO = 2
|
||||||
@ -18,7 +27,6 @@ class File(Enum):
|
|||||||
LOOP = 2
|
LOOP = 2
|
||||||
OUTPUT = 3
|
OUTPUT = 3
|
||||||
|
|
||||||
VERBOSE = True
|
|
||||||
def print_opt(*args, **kwargs):
|
def print_opt(*args, **kwargs):
|
||||||
if VERBOSE:
|
if VERBOSE:
|
||||||
print(*args, **kwargs)
|
print(*args, **kwargs)
|
||||||
@ -81,11 +89,11 @@ def yes_no_question(question, default):
|
|||||||
FILES = {Stream.AUDIO: 'audio', Stream.VIDEO: 'video',
|
FILES = {Stream.AUDIO: 'audio', Stream.VIDEO: 'video',
|
||||||
File.LIST: 'list.txt', File.LOOP: 'loop', File.OUTPUT: 'output.mp4'}
|
File.LIST: 'list.txt', File.LOOP: 'loop', File.OUTPUT: 'output.mp4'}
|
||||||
OUTPUT_KEYS = [File.OUTPUT]
|
OUTPUT_KEYS = [File.OUTPUT]
|
||||||
URL = argv[1] if len(argv) > 0 else '' # youtube-dl error message will be shown if ''
|
URL = args.url
|
||||||
|
|
||||||
|
|
||||||
# fetch video title
|
# fetch video title
|
||||||
FILES[File.OUTPUT] = check_output(('/usr/bin/env', 'youtube-dl', '--get-title', argv[1])).decode('utf-8').strip() + '.mp4'
|
FILES[File.OUTPUT] = check_output(('/usr/bin/env', 'youtube-dl', '--get-title', args.url)).decode('utf-8').strip() + '.mp4'
|
||||||
|
|
||||||
# ask what to do if output exists
|
# ask what to do if output exists
|
||||||
if exists(FILES[File.OUTPUT]):
|
if exists(FILES[File.OUTPUT]):
|
||||||
|
Loading…
Reference in New Issue
Block a user