MoneyPrinterTurbo
MoneyPrinterTurbo copied to clipboard
建议选取视频时,排除已经下载过的视频
现在稍微长一点的视频中,视频里经常出现相同的视频片段, 建议取视频时,排除已经下载过的视频, 谢谢~
长视频还要优化一下,你可以把项目目录下面的 script.json
文件上传到这里么?
我也调试一下
这个是个好问题, 我已经稍微修改了源码,实现了吧下载的视频存放到一个共同的目录下, 下载前先判断有没有本地存在该视频,没有缓存在下载。
- 需要创建一个目录 v_dir="/sdb/github/MoneyPrinterTurbo/storage/tasks/video"
- app/services/material.py 的save_video函数更新如下
- 重新启动webui.sh程序
- 测试是否ok
def save_video(video_url: str, save_dir: str) -> str: # 解析URL,得到路径部分 parsed_url = urlparse(video_url) path = parsed_url.path # 从路径中提取文件名 filename = os.path.basename(path) # 文件名即为所需的 video_id video_id = filename #video_id = f"vid-{str(int(time.time() * 1000))}" v_dir="/sdb/github/MoneyPrinterTurbo/storage/tasks/video" video_path = f"{v_dir}/{video_id}" #video_path = f"{save_dir}/{video_id}.mp4" proxies = config.pexels.get("proxies", None) # 检查 video_path 是否存在 if os.path.exists(video_path): print("该文件已经存在。") else: # 如果文件不存在,执行请求,下载并保存 with open(video_path, "wb") as f: # 禁用安全请求警告 requests.packages.urllib3.disable_warnings() # 请求视频内容 response = requests.get(video_url, proxies=proxies, verify=False, timeout=(10, 180)) # 写入文件 f.write(response.content) print(f"文件已保存到 {video_path}")
return video_path
以下面的带有语法的为准。
def save_video(video_url: str, save_dir: str) -> str:
# 解析URL,得到路径部分
parsed_url = urlparse(video_url)
path = parsed_url.path
# 从路径中提取文件名
filename = os.path.basename(path)
# 文件名即为所需的 video_id
video_id = filename
#video_id = f"vid-{str(int(time.time() * 1000))}"
v_dir="/sdb/github/MoneyPrinterTurbo/storage/tasks/video"
video_path = f"{v_dir}/{video_id}"
#video_path = f"{save_dir}/{video_id}.mp4"
proxies = config.pexels.get("proxies", None)
# 检查 video_path 是否存在
if os.path.exists(video_path):
print("该文件已经存在。")
else:
# 如果文件不存在,执行请求,下载并保存
with open(video_path, "wb") as f:
# 禁用安全请求警告
requests.packages.urllib3.disable_warnings()
# 请求视频内容
response = requests.get(video_url, proxies=proxies, verify=False, timeout=(10, 180))
# 写入文件
f.write(response.content)
print(f"文件已保存到 {video_path}")
return video_path
@shanghailiwei 非常不错,我合到代码里面去 👍
@shanghailiwei 已加入该逻辑,感谢建议,有问题欢迎反馈 增加了配置项,这样更灵活一些
[app]
# 视频素材存放位置
# material_directory = "" #表示将视频素材下载到默认的文件夹,默认文件夹为当前项目下的 ./storage/cache_videos
# material_directory = "/user/harry/videos" #表示将视频素材下载到指定的文件夹中
# material_directory = "task" #表示将视频素材下载到当前任务的文件夹中,这种方式无法共享已经下载的视频素材
material_directory = ""