Code python3 (file :"main.py")
You can buil with
$ pyinstaller --onefile main.py
// # pyinstaller --onefile main.py import hls_me from datetime import datetime import argparse import os, sys # construct the argument parse and parse the arguments ap = argparse.ArgumentParser() ap.add_argument("-f", "--file", required=True, help="file or URL m3u8") ap.add_argument("-d", "--directory", required=False, help="directory to save video") ap.add_argument("-n", "--name", required=False, help="name of file video") ap.add_argument("-t", "--thread", required=False, help="number of thread downloader", type=int) ap.add_argument("-r", "--referer", required=False, help="headers referer assumed") ap.add_argument("-p", "--prefix", required=False, help="prefix of URL in file m3u8") now = datetime.now() # current date and time args = vars(ap.parse_args()) if not (args["thread"]): args["thread"]= 8 if not (args["directory"]): args["directory"]= "{}".format(os.getcwd()) if not (args["name"]): args["name"]= "video-{}.mp4".format(now.strftime("%m-%d-%Y(%H-%M-%S)")) if not (args["referer"]): args["referer"]= '' if not (args["prefix"]): args["prefix"]= "" print("file or URL m3u8: '{}'".format(args["file"])) print("directory to save video: '{}'".format(args["directory"])) print("name of file video: '{}'".format(args["name"])) print("number of thread downloader: '{}'".format(args["thread"])) print("headers referer assumed: '{}'".format(args["referer"])) print("prefix of URL in file m3u8: '{}'".format(args["prefix"])) try: #raise Exception('spam', 'bug') hls_me.hls_fetch( args["file"], #'g1.m3u8', # 'https://.....m3u8 args["directory"], #'C:/Users/Admin/Documents/PyProject/hlsMe/temp', # directory save file args["name"], # '1.mp4', # name of file save int(args["thread"]), # 10, # number of thread downloader args["referer"], # 'https://avgle.com/', # fake headers referer args["prefix"] # prefixURL ) except Exception as g: print(g) //
Usage:
python main.py -f https://mnmedias.api.telequebec.tv/m3u8/29880.m3u8 (Do not download immediately but will stop (contains a variant stream))
python main.py -f https://s2.content.video.llnw.net/smedia/.................m3u8
python main.py -f file1.m3u8
Next: sometime
variant_m3u8 = m3u8.loads('#EXTM3U ... contains a variant stream ...') for iframe_playlist in variant_m3u8.iframe_playlists: iframe_playlist.uri iframe_playlist.iframe_stream_info.bandwidth
Comments
Post a Comment