X-Git-Url: https://code.delx.au/webdl/blobdiff_plain/6302effa08cd96135cafe5dac15160aaec2f7d04..992e749d40b94d33d1703f90afb28d8c8b548dd5:/common.py diff --git a/common.py b/common.py index 9a873f6..cd4c266 100644 --- a/common.py +++ b/common.py @@ -11,9 +11,11 @@ import requests_cache import shutil import signal import subprocess +import sys import time import urllib.parse +USER_AGENT = "Mozilla/5.0 (X11; Linux x86_64; rv:74.0) Gecko/20100101 Firefox/74.0" try: import autosocks @@ -25,6 +27,7 @@ except ImportError: logging.basicConfig( format = "%(levelname)s %(message)s", level = logging.INFO if os.environ.get("DEBUG", None) is None else logging.DEBUG, + stream = sys.stdout, ) CACHE_FILE = os.path.join( @@ -89,7 +92,7 @@ def ensure_scheme(url): return urllib.parse.urlunparse(parts) http_session = requests.Session() -http_session.headers["User-Agent"] = "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.6; rv:21.0) Gecko/20100101 Firefox/21.0" +http_session.headers["User-Agent"] = USER_AGENT def grab_text(url): logging.debug("grab_text(%r)", url) @@ -169,16 +172,6 @@ def find_ffprobe(): raise Exception("You must install ffmpeg or libav-tools") -def find_streamlink(): - if check_command_exists(["streamlink", "--help"]): - return "streamlink" - - if check_command_exists(["livestreamer", "--help"]): - logging.warn("Detected livestreamer! streamlink is recommended") - return "livestreamer" - - raise Exception("You must install streamlink or livestreamer") - def get_duration(filename): ffprobe = find_ffprobe() @@ -275,8 +268,6 @@ def convert_to_mp4(filename): def download_hds(filename, video_url, pvswf=None): - streamlink = find_streamlink() - filename = sanify_filename(filename) logging.info("Downloading: %s", filename) @@ -287,9 +278,9 @@ def download_hds(filename, video_url, pvswf=None): param = video_url cmd = [ - streamlink, - "-f", - "-o", filename, + "streamlink", + "--force", + "--output", filename, param, "best", ] @@ -299,16 +290,15 @@ def download_hds(filename, video_url, pvswf=None): return False def download_hls(filename, video_url): - streamlink = find_streamlink() - filename = sanify_filename(filename) video_url = "hlsvariant://" + video_url logging.info("Downloading: %s", filename) cmd = [ - streamlink, - "-f", - "-o", filename, + "streamlink", + "--http-header", "User-Agent=" + USER_AGENT, + "--force", + "--output", filename, video_url, "best", ] @@ -318,16 +308,14 @@ def download_hls(filename, video_url): return False def download_mpd(filename, video_url): - streamlink = find_streamlink() - filename = sanify_filename(filename) video_url = "dash://" + video_url logging.info("Downloading: %s", filename) cmd = [ - streamlink, - "-f", - "-o", filename, + "streamlink", + "--force", + "--output", filename, video_url, "best", ]