106 lines
2.8 KiB
Python
106 lines
2.8 KiB
Python
import sys
|
|
import os
|
|
import time
|
|
import subprocess
|
|
|
|
# 设置UTF-8编码
|
|
os.environ['PYTHONIOENCODING'] = 'utf-8'
|
|
|
|
# 添加项目路径
|
|
sys.path.insert(0, r"C:\Users\Administrator\Desktop\TikTokDownload-main")
|
|
|
|
from auto_cookie import get_douyin_cookie_auto
|
|
|
|
def test_auto_download():
|
|
"""测试完整的自动下载流程"""
|
|
print("="*60)
|
|
print("自动下载测试")
|
|
print("="*60)
|
|
|
|
# 步骤1: 自动获取Cookie
|
|
print("\n[步骤1] 自动获取Cookie")
|
|
cookie = get_douyin_cookie_auto(force_refresh=True)
|
|
|
|
if not cookie:
|
|
print("错误: Cookie获取失败")
|
|
return False
|
|
|
|
print(f"成功: Cookie长度 {len(cookie)}")
|
|
print(f"Cookie内容: {cookie}")
|
|
|
|
# 步骤2: 使用Cookie下载视频
|
|
print("\n[步骤2] 使用Cookie下载视频")
|
|
|
|
test_url = "https://v.douyin.com/R5doyi5_cTk/"
|
|
save_dir = r"C:\Users\Administrator\Desktop\TestDownload"
|
|
|
|
cmd = [
|
|
r"C:\Program Files\Python311\python.exe",
|
|
"-m", "f2", "dy",
|
|
"-M", "one",
|
|
"-u", test_url,
|
|
"-p", save_dir,
|
|
"-k", cookie,
|
|
]
|
|
|
|
print(f"下载链接: {test_url}")
|
|
print(f"保存目录: {save_dir}")
|
|
print("开始下载...\n")
|
|
|
|
try:
|
|
env = os.environ.copy()
|
|
env['PYTHONIOENCODING'] = 'utf-8'
|
|
|
|
process = subprocess.Popen(
|
|
cmd,
|
|
stdout=subprocess.PIPE,
|
|
stderr=subprocess.STDOUT,
|
|
env=env,
|
|
text=True,
|
|
encoding='utf-8',
|
|
errors='replace'
|
|
)
|
|
|
|
# 实时输出
|
|
for line in process.stdout:
|
|
print(line.rstrip())
|
|
|
|
process.wait()
|
|
|
|
if process.returncode == 0:
|
|
print("\n成功: 下载完成!")
|
|
|
|
# 检查文件是否存在
|
|
if os.path.exists(save_dir):
|
|
files = [f for f in os.listdir(save_dir) if f.endswith('.mp4')]
|
|
if files:
|
|
print(f"下载的文件: {files}")
|
|
for f in files:
|
|
filepath = os.path.join(save_dir, f)
|
|
size = os.path.getsize(filepath) / 1024 / 1024
|
|
print(f" - {f} ({size:.2f} MB)")
|
|
|
|
return True
|
|
else:
|
|
print(f"\n错误: 下载失败,返回码 {process.returncode}")
|
|
return False
|
|
|
|
except subprocess.TimeoutExpired:
|
|
print("错误: 下载超时")
|
|
return False
|
|
except Exception as e:
|
|
print(f"错误: {e}")
|
|
import traceback
|
|
traceback.print_exc()
|
|
return False
|
|
|
|
if __name__ == "__main__":
|
|
success = test_auto_download()
|
|
|
|
print("\n" + "="*60)
|
|
if success:
|
|
print("测试结果: 成功 - 自动Cookie功能正常工作")
|
|
else:
|
|
print("测试结果: 失败")
|
|
print("="*60)
|