{"id":25406207,"url":"https://github.com/kingluffywang/youtube","last_synced_at":"2025-10-31T02:30:26.976Z","repository":{"id":270175176,"uuid":"909547313","full_name":"kingluffywang/youtube","owner":"kingluffywang","description":"youtube video processing scripts","archived":false,"fork":false,"pushed_at":"2025-01-21T21:06:40.000Z","size":41,"stargazers_count":68,"open_issues_count":3,"forks_count":17,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-01-21T22:19:52.235Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/kingluffywang.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-12-29T03:19:39.000Z","updated_at":"2025-01-21T21:06:44.000Z","dependencies_parsed_at":"2024-12-29T04:32:46.292Z","dependency_job_id":null,"html_url":"https://github.com/kingluffywang/youtube","commit_stats":null,"previous_names":["kingluffywang/youtube"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kingluffywang%2Fyoutube","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kingluffywang%2Fyoutube/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kingluffywang%2Fyoutube/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kingluffywang%2Fyoutube/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/kingluffywang","download_url":"https://codeload.github.com/kingluffywang/youtube/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":239088390,"owners_count":19579435,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2025-02-16T05:08:40.377Z","updated_at":"2025-10-31T02:30:21.674Z","avatar_url":"https://github.com/kingluffywang.png","language":"Python","funding_links":[],"categories":["Python"],"sub_categories":[],"readme":"# youtube\nYouTube video processing scripts\n\n脚本 1: CN_mp3_audio2text.py\n这段代码的功能和安装步骤。\n\n**代码功能概述：**\n这是一个音频转文字的程序，主要功能是将 MP3 音频文件转换为文本。具体来说：\n1. 加载 Whisper 大型语音识别模型\n2. 读取并预处理 MP3 音频文件（转换为单声道、16kHz采样率）\n3. 将音频数据转换为模型可处理的格式\n4. 执行语音识别，生成文本\n5. 将转录结果保存到文件\n6. 提供详细的处理进度和时间统计\n\n**安装步骤：**\n1. 首先确保安装了 Python（推荐 3.8 或更高版本）\n\n2. 创建并激活虚拟环境（推荐）：\n```bash\n# 创建虚拟环境\npython -m venv venv\n\n# 激活虚拟环境\n# Windows:\nvenv\\Scripts\\activate\n# Linux/Mac:\nsource venv/bin/activate\n```\n3. 安装所需依赖：\n```bash\n# 安装基础依赖\npip install faster-whisper\npip install pydub\npip install numpy\n\n# 如果处理 MP3 文件，还需要安装 ffmpeg\n# Windows: \n# 下载 ffmpeg: https://www.gyan.dev/ffmpeg/builds/\n# 添加到系统环境变量\n\n# Linux:\nsudo apt-get install ffmpeg\n\n# Mac:\nbrew install ffmpeg\n```\n**使用示例：**\n```python\n# 导入函数\nfrom your_script import transcribe_audio\n\n# 调用函数进行转录\nresult = transcribe_audio(\n    audio_file_path=\"你的音频文件.mp3\",\n    output_file_path=\"输出文本.txt\",\n    language=\"zh\"  # 支持的语言代码，如 zh=中文, en=英文\n)\n```\n**注意事项：**\n1. 代码使用 CPU 进行计算（`device=\"cpu\"`），如果有 GPU 可以修改为 `device=\"cuda\"`\n2. 使用了 `large-v2` 模型，需要较大内存，如果内存不足可以换用较小的模型\n3. 使用了 `int8` 量化（`compute_type=\"int8\"`）来减少内存占用\n4. 程序会显示详细的处理进度，方便监控长音频的转录进度\n\n脚本 2： zimu.py\n我来帮你总结这段代码的功能和安装步骤。\n\n**代码功能概述：**\n这是一个音频转字幕的程序，它可以将音频文件转换为标准的 SRT 格式字幕文件。主要功能包括：\n1. 将音频时间点转换为 SRT 时间戳格式（如：00:00:03,456）\n2. 加载 Whisper 语音识别模型\n3. 处理和转换音频文件（转单声道、16kHz采样率）\n4. 执行语音识别，获取带时间戳的文本片段\n5. 生成标准 SRT 格式字幕文件（包含序号、时间轴、文本内容）\n6. 提供详细的处理进度和时间统计\n\n**安装步骤：**\n\n1. 确保安装了 Python（推荐 3.8 或更高版本）\n\n2. 创建并激活虚拟环境（推荐）：\n```bash\n# 创建虚拟环境\npython -m venv venv\n\n# 激活虚拟环境\n# Windows:\nvenv\\Scripts\\activate\n# Linux/Mac:\nsource venv/bin/activate\n```\n\n3. 安装所需依赖：\n```bash\n# 安装基础依赖\npip install faster-whisper\npip install pydub\npip install numpy\n\n# 安装 ffmpeg（处理音频文件必需）\n# Windows: \n# 1. 下载 ffmpeg: https://www.gyan.dev/ffmpeg/builds/\n# 2. 解压并添加到系统环境变量\n\n# Linux:\nsudo apt-get install ffmpeg\n\n# Mac:\nbrew install ffmpeg\n```\n\n**使用示例：**\n```python\n# 导入函数\nfrom your_script import transcribe_audio_to_srt\n\n# 调用函数生成字幕\nresult = transcribe_audio_to_srt(\n    audio_file_path=\"你的音频.mp3\",\n    output_srt_path=\"输出字幕.srt\",\n    language=\"zh\"  # 支持的语言代码，如 zh=中文, en=英文\n)\n```\n\n**生成的 SRT 格式示例：**\n```\n1\n00:00:00,000 --\u003e 00:00:02,500\n第一段文字\n\n2\n00:00:02,500 --\u003e 00:00:05,000\n第二段文字\n```\n\n**注意事项：**\n1. 代码使用 CPU 进行计算，可通过修改 `device=\"cuda\"` 启用 GPU 加速\n2. 使用了 `large-v2` 模型，需要较大内存，可以根据需要选择较小的模型\n3. 使用了 `int8` 量化以减少内存占用\n4. 输出的 SRT 文件采用 UTF-8 编码，兼容大多数播放器\n5. 程序会显示详细的处理进度，方便监控长音频的转录进度\n\n脚本 3： video-resize.py\n\n**代码功能概述：**\n这是一个视频分辨率转换工具，专门用于将普通视频转换为适合 YouTube Shorts 的垂直视频格式（1080x1920）。主要功能：\n1. 自动创建输出目录（如果不存在）\n2. 调整视频分辨率到 1080x1920\n3. 保持原始视频的宽高比\n4. 用黑边填充空白区域（居中处理）\n5. 保持原始音频质量不变\n\n**安装步骤：**\n\n1. 确保安装了 Python（推荐 3.6 或更高版本）\n\n2. 安装 FFmpeg\n```bash\n# Windows:\n# 1. 下载 FFmpeg: https://www.gyan.dev/ffmpeg/builds/\n# 2. 解压并将 bin 目录添加到系统环境变量\n\n# Linux:\nsudo apt update\nsudo apt install ffmpeg\n\n# Mac:\nbrew install ffmpeg\n```\n\n3. 验证安装\n```bash\n# 在终端/命令行中验证 FFmpeg 是否安装成功\nffmpeg -version\n```\n\n**使用示例：**\n```python\n# 导入函数\nfrom video_converter import resize_video_for_youtube_shorts\n\n# 转换视频\nresize_video_for_youtube_shorts(\n    input_file=\"原始视频.mp4\",\n    output_file=\"shorts版本.mp4\"\n)\n```\n\n**参数说明：**\n- `input_file`: 输入视频文件路径\n- `output_file`: 输出视频文件路径\n- 输出视频尺寸: 1080x1920 像素（适合 YouTube Shorts）\n- 处理方式：\n  - 保持原始视频比例\n  - 自动添加黑边填充\n  - 视频居中显示\n  - 保持原始音频质量\n\n**注意事项：**\n1. 确保系统已正确安装 FFmpeg 并添加到环境变量\n2. 输入视频可以是任何 FFmpeg 支持的格式\n3. 如果输出目录不存在，程序会自动创建\n4. 代码会保持原始音频流（`-c:a copy`），这样可以加快处理速度\n5. 如果转换过程出错，会打印详细的错误信息\n\n**可能的报错处理：**\n- 如果遇到 \"FFmpeg not found\" 错误，请检查 FFmpeg 是否正确安装并添加到环境变量\n- 如果遇到权限错误，请确保对输出目录有写入权限\n- 如果输入文件不存在，会提示相应的错误信息\n\n脚本 4： helper_srt_spacerm.py\n让我来总结这个字幕处理工具的功能和使用方法。\n\n**功能概述：**\n这是一个字幕文本处理工具，主要用于：\n1. 删除字幕文件中的所有空格（包括半角和全角空格）\n2. 删除所有换行符和回车符\n3. 将所有文本内容合并为单行输出\n4. 删除所有空白行\n5. 保持 UTF-8 编码\n\n**使用方法：**\n\n1. 安装要求：\n```bash\n# 只需要 Python 3.x 版本，不需要额外安装任何库\npython --version  # 检查 Python 版本\n```\n\n2. 代码使用：\n```python\n# 方法一：直接运行脚本\npython script.py  # 脚本会处理默认的 '音频字幕.srt' 文件\n\n# 方法二：在其他代码中导入使用\nfrom script import remove_spaces_newlines\n\n# 处理自定义文件\nremove_spaces_newlines(\n    input_file='你的字幕文件.srt',  \n    output_file='输出文件.srt'\n)\n```\n\n**注意事项：**\n1. 处理前建议备份原始文件，因为处理后将丢失原有格式\n2. 确保输入文件为 UTF-8 编码\n3. 输出文件会自动以 UTF-8 编码保存\n4. 处理后的文件会失去原有的换行和格式，全部内容将在一行显示\n5. 如果输出文件已存在，会被覆盖\n\n**适用场景：**\n- 需要对字幕文本进行文本分析时\n- 需要提取纯文本内容时\n- 需要合并多行文本为单行时\n- 处理含有多余空格的字幕文件时\n\n**输入输出示例：**\n```\n输入文件内容：\n这是第一行   内容\n这是第二行 内容\n  这是第三行\n\n输出文件内容：\n这是第一行内容这是第二行内容这是第三行\n```\n\n脚本5：general_shorts_cut.py\n# Video Splitter\n\n一个简单但功能强大的视频分割工具，可以将长视频自动分割成59秒的短片段。这个工具特别适合需要将视频内容切分成短视频的场景，比如准备短视频平台的内容。\n\n## 功能特点\n\n- 自动将视频分割成59秒的片段\n- 保持原视频的质量\n- 自动创建输出目录\n- 使用H.264视频编码和AAC音频编码\n- 显示处理进度\n- 自动对输出文件进行编号\n\n## 环境要求\n\n- Python 3.6+\n- moviepy\n- ffmpeg\n\n## 安装步骤\n\n1. 首先确保您的系统已安装Python 3.6或更高版本。\n\n2. 安装必要的Python包：\n```bash\npip install moviepy\n```\n\n3. 安装ffmpeg（moviepy的依赖）：\n\n   - Windows用户：\n     ```bash\n     # 使用Chocolatey包管理器\n     choco install ffmpeg\n     ```\n   \n   - Mac用户：\n     ```bash\n     # 使用Homebrew包管理器\n     brew install ffmpeg\n     ```\n   \n   - Linux用户：\n     ```bash\n     # Ubuntu/Debian\n     sudo apt-get install ffmpeg\n     \n     # CentOS\n     sudo yum install ffmpeg\n     ```\n\n4. 下载项目文件：\n```bash\ngit clone [你的项目地址]\ncd video-splitter\n```\n\n## 使用方法\n\n1. 打开`split_video.py`文件，修改以下参数：\n```python\ninput_video = \"你的视频文件路径.mp4\"  # 修改为您的输入视频路径\noutput_folder = \"输出文件夹路径\"      # 修改为您想要保存分割视频的文件夹路径\n```\n\n2. 运行脚本：\n```bash\npython split_video.py\n```\n\n3. 等待处理完成，分割后的视频片段将保存在指定的输出文件夹中。\n\n## 输出格式\n\n- 输出的视频文件将按照 `clip_001.mp4`, `clip_002.mp4`, ... 的格式命名\n- 每个片段最长59秒\n- 视频编码：H.264\n- 音频编码：AAC\n\n## 注意事项\n\n- 确保有足够的磁盘空间存储分割后的视频片段\n- 处理大型视频文件时可能需要较长时间\n- 建议在处理重要视频前先备份原始文件\n- 确保对输入视频文件和输出目录有正确的读写权限\n\n## 常见问题解决\n\n1. 如果遇到ffmpeg相关错误，请确保：\n   - ffmpeg已正确安装\n   - ffmpeg可以在命令行中访问（已添加到系统PATH）\n\n2. 如果出现内存错误，可以尝试：\n   - 关闭其他占用内存的程序\n   - 处理较小的视频文件\n   - 增加系统的虚拟内存\n\n脚本 6：zimu_jianti.py 生成简体字的字幕\n\n# 音频转字幕工具说明文档\n\n## 功能简介\n\n这是一个基于 Faster Whisper 的音频转写工具，可以将音频文件转换为带时间戳的 SRT 格式字幕文件。主要特点：\n\n- 支持多种音频格式转换为 SRT 字幕\n- 支持中文语音识别\n- 支持繁体转简体中文\n- 提供详细的转换进度提示\n- 使用 Whisper large-v3 模型保证准确率\n\n## 环境要求\n\n使用前需要安装以下 Python 包：\n\n```bash\npip install faster-whisper\npip install pydub\npip install numpy\npip install opencc-python-reimplemented\n```\n\n## 使用方法\n\n### 基础用法\n\n```python\nfrom audio_transcribe import transcribe_audio_to_srt\n\n# 基本调用方式\ntranscribe_audio_to_srt(\n    audio_file_path=\"input.mp3\",    # 输入音频文件路径\n    output_srt_path=\"output.srt\",   # 输出字幕文件路径\n    language=\"zh\",                  # 音频语言（默认中文）\n    to_simplified=True              # 是否转换为简体中文\n)\n```\n\n### 参数说明\n\n- `audio_file_path`：输入音频文件路径，支持多种格式（mp3、wav 等）\n- `output_srt_path`：输出 SRT 字幕文件的保存路径\n- `language`：音频语言代码，默认为 \"zh\"（中文）\n- `to_simplified`：是否将输出转换为简体中文，默认为 True\n\n## 功能详解\n\n1. **音频预处理**\n   - 自动将音频转换为单声道\n   - 采样率设置为 16kHz\n   - 支持多种音频格式输入\n\n2. **语音识别优化**\n   - 使用 large-v3 模型提高识别准确率\n   - 启用语音活动检测（VAD）\n   - 配置上下文关联以提高准确性\n   - 通过参数配置减少随机性\n\n3. **字幕生成**\n   - 自动生成序号编号\n   - 精确的时间戳标记\n   - 支持繁简中文转换\n   - 标准 SRT 格式输出\n\n## 输出示例\n\n```\n1\n00:00:00,000 --\u003e 00:00:02,500\n这是第一句话的内容\n\n2\n00:00:02,500 --\u003e 00:00:05,000\n这是第二句话的内容\n```\n\n## 进度显示\n\n脚本执行过程中会显示详细的进度信息：\n\n- 音频文件加载进度\n- 模型加载状态\n- 转录进度和时间戳\n- 总体处理时间统计\n\n## 注意事项\n\n1. 首次运行时会自动下载 Whisper 模型，需要稳定的网络连接\n2. 处理长音频文件时可能需要较长时间\n3. 建议使用高质量的音频输入以获得更好的识别效果\n4. 确保系统有足够的存储空间和内存\n\n## 错误处理\n\n如果遇到问题，请检查：\n\n- 所有依赖包是否正确安装\n- 输入音频文件是否存在且格式正确\n- 系统是否有足够的存储空间\n- 网络连接是否正常（首次运行需要下载模型）\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkingluffywang%2Fyoutube","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fkingluffywang%2Fyoutube","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkingluffywang%2Fyoutube/lists"}