From 26304412eee96bb85d9a1c853d4125241c8f4048 Mon Sep 17 00:00:00 2001 From: Yuanle Song <sylecn@gmail.com> Date: Thu, 7 Mar 2019 14:15:27 +0800 Subject: [PATCH] v0.7.0 make -o and URL required params. use action=version for --version support, this allow me to make -o and URL required params. --- README.rst | 15 +++++++++------ m3u8downloader/__init__.py | 2 +- m3u8downloader/main.py | 22 ++++++++-------------- 3 files changed, 18 insertions(+), 21 deletions(-) diff --git a/README.rst b/README.rst index 6cc69d2..bfe3b3b 100644 --- a/README.rst +++ b/README.rst @@ -40,22 +40,25 @@ Here is built-in command line help: .. code-block:: bash - $ downloadm3u8 --help - usage: downloadm3u8 [-h] [--version] [--output OUTPUT] [--tempdir TEMPDIR] - [url] + usage: m3u8downloader [-h] [--version] [--debug] --output OUTPUT + [--tempdir TEMPDIR] [--concurrency N] + URL download video at m3u8 url positional arguments: - url the m3u8 url + URL the m3u8 url optional arguments: -h, --help show this help message and exit - --version print version + --version show program's version number and exit + --debug enable debug log --output OUTPUT, -o OUTPUT - target video filename + output video filename, e.g. ~/Downloads/foo.mp4 --tempdir TEMPDIR temp dir, used to store .ts files before combing them into mp4 + --concurrency N, -c N + number of fragments to download at a time Documentation ------------- diff --git a/m3u8downloader/__init__.py b/m3u8downloader/__init__.py index 906d362..49e0fc1 100644 --- a/m3u8downloader/__init__.py +++ b/m3u8downloader/__init__.py @@ -1 +1 @@ -__version__ = "0.6.0" +__version__ = "0.7.0" diff --git a/m3u8downloader/main.py b/m3u8downloader/main.py index ae0e593..d0e6eff 100644 --- a/m3u8downloader/main.py +++ b/m3u8downloader/main.py @@ -28,6 +28,7 @@ import platform import requests from wells.utils import retry +import m3u8downloader import m3u8downloader.configlogger # pylint: disable=unused-import logger = logging.getLogger(__name__) @@ -341,29 +342,22 @@ class M3u8Downloader: def main(): - parser = argparse.ArgumentParser(description="download video at m3u8 url") - parser.add_argument('--version', action='store_true', help='print version') + parser = argparse.ArgumentParser(prog='m3u8downloader', + description="download video at m3u8 url") + parser.add_argument('--version', action='version', + version='%(prog)s ' + m3u8downloader.__version__) parser.add_argument('--debug', action='store_true', help='enable debug log') - parser.add_argument('--output', '-o', help='target video filename') + parser.add_argument('--output', '-o', required=True, + help='output video filename, e.g. ~/Downloads/foo.mp4') parser.add_argument( '--tempdir', default=os.path.join(get_default_cache_dir(), 'm3u8downloader'), help='temp dir, used to store .ts files before combing them into mp4') parser.add_argument('--concurrency', '-c', metavar='N', default=5, help='number of fragments to download at a time') - parser.add_argument('url', nargs='?', help='the m3u8 url') + parser.add_argument('url', metavar='URL', help='the m3u8 url') args = parser.parse_args() - if args.version: - import m3u8downloader - print("m3u8downloader " + m3u8downloader.__version__) - return - - if not args.url: - print("URL is required") - parser.print_help() - sys.exit(1) - if args.debug: logging.getLogger("").setLevel(logging.DEBUG) -- GitLab