diff options
author | neodarz <neodarz@neodarz.net> | 2019-08-05 10:08:17 +0200 |
---|---|---|
committer | neodarz <neodarz@neodarz.net> | 2019-08-05 10:08:17 +0200 |
commit | de60bf8dd1c36d3a2c3ce3669c75e501324c263e (patch) | |
tree | 4a6bf53d7cf10b15b8acb008b6bc6b666cd8dcf3 /artetv_dl/__main__.py | |
parent | 13b54779952bd1f56bac6d5fd8490b0bfa12f71d (diff) | |
download | arte.tv-dl-de60bf8dd1c36d3a2c3ce3669c75e501324c263e.tar.xz arte.tv-dl-de60bf8dd1c36d3a2c3ce3669c75e501324c263e.zip |
Add more sanity check
Diffstat (limited to '')
-rwxr-xr-x | artetv_dl/__main__.py | 28 |
1 files changed, 21 insertions, 7 deletions
diff --git a/artetv_dl/__main__.py b/artetv_dl/__main__.py index 58ce3d9..f6897c8 100755 --- a/artetv_dl/__main__.py +++ b/artetv_dl/__main__.py @@ -5,13 +5,27 @@ from bs4 import BeautifulSoup from urllib.request import urlopen, unquote, urlretrieve import re, json, sys +import validators + +def show_help(msg=None): + if msg: + print(msg) + print("Usage:") + print(" "+sys.argv[0]+" <arte.tv_link>") + print("Example:") + print(" "+sys.argv[0]+" https://www.arte.tv/fr/videos/051868-000-A/liberte-egalite-indemnites-vers-un-revenu-universel/") + sys.exit(1) def download(url): content = urlopen(url) json_data = json.loads(content.read().decode()) name = json_data['videoJsonPlayer']['VTI'] - url = json_data['videoJsonPlayer']['VSR']['HTTPS_SQ_1']['url'] + try: + url = json_data['videoJsonPlayer']['VSR']['HTTPS_SQ_1']['url'] + except TypeError: + print("Sorry, it seems that the video is no longer available.") + sys.exit(0) name=name.replace('/', '-')+".mp4" try: @@ -24,14 +38,13 @@ def download(url): def main(): if len(sys.argv) != 2: - print("Usage:") - print(" "+sys.argv[0]+" <arte.tv_link>") - print("Example:") - print(" "+sys.argv[0]+" https://www.arte.tv/fr/videos/051868-000-A/liberte-egalite-indemnites-vers-un-revenu-universel/") - sys.exit(0) + show_help() url = sys.argv[1] + if not validators.url(url): + show_help("Error: This is not an url or maybe you forgot http(s):// before domain?") + programId = re.findall('[0-9A-Z]{6}-[0-9A-Z]{3}-[0-9A-Z]', url) collection = re.findall('[0-9A-Z]{2}-[0-9A-Z]{6}', url) @@ -62,7 +75,8 @@ def main(): download(url) else: - print("This is not a valid url") + print("Error: Nothing found here, are your sure your are on arte.tv website and it's a valid video url?") + show_help() if __name__ == "__main__": |