Netflix-videos-downloader/configs/config.py

177 lines
5.2 KiB
Python
Raw Blame History

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

import sys, os, random, string, platform
from os.path import dirname
from os.path import join
from pywidevine.cdm import cdm, deviceconfig
dirPath = dirname(dirname(__file__)).replace("\\", "/")
class utils:
def __init__(self):
self.dir = dirPath
def random_hex(self, length: int) -> str:
"""return {length} of random string"""
return "".join(random.choice("0123456789ABCDEF") for _ in range(length))
utils_ = utils()
#####################################(DEVICES)#####################################
devices_dict = {
"android_general": deviceconfig.device_android_general,
}
DEVICES = {
"NETFLIX-MANIFEST": devices_dict["android_general"],
"NETFLIX-LICENSE": devices_dict["android_general"],
}
#####################################(MUXER)#####################################
MUXER = {
"muxer_file": f"{dirPath}/bin/muxer.json",
"mkv_folder": None,
"DEFAULT": False, # to use the normal renaming. EX: Stranger Things S01E01 [1080p].mkv
"AUDIO": "hin", # default audio language.
"SUB": "None", # default subtitle language. EX: "eng" or "spa"
"GROUP": "TJUPT", # to change the group name!. it's also possible to use this "--gr LOL", on the ripping commands.
"noTitle": True, # this will remove titles from the episodes EX: (The Witcher S01E01). insstead of (The Witcher S01E01 The End's Beginning).
"scheme": "p2p", # add/change any needed scheme naming. it's also possible to use this "--muxscheme repack", on the ripping commands.
"schemeslist": {
"p2p": "{t}.{r}.{s}.WEB-DL.{vc}.{ac}-{gr}",
"test": "{t}.{r}.{s}.WEB-DL-{gr}",
},
"EXTRAS": [], # extra mkvmerge.exe commands.
"FPS24": [],
}
#####################################(PATHS)#####################################
PATHS = {
"DL_FOLDER": f"{dirPath}", #
"DIR_PATH": f"{dirPath}",
"BINARY_PATH": f"{dirPath}/bin",
"COOKIES_PATH": f"{dirPath}/configs/Cookies",
"KEYS_PATH": f"{dirPath}/configs/KEYS",
"TOKENS_PATH": f"{dirPath}/configs/Tokens",
"JSON_PATH": f"{dirPath}/json",
"LOGA_PATH": f"{dirPath}/bin/tools/aria2c",
}
ARIA2C = {
"enable_logging": False, # True
"enable_pass_config_to_aria2c": True, #传递aria2c参数
"file_allocation": "none", # 文件预分配方式:机械硬盘 falloc固态硬盘 none
"http_proxy_aria2c": "http://127.0.0.1:7890", # 代理地址,根据需要修改
"https_proxy_aria2c": "http://127.0.0.1:7890",
"user_agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.61 Safari/537.36",
"connection": "64", # 单服务器最大连接线程数
"split": "64", # 单任务最大连接线程数
"summary_interval": "0", # 下载进度摘要输出间隔时间
"continue_aria2c": "true", # 断点续传
"max_tries": "0", # 最大尝试次数0 表示无限
"piece_length": "1M", # HTTP/FTP下载分片大小
"min_split_size": "4M", # 文件最小分段大小,理论上值越小下载速度越快
"disk_cache": "64M", # 磁盘缓存,提升读写性能,有足够内存情况下增加
}
SETTINGS = {
"skip_video_demux": [],
}
#####################################(VPN)#####################################
# 不要修改这部分
VPN = {
"proxies": None, # "http://151.253.165.70:8080",
"nordvpn": {
"port": "80",
"email": "xxx",
"passwd": "xxx",
"http": "http://{email}:{passwd}@{ip}:{port}",
},
"private": {
"port": "8080",
"email": "xxx",
"passwd": "123456",
"http": "http://{email}:{passwd}@{ip}:{port}",
},
}
#####################################(BIN)#####################################
BIN = {
"mp4decrypt_moded": f"{dirPath}/bin/tools/mp4decrypt.exe",
"mp4dump": f"{dirPath}/bin/tools/mp4dump.exe",
"ffmpeg": f"{dirPath}/bin/tools/ffmpeg.exe",
"ffprobe": f"{dirPath}/bin/tools/ffprobe.exe",
"MediaInfo": f"{dirPath}/bin/tools/MediaInfo.exe",
"mkvmerge": f"{dirPath}/bin/tools/mkvmerge.exe",
"aria2c": f"{dirPath}/bin/tools/aria2c.exe",
}
#####################################(Config)#####################################
Config = {}
Config["NETFLIX"] = {
"cookies_file": f"{dirPath}/configs/Cookies/cookies_nf.txt",
"cookies_txt": f"{dirPath}/configs/Cookies/cookies.txt",
"keys_file": f"{dirPath}/configs/KEYS/netflix.keys",
"token_file": f"{dirPath}/configs/Tokens/netflix_token.json",
"email": "xxxxxx@gmail.com",
"password": "123123",
"manifest_language": "en-US",
"metada_language": "en",
"manifestEsn": "NFCDIE-03-{}".format(utils().random_hex(30)),
"androidEsn": "NFANDROID1-PRV-P-GOOGLEPIXEL=4=XL-8162-" + utils_.random_hex(64),
}
#####################################(DIRS & FILES)##############################
def make_dirs():
FILES = []
DIRS = [
f"{dirPath}/configs/Cookies",
f"{dirPath}/configs/Tokens",
f"{dirPath}/bin/tools/aria2c",
]
for dirs in DIRS:
if not os.path.exists(dirs):
os.makedirs(dirs)
for files in FILES:
if not os.path.isfile(files):
with open(files, "w") as f:
f.write("\n")
make_dirs()
#####################################(tool)#####################################
class tool:
def config(self, service):
return Config[service]
def bin(self):
return BIN
def vpn(self):
return VPN
def paths(self):
return PATHS
def muxer(self):
return MUXER
def devices(self):
return DEVICES
def aria2c(self):
return ARIA2C
def video_settings(self):
return SETTINGS