调用 Python 开源库,获取油管英文视频的手动或自动英文srt字幕,以及自动中文简体翻译srt字幕
前提条件
非常抱歉,这个程序就是个雏形,非常不完善,输入需要手动编辑,凑活着可以用,请自己完善吧。
开源声明:此文代码引用了一个开源MIT License的Python库,其他代码是本人自写自用。你可以随便用,但是本人不负责有关代码的任何责任。
概述
输入:油管英文视频的视频号 例如 “04j_yB4CZPM”
输出:两个srt文件
- 手动英文(没有则是自动英文)srt 字幕,即eng.srt
- 自动中文简体翻译srt字幕,即zh.srt
核心开源库 (开源的MIT License授权,不存在版权问题,请审核放行!!!)
核心思想是用到了开源的MIT License的 youtube_transcript_api 这个库来为我们服务。其中,用了YouTubeTranscriptApi, 用于获取字幕。
也用到了 其中 formatters 子库里面的 SRTFormatter,用于将字幕转化为srt格式。
https://github.com/jdepoix/youtube-transcript-api
如果你引用 youtube_transcript_api ,请在代码中 增加一个 MIT License 声明文件 MIT_LICENSE.TXT
(来源:https://opensource.org/license/MIT)
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the “Software”), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
代码正文开始,先引用开源库
from youtube_transcript_api import YouTubeTranscriptApi # the base class to inherit from when creating your own formatter.
from youtube_transcript_api.formatters import Formatter# some provided subclasses, each outputs a different string format.
from youtube_transcript_api.formatters import JSONFormatter
from youtube_transcript_api.formatters import TextFormatter
from youtube_transcript_api.formatters import WebVTTFormatter
from youtube_transcript_api.formatters import SRTFormatter
设定油管视频号(你需要改成你的视频号)
vid = "04j_yB4CZPM" #think twice before drink milk```
获取字幕列表
transcript_list = YouTubeTranscriptApi.list_transcripts(vid)
尝试提取手动英文字幕,没有则提取自动英文字幕,因为手动字幕一般来说,质量更高
try:transcript = transcript_list.find_manually_created_transcript(['en'])except:try:# or automatically generated onestranscript = transcript_list.find_generated_transcript(['en'])except:print("cannot find auto en")ten = transcript.fetch()
提取自动翻译的中文字幕。注意:这里有完善的机会,你可以优先获取手动中文字幕,如果没有,再获取翻译中文简体字幕。因为在我的使用场景,很少有手动中文字幕,所以,这里我就直接先照顾我自己的使用场景了。
translated_transcript = transcript.translate('zh-Hans')
tzh = translated_transcript.fetch()
把英文、中文字幕转化为srt格式
formatter = SRTFormatter()
srt_formatted_en = formatter.format_transcript(ten)
srt_formatted = formatter.format_transcript(tzh)
英文字幕保存为文件
with open(r"eng.srt", "w+", encoding='utf-8') as fen:for sfen in srt_formatted_en:fen.write(sfen)fen.close()
中文字幕保存为文件
with open(r"zh.srt", "w+", encoding='utf-8') as f:for sf in srt_formatted:f.write(sf)f.close()
我承认,有很多需要完善的地方,但是对我日常工作而言,已经够用了。抛砖引玉,请大家继续努力吧。
加油好运!
相关文章:
调用 Python 开源库,获取油管英文视频的手动或自动英文srt字幕,以及自动中文简体翻译srt字幕
前提条件 非常抱歉,这个程序就是个雏形,非常不完善,输入需要手动编辑,凑活着可以用,请自己完善吧。 开源声明:此文代码引用了一个开源MIT License的Python库,其他代码是本人自写自用。你可以随…...
UDP协议实现通信与数据传输(创建客户端和服务器)
目录 一、UDP (传输层,用户数据报协议) 二、服务器Server的创建 三、客户端Client的创建 四、效果实现(描述) 一、UDP (传输层,用户数据报协议) UDP(User Datagram Pr…...
【红黑树】
红黑树 小杨 红黑树的概念 红黑树,是一种二叉搜索树,但在每个结点上增加一个存储位表示结点的颜色,可以是Red或Black。 通过对任何一条从根到叶子的路径上各个结点着色方式的限制,红黑树确保没有一条路径会比其他路径长出俩倍&am…...
排序算法——简单选择排序
一、算法原理 简单选择排序是一种基本的排序算法,其原理是每次从未排序的元素中选择最小(或最大)的元素,然后与未排序部分的第一个元素交换位置,直到所有元素都被排序。 二、算法实现流程 简单选择排序法(Simple Se…...
OpenAI API推出结构化输出功能
每周跟踪AI热点新闻动向和震撼发展 想要探索生成式人工智能的前沿进展吗?订阅我们的简报,深入解析最新的技术突破、实际应用案例和未来的趋势。与全球数同行一同,从行业内部的深度分析和实用指南中受益。不要错过这个机会,成为AI领…...
Python 异步编程:Sqlalchemy 异步实现方式
SQLAlchemy 是 Python 中最流行的数据库工具之一,在新版本中引入了对异步操作的支持。这为使用异步框架(如 FastAPI)开发应用程序带来了极大的便利。在这篇文章中,简单介绍下 SQLAlchemy 是如何利用 Greenlet 实现异步操作的。 什…...
父类引用指向子类对象
在 Java 中,父类引用可以指向子类对象,这是多态的一种表现。这种特性允许你使用父类的引用来操作子类对象,从而实现更灵活和可扩展的代码设计。 基本概念 多态:父类引用可以指向子类对象。这使得你可以用统一的接口处理不同的对象…...
分享一个基于Spring Boot的面向社区的智能化健康管理系统的设计与实现(源码、调试、LW、开题、PPT)
💕💕作者:计算机源码社 💕💕个人简介:本人 八年开发经验,擅长Java、Python、PHP、.NET、Node.js、Android、微信小程序、爬虫、大数据、机器学习等,大家有这一块的问题可以一起交流&…...
【扒代码】reduction参数是什么
model DensityMapRegressor(in_channels256, reduction8)reduction 参数在 DensityMapRegressor 类中用于决定模型在上采样过程中的层级配置。具体来说,它决定了上采样过程中使用多少个 UpsamplingLayer,从而影响输出的分辨率。 reduction 参数的作用 …...
Python,Spire.Doc模块,处理word、docx文件,极致丝滑
Python处理word文件,一般都是推荐的Python-docx,但是只写出一个,一句话的文件,也没有什么样式,就是36K。 再打开word在另存一下,就可以到7-8k,我想一定是python-docx的问题,但一直没…...
redis的安装与命令
一、redis与memcache总体对比 1.性能 Redis:只使用单核,平均每一个核上Redis在存储小数据时比Memcached性能更高。 Memcached:可以使用多核,而在100k以上的数据中,Memcached性能要高于Redis。 2.内存使用效率 Mem…...
【C++】特殊类设计类型转换
目录 💡前言一,特殊类设计1. 请设计一个类,不能被拷贝2. 请设计一个类,只能在堆上创建对象3. 请设计一个类,只能在栈上创建对象4. 请设计一个类,不能被继承5. 请设计一个类,只能创建一个对象(单…...
为git 命令行 设置代理环境变量
http://t.csdnimg.cn/cAxkg 国内需要修改pinoko根目录下gitconfig文件,添加 [http]proxy http://127.0.0.1:1080 [https]proxy https://127.0.0.1:1080或者通过命令行配置: git config --global http.proxy http://127.0.0.1:1080 git config --glo…...
自定义linux某些常见配置
1.当前路径 echo "PS1\u\h:\w\$ " >> /etc/profile source /etc/profile 2.ssh使能 1.开启openssh 2.权限赋予chown root.root /var/empty/ 3.开发板作为server echo "PermitRootLogin yes" >> /etc/ssh/sshd_config 3开机自启动脚本 1.init…...
告别手动操作!KeyMouseGo实现自动化工作流
前言 在这个快节奏的时代,我们每天都在与电脑打交道,重复着那些繁琐而单调的操作;你是否曾想过,能让电脑自己完成这些任务,而你则悠闲地喝着咖啡,享受着生活?今天,就让我们一起揭开一…...
大型语言模型微调 新进展-4篇 论文
1. Brevity is the soul of wit: Pruning long files for code generation 发布时间:2024-06-29链接:https://arxiv.org/abs/2407.00434机构:伦敦大学学院 (UCL) 本研究针对大型语言模型的代码生成任务中的数据清理问题进行了探索。研究发现…...
专业课140+杭电杭州电子科技大学843信号与系统考研经验电子信息与通信工程真题,大纲,参考书。
顺利上岸杭电,由于专业课考的不错140,群里不少同学希望分享一点经验,回头看看这一年考研复习,确实有得有失,总结一下自己的专业课复习经验,希望对大家有帮助,基础课考的没有专业好,而…...
php 中 (0 == ‘abc‘) 为真
https://andi.cn/page/621653.html...
MacOS Anaconda 安装教程及虚拟环境创建
一、下载 Anaconda 1、Anaconda 官网 2、清华大学开源软件镜像站 点 Date 按时间排序,根据自己 Mac 芯片类型下载对应最新版本的。 Intel 芯片的下载 x86_64 版本的Apple m1 芯片的下载 arm64 版本的 二、安装 Anaconda 将安装包下载到本地后,双击安…...
Mac快速配置ADB环境变量
ADB是进行 Androd 开发时很常用的调试工具,Android SDK 中就包含了该工具,所以如果安装了SDK那只需要在环境变量中配置 Android SDK 的路径即可,本文的环境配置也基于这种场景。 如果需要独立下载 ADB 工具,请参考下面网址&#x…...
学不会游戏逆向,是你没有把握核心
学不会游戏逆向,是你没有把握核心...
ESP32平台ST7703 RGB TFT驱动组件(PlatformIO兼容)
1. 项目概述htcw_esp_lcd_st7703是一个面向 PlatformIO(PIO)生态的 ESP-IDF 兼容 LCD 驱动组件,其核心目标是为基于 ESP32 系列 SoC(尤其是 ESP32-S2/S3/C3/C6)的嵌入式系统提供对 ST7703 RGB TFT 显示控制器的完整、可…...
MMC整流器平均值模型simulink仿真,19电平,采用交流电流内环,直流电压外环控制,双二...
MMC整流器平均值模型simulink仿真,19电平,采用交流电流内环,直流电压外环控制,双二阶广义积分器锁相环,PI解耦环流抑制器,调制方式为最近电平逼近调制,完美运行。 波形一二为直流侧电压电流&…...
SecGPT-14B知识库增强:让OpenClaw支持最新CVE漏洞库
SecGPT-14B知识库增强:让OpenClaw支持最新CVE漏洞库 1. 为什么需要给OpenClaw注入CVE知识库 去年处理Log4j2漏洞时,我遇到了一个尴尬场景:当我让OpenClaw帮我检查服务器是否存在CVE-2021-44228漏洞时,它给出的回答是"未找到…...
Linux进程(下)
上一篇文章介绍了进程的概念和进程的状态,但进程的知识还有很多,本文继续进行讲解。进程的管理指令之前提到过许多对进程进行管理的指令,但没有进行讲解,在这里统一聊聊。核心指令有四个 ps,top,kill&#…...
Switch破解新选择:大气层系统稳定版完整安装与优化指南
Switch破解新选择:大气层系统稳定版完整安装与优化指南 【免费下载链接】Atmosphere-stable 大气层整合包系统稳定版 项目地址: https://gitcode.com/gh_mirrors/at/Atmosphere-stable 想要让你的Switch焕发新生,体验自制软件和游戏优化的无限可能…...
ROS Noetic下,用DWA和TEB调教你的机器人:move_base局部规划器参数实战避坑指南
ROS Noetic下DWA与TEB局部规划器参数调优实战指南 1. 理解局部规划器的核心作用 在ROS导航堆栈中,局部规划器扮演着机器人运动控制的"末梢神经"角色。当全局规划器生成了一条从起点到终点的理想路径后,局部规划器负责根据实时环境信息…...
【26大英赛】全国大学生英语竞赛高频核心词汇表pdf电子版(考前必背单词)
2026年全国大学生英语竞赛进入最后冲刺阶段,考试日期定于4月12日。距离考试仅剩6天时间,备考工作刻不容缓。 为助力考生高效复习,现推出最新版竞赛核心词汇手册。该资料以PDF电子版形式提供,支持自由下载和打印使用,方…...
零基础玩转DeepSeek-R1推理模型:Ollama一键部署Llama-8B教程
零基础玩转DeepSeek-R1推理模型:Ollama一键部署Llama-8B教程 1. 引言:为什么选择DeepSeek-R1-Distill-Llama-8B 你是否想体验强大的文本生成能力,却被复杂的模型部署流程劝退?DeepSeek-R1-Distill-Llama-8B是一个经过优化的8B参…...
[安卓逆向]问题解决:Xposed-Disable-FLAG_SECURE的截图限制解除与实战部署
[安卓逆向]问题解决:Xposed-Disable-FLAG_SECURE的截图限制解除与实战部署 【免费下载链接】Xposed-Disable-FLAG_SECURE Xposed Module to Disable FLAG_SECURE, enabling screenshots, screen sharing and recording in apps that normally wouldnt allow it. 项…...
