您的用戶組已晉級為:府丞
最爽的,最简单的:肯定是开一个月vip+nc的6.5o+nc的5o新手券
复杂但相对快速:发种子+nc的6.5o+nc的5o新手券
批量制作种子脚本(适配于馒头的流程,具体报错问ai即可,保存的文件依次上传到馒头的“发布页面即可”):
import osimport subprocessimport shutilfrom pathlib import Path# 设定文件夹路径downloads_dir = "/home/qbtuser/Downloads"output_dir_suffix = "_preprocess"# 获取用户输入的文件夹名称folder_name = input(f"请输入要处理的文件夹名称(在 {downloads_dir} 下):")folder_path = os.path.join(downloads_dir, folder_name)# 判断文件夹是否存在if not os.path.isdir(folder_path): print(f"文件夹 {folder_name} 不存在,请检查路径是否正确!") exit()print(f"开始处理文件夹: {folder_path}")# 删除之前生成的种子文件(如果存在)old_torrent_path = os.path.join(downloads_dir, f"{folder_name}.torrent")if os.path.exists(old_torrent_path): os.remove(old_torrent_path) print(f"删除旧种子文件: {folder_name}.torrent")# 第一步:删除除了mkv和mp4文件的其他文件print("第一步:清理非视频文件...")for item in os.listdir(folder_path): item_path = os.path.join(folder_path, item) if not item.lower().endswith(('.mkv', '.mp4')): if os.path.isdir(item_path): print(f"删除文件夹: {item}") shutil.rmtree(item_path) else: print(f"删除文件: {item}") os.remove(item_path)# 检查剩余的视频文件video_files = [f for f in os.listdir(folder_path) if f.lower().endswith(('.mkv', '.mp4'))]print(f"找到 {len(video_files)} 个视频文件: {video_files}")# 第二步:处理每个视频文件生成缩略图output_folder = os.path.join(downloads_dir, f"{folder_name}{output_dir_suffix}")os.makedirs(output_folder, exist_ok=True)print(f"输出文件夹: {output_folder}")for video_file in video_files: video_file_path = os.path.join(folder_path, video_file) print(f"正在为 {video_file} 生成缩略图...") # 检查 pyvideothumbnailer 是否存在 try: subprocess.run(['which', 'pyvideothumbnailer'], check=True, capture_output=True) except subprocess.CalledProcessError: print("错误: pyvideothumbnailer 命令未找到,请确保已安装") continue # 执行 pyvideothumbnailer 生成缩略图 # 注意:pyvideothumbnailer 默认在视频文件所在目录生成图片 result = subprocess.run([ 'pyvideothumbnailer', '--width', '1024', '--columns', '4', '--rows', '7', video_file_path ], capture_output=True, text=True) print(f"命令执行结果 (返回码: {result.returncode})") if result.stdout: print(f"标准输出: {result.stdout}") if result.stderr: print(f"标准错误: {result.stderr}") if result.returncode != 0: print(f"生成缩略图失败:{video_file}") else: print(f"缩略图生成成功:{video_file}") # 将生成的缩略图移动到输出文件夹 thumbnail_name = f"{video_file}.jpg" src_thumbnail = os.path.join(folder_path, thumbnail_name) dst_thumbnail = os.path.join(output_folder, thumbnail_name) if os.path.exists(src_thumbnail): shutil.move(src_thumbnail, dst_thumbnail) print(f"缩略图已移动到: {dst_thumbnail}") else: print(f"警告: 未找到生成的缩略图 {src_thumbnail}") # 检查输出文件夹内容 print(f"输出文件夹内容: {os.listdir(output_folder)}")# 第三步:使用 mediainfo 获取视频信息print("第三步:获取媒体信息...")all_mediainfo = []for video_file in video_files: video_file_path = os.path.join(folder_path, video_file) print(f"正在获取 {video_file} 的媒体信息...") try: mediainfo_output = subprocess.check_output(['mediainfo', video_file_path]) all_mediainfo.append(f"=== {video_file} ===\n") all_mediainfo.append(mediainfo_output.decode('utf-8')) all_mediainfo.append("\n\n") except subprocess.CalledProcessError as e: print(f"获取媒体信息失败:{video_file}") print(f"错误信息:{e}")# 将所有媒体信息写入一个文件if all_mediainfo: mediainfo_output_path = os.path.join(output_folder, 'content.txt') with open(mediainfo_output_path, 'w', encoding='utf-8') as f: f.writelines(all_mediainfo) print(f"媒体信息已保存到: {mediainfo_output_path}")# 第四步:再次确保原文件夹内只有mkv/MP4文件(但保留已移动到输出文件夹的缩略图)print("第四步:最终清理...")for item in os.listdir(folder_path): item_path = os.path.join(folder_path, item) if not item.lower().endswith(('.mkv', '.mp4')): if os.path.isdir(item_path): print(f"删除残余文件夹: {item}") shutil.rmtree(item_path) else: print(f"删除残余文件: {item}") os.remove(item_path)# 第五步:创建种子文件torrent_file_path = os.path.join(downloads_dir, f"{folder_name}.torrent")print(f"正在生成种子文件:{torrent_file_path}")result = subprocess.run([ 'mktorrent', '-a', 'http://tracker.m-team.cc/announce.php', '-o', torrent_file_path, folder_path])if result.returncode != 0: print(f"生成种子文件失败:{torrent_file_path}")else: print(f"种子文件生成成功:{torrent_file_path}") # 将种子文件移动到_preprocess文件夹 final_torrent_path = os.path.join(output_folder, f"{folder_name}.torrent") shutil.move(torrent_file_path, final_torrent_path) print(f"种子文件已移动到: {final_torrent_path}")print("处理完成!")print(f"请检查输出文件夹: {output_folder}")print(f"最终文件夹内容: {os.listdir(output_folder)}")
评论 (0)