【python】 油管外挂字幕下载位srt歌词字幕文本文件

这篇具有很好参考价值的文章主要介绍了【python】 油管外挂字幕下载位srt歌词字幕文本文件。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

【python】 油管外挂字幕下载位srt文本文件

案例截图

【python】 油管外挂字幕下载位srt歌词字幕文本文件,Python,爬虫学习笔记,python,开发语言

案例代码

# python程序,可以下youtube视频的字幕文件。输入一个视频的url,就会下载它的字幕文件到一个文件夹里。
# Author WeChat:****请私信,
# Date:2023-8-2,
# Email:ack1024#hotmail.com
# 本软件遵循 Apache License 2.0协议

# 导入需要的模块
import json
import math
import time

import requests
import re
import os
import xml.etree.ElementTree as ElementTree
from html import unescape

# 梯子
proxies = {
    "http": "http://127.0.0.1:10809",
    "https": "http://127.0.0.1:10809",
}
# 请求头
headers = {
    'user-agent': 'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.66 Safari/537.36'
}


# 定义一个函数,根据视频的url获取字幕的url
def get_subtitle_url(video_url):

    # 发送请求,获取视频页面的源码
    response = requests.get(video_url, proxies=proxies, headers=headers)

    html = response.text

    # 用正则表达式匹配字幕的url
    match = re.search(pattern, html)
    if match:
        # 如果找到了字幕的url,返回它
        subtitle_url = match.group(1)
        return subtitle_url
    else:
        # 如果没有找到字幕的url,返回None
        return None

# 定义一个函数,根据字幕的url下载字幕文件
def download_subtitle(subtitle_url, video_id):

    # 发送请求,获取字幕的内容
    response = requests.get(subtitle_url, proxies=proxies, headers=headers)
    content = response.text

    # 用正则表达式去掉不需要的标签

    content = xml_caption_to_srt(content)

    # 创建一个文件夹,用于存放字幕文件
    folder = 'subtitles'
    if not os.path.exists(folder):
        os.mkdir(folder)

    filename = video_id + '.srt'

    filepath = os.path.join(folder, filename)

    with open(filepath, 'w', encoding='utf-8') as f:
        f.write(content)

    print('已下载字幕文件:' + filepath)

# 根据视频的url下载视频的字幕文件
def download_video_subtitle(video_url):

    video_id = video_url.split('=')[-1]
    print('当前视频id:',video_id)

    # 调用函数,获取字幕的url
    subtitle_url = get_subtitle_url(video_url)

    if not subtitle_url:
        # 如果没有字幕的url,打印提示信息
        print('该视频没有字幕')
        exit(0)

    subtitle_url = '[' + subtitle_url + ']'

    subtitle_urlDics = json.loads(subtitle_url)
    strp = ['序号:' + str(i) + ' ' + subtitle_urlDics[i]['name']['simpleText'] for i in range(len(subtitle_urlDics))]
    for i in strp:
        print(i)

    choiceIndex = int(input('请输入要下载的语言(最前面数字序号):'))

    subtitle_url = subtitle_urlDics[choiceIndex]['baseUrl']

    if subtitle_url:
        # 如果有字幕的url,调用函数,下载字幕文件
        download_subtitle(subtitle_url, video_id)
    else:
        # 如果没有字幕的url,打印提示信息
        print('该视频没有字幕')

def xml_caption_to_srt(xml_captions: str) -> str:
    segments = []
    root = ElementTree.fromstring(xml_captions)
    for i, child in enumerate(list(root)):
        caption = unescape(text.replace("\n", " ").replace("  ", " "), )
        try:
            duration = float(child.attrib["dur"])
        except KeyError:
            duration = 0.0
        start = float(child.attrib["start"])
        end = start + duration
        sequence_number = i + 1  # convert from 0-indexed to 1.
        line = "{seq}\n{start} --> {end}\n{text}\n".format(
            seq=sequence_number,
            start=float_to_srt_time_format(start),
            end=float_to_srt_time_format(end),
            text=caption,
        )
        segments.append(line)
    return "\n".join(segments).strip()

def float_to_srt_time_format(d: float) -> str:
    time_fmt = time.strftime("%H:%M:%S,", time.gmtime(whole))
    ms = f"{fraction:.3f}".replace("0.", "")
    return time_fmt + ms

# 输入一个视频的url,下载它的字幕文件
if __name__ == '__main__':

    while True:
        video_url = input('请输入一个youtube视频的网址(例子:https://www.youtube.com/watch?v=wjTn)先复制再回来右击即可:')
        # video_url = "https://www.youtube.com/watch?v=wjTn_Ek"
        download_video_subtitle(video_url)

        if input('请输入0退出:') == 0:
            exit(0)



以上为部分代码哈! 隐藏的都是正则部分,会Python的都能自己补全哈!超简单的文章来源地址https://www.toymoban.com/news/detail-647450.html

到了这里,关于【python】 油管外挂字幕下载位srt歌词字幕文本文件的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 20230505使用amazon来批量翻译SRT格式的日语字幕为简体中文

    20230505使用amazon来批量翻译SRT格式的日语字幕为简体中文 2023/5/5 19:03 百度搜索:使用 amazon 批量翻译 请严重注意:可能会扣费的!       https://aws.amazon.com/cn/blogs/china/translating-documents-with-amazon-translate-aws-lambda-and-the-new-batch-translate-api-commented-by-bobzhang/ 亚马逊AWS官方博客 使用

    2024年02月02日
    浏览(22)
  • 使用剪映提取视频中的字幕并导出(txt或srt格式)

    需要使用 剪映电脑版 ,打开之后 第一步:选择“音频”—“音频提取”—“导入” 在弹出的界面中选择需要的导入的视频,或者直接将视频拖入到“导入”框中 第二步:将导入的视频拖到下方的音频轨道 第三步:识别字幕 依次选择“文本”—“智能字幕”—“开始识别”

    2024年02月06日
    浏览(57)
  • 「字幕之美:解析硬、软、外挂,探寻视频世界的无声艺术」

    硬字幕、软字幕和外挂字幕是视频内容中常见的三种字幕形式,它们在提供文字信息的同时,为观众提供了更丰富的观看体验。下面将对这三种字幕进行概述: 硬字幕(Hard Subtitles) 硬字幕是直接嵌入到视频图像中的字幕,因此无法关闭或更改。它们在视频渲染时就被固定在

    2024年04月11日
    浏览(19)
  • 【C#】Whisper 离线语音识别(微软晓晓语音合成的音频)(带时间戳、srt字幕)...

    语音合成语音识别 用微软语音合成功能生成xiaoxiao的语音。 用Whisper离线识别合成的语音输出srt字幕。 一、语音合成 参考这个网址:https://www.bilibili.com/read/cv19064633 合成的音频:晓晓朗读-温柔 二、Whisper 语音识别 下载模型后放入程序目录下: 请注意,主要示例目前仅使用

    2024年02月06日
    浏览(24)
  • 【whisper】在python中调用whisper提取字幕或翻译字幕到文本

    最近在做视频处理相关的业务。其中有需要将视频提取字幕的需求,在我们实现过程中分为两步:先将音频分离,然后就用到了whisper来进行语音识别或者翻译。本文将详细介绍一下whisper的基本使用以及在python中调用whisper的两种方式。 whisper 是一款用于语音识别的开源库,支

    2024年02月05日
    浏览(17)
  • 【whisper】在python中调用whisper提取字幕或翻译字幕到文本_python whisper

    whisper 是一款用于语音识别的开源库,支持多种语言,其中包括中文。在本篇文章中,我们将介绍如何安装 whisper 以及如何使用它来识别中文字幕。 首先,我们需要安装 whisper。根据操作系统,可以按照以下步骤进行安装: 对于 Windows 用户,可以从 whisper 的 GitHub 页面 (https

    2024年02月20日
    浏览(22)
  • 下载 bilibili 视频字幕文件

    打开一个 bilibili 网页,鼠标右键,然后点击 “检查” 选项切换到 “Network”,然后重新打开此网页 在搜索栏中输入 json 进行过滤,然后可以看到一个 后缀为 .json 的文件,即为该视频对应的字幕文件。 首先将上述字幕文件下载到本地,然后执行如下代码,提取字幕文件中的

    2024年02月14日
    浏览(56)
  • 油管视频怎么下载到本地,油管视频下载到本地的方法

    YouTube作为全球最大的视频分享平台之一,吸引了大量用户观看和分享各种内容。然而,有时候我们希望将特定的YouTube视频下载到本地以便离线观看。本文将介绍几种简便的方法,帮助你将YouTube视频轻松下载到本地,以便在没有网络连接的情况下畅享。 1、使用在线视频下载

    2024年02月08日
    浏览(22)
  • 旧手机改电脑外挂,文本补充

    时间:2022/11/18 作者:二本双非小白 该文章主要针对小白 事情开始: 2022-06-02  某位华为大佬发布视频-----------旧手机改电脑外挂 视频链接:旧手机改电脑外挂-效率或将“提升300%?”_哔哩哔哩_bilibili 随着时间推移,逐渐有人发出复刻成功的信息,本着虽无旧手机但学新技术

    2024年02月13日
    浏览(25)
  • 深度学习实战29-AIGC项目:利用GPT-2(CPU环境)进行文本续写与生成歌词任务

    大家好,我是微学AI,今天给大家介绍一下深度学习实战29-AIGC项目:利用GPT-2(CPU环境)进行文本续写与生成歌词任务。在大家没有GPU算力的情况,大模型可能玩不动,推理速度慢,那么我们怎么才能跑去生成式的模型呢,我们可以试一下GPT-2完成一些简单的任务,让大家在CPU环

    2024年02月08日
    浏览(22)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包