支持的URL地址格式:
// urls.txt
# 每行一个url
https://www.ixigua.com/7186085881726370363
https://www.ixigua.com/7186085881726370363?id=7188812014792213029&logTag=3e22e05fa24917c3eb2b
https://www.ixigua.com/7186085881726370363?id=7188812014792213029
注意
第一次下载可能需要手动粘贴cookies,下载过程请勿关闭西瓜下载页面(具体cookies获取方法请百度)
声明
软件仅供学习交流使用,禁止商业使用,禁止用来做危害网络安全的事情,因错误使用造成的危害由使用者负责。
源码运行环境
windows 11/windows 10
python3.10
关于python模块请自行安装
更新
4月7日 更新进度条(原来的进度条是简易的,我手搓了一个新的,比较实用可以显示下载的状态速度等)
优点
自动检查Cookie是否过期
可选择画质下载
根据电脑的CPU核数自动生成线程数
多线程下载
缺点
无UI界面
# 核心代码(*喜欢研究的可以看这里*) class XiGua: """西瓜下载API""" def __init__(self, url: str): self.main_url = url self.app_url_num = url.rsplit('/', 1)[-1] self.api_headers = {'referer': url} self.main_headers = { 'cookie': utils.read_cookies(), 'referer': url, 'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/111.0.0.0 Safari/537.36 Edg/111.0.1661.62' } self.base_url = 'https://www.ixigua.com/api/albumv2/details?albumId=' self.url = self.base_url + self.app_url_num self.title = '' self.video_list: list = [] def get_json(self): response_json = requests.get(self.url, headers=self.api_headers).json() for i, v in response_json['data']['videoResource']['normal']['video_list'].items(): mv = MateVideo() # 画质 base64url mv.videoinfo[v.get('definition', "unfound")] = v.get("backup_url_1", "unfound") self.video_list.append(mv) def get_title(self, trynum=3): try: response = requests.get(self.main_url, headers=self.main_headers) response.encoding = 'utf8' html = etree.HTML(response.text) title = html.xpath(request_parmas.title_xpath)[0] if title: self.title = title logger.logger.info(f'获取标题:{title}') else: raise ValueError('cookies 过期') except: logger.logger.warning("cookies已经过期,请刷新页面,重新获取cookies并粘贴,下载时请勿关闭页面") utils.check_cookie() if trynum > 0: self.get_title(trynum - 1) else: logger.logger.error("重试次数耗尽,请重新运行此程序") raise ValueError |
https://www.123pan.com/s/E3kbVv-TRRBH.html 提取码:myxi