aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorneodarz <neodarz@neodarz.net>2019-08-05 10:08:17 +0200
committerneodarz <neodarz@neodarz.net>2019-08-05 10:08:17 +0200
commitde60bf8dd1c36d3a2c3ce3669c75e501324c263e (patch)
tree4a6bf53d7cf10b15b8acb008b6bc6b666cd8dcf3
parent13b54779952bd1f56bac6d5fd8490b0bfa12f71d (diff)
downloadarte.tv-dl-de60bf8dd1c36d3a2c3ce3669c75e501324c263e.tar.xz
arte.tv-dl-de60bf8dd1c36d3a2c3ce3669c75e501324c263e.zip
Add more sanity check
-rwxr-xr-xartetv_dl/__main__.py28
-rw-r--r--requirements.txt1
2 files changed, 22 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__":
diff --git a/requirements.txt b/requirements.txt
index cd91942..8175f34 100644
--- a/requirements.txt
+++ b/requirements.txt
@@ -1 +1,2 @@
beautifulsoup4==4.6.0
+validators==0.13.0