-
Notifications
You must be signed in to change notification settings - Fork 4
Expand file tree
/
Copy pathexamples.py
More file actions
132 lines (97 loc) · 3.43 KB
/
examples.py
File metadata and controls
132 lines (97 loc) · 3.43 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
#!/usr/bin/env python3
"""
使用示例脚本
演示如何编程方式使用视频下载器
"""
from main import VideoDownloader
# 示例 1: 下载单个视频
def example_single_video():
"""下载单个视频的示例"""
print("示例 1: 下载单个视频")
print("-" * 50)
downloader = VideoDownloader()
# 检查依赖
if not downloader.check_dependencies():
return
# 视频URL
urls = [
"https://appezrn4igg1968.h5.xet.citv.cn/p/course/video/v_688f0341e4b0694ca0f5034b"
]
# 捕获视频(首次运行设置 headless=False 以完成登录)
downloader.capture_video_urls(urls, headless=False)
# 显示捕获结果
downloader.show_captured_videos()
# 下载视频
downloader.download_all()
# 示例 2: 批量下载多个视频
def example_batch_download():
"""批量下载多个视频的示例"""
print("示例 2: 批量下载多个视频")
print("-" * 50)
downloader = VideoDownloader()
# 检查依赖
if not downloader.check_dependencies():
return
# 多个视频URL
urls = [
"https://appezrn4igg1968.h5.xet.citv.cn/p/course/video/v_xxx1",
"https://appezrn4igg1968.h5.xet.citv.cn/p/course/video/v_xxx2",
"https://appezrn4igg1968.h5.xet.citv.cn/p/course/video/v_xxx3",
]
# 捕获视频(已登录后可使用 headless=True)
downloader.capture_video_urls(urls, headless=True)
# 保存捕获信息
downloader.save_captured_info("my_videos.json")
# 下载所有视频
success, fail = downloader.download_all()
print(f"\n完成!成功: {success}, 失败: {fail}")
# 示例 3: 仅捕获视频信息,不下载
def example_capture_only():
"""仅捕获视频信息的示例"""
print("示例 3: 仅捕获视频信息")
print("-" * 50)
downloader = VideoDownloader()
if not downloader.check_dependencies():
return
urls = ["https://appezrn4igg1968.h5.xet.citv.cn/p/course/video/v_xxx"]
# 捕获但不下载
downloader.capture_video_urls(urls, headless=True)
# 保存为 JSON
downloader.save_captured_info("captured.json")
print("\n视频信息已保存,稍后可以手动下载")
# 示例 4: 自定义输出目录
def example_custom_output():
"""自定义输出目录的示例"""
print("示例 4: 自定义输出目录")
print("-" * 50)
# 自定义输出目录
downloader = VideoDownloader(
user_data_dir="./my_browser_data",
output_dir="./my_videos"
)
if not downloader.check_dependencies():
return
urls = ["https://appezrn4igg1968.h5.xet.citv.cn/p/course/video/v_xxx"]
downloader.capture_video_urls(urls, headless=True)
downloader.download_all()
if __name__ == "__main__":
print("=" * 50)
print("小鹅通视频下载器 - 使用示例")
print("=" * 50)
print("\n请选择要运行的示例:")
print("1. 下载单个视频")
print("2. 批量下载多个视频")
print("3. 仅捕获视频信息")
print("4. 自定义输出目录")
print()
choice = input("请输入选项 (1-4): ").strip()
if choice == "1":
example_single_video()
elif choice == "2":
example_batch_download()
elif choice == "3":
example_capture_only()
elif choice == "4":
example_custom_output()
else:
print("无效选项")