20240212请问如何将B站下载的软字幕转换成为SRT格式?

20240212请问如何将B站下载的软字幕转换成为SRT格式?
2024/2/12 12:47


百度搜索:字幕 json 转 srt
json srt

https://blog.csdn.net/a_wh_white/article/details/120687363?share_token=2640663e-f468-4737-9b55-73c808f5dcf0
https://blog.csdn.net/a_wh_white/article/details/120687363

【python】实现将json字幕转srt,并将繁体中文翻译为简体中文
走着走着就走神了    已于 2022-04-13 12:55:45 修改

代码(json_to_srt)
import json
import math
import os

file = ''  # 这个变量用来保存数据
i = 1
for doc in os.listdir():  # 遍历当前文件夹的所有文件
    if (doc[-4:] == 'json'):  # 若是json文件则进行处理
        name = doc[:-5]  # 提取文件名
        # 将此处文件位置进行修改,加上utf-8是为了避免处理中文时报错
        with open(doc, encoding='utf-8') as f:
            datas = json.load(f)  # 加载文件数据
            f.close()
        for data in datas['body']:
            start = data['from']  # 获取开始时间
            stop = data['to']  # 获取结束时间
            content = data['content']  # 获取字幕内容
            file += '{}\n'.format(i)  # 加入序号
            hour = math.floor(start) // 3600
            minute = (math.floor(start) - hour * 3600) // 60
            sec = math.floor(start) - hour * 3600 - minute * 60
            minisec = int(math.modf(start)[0] * 100)  # 处理开始时间
            file += str(hour).zfill(2) + ':' + str(minute).zfill(2) + ':' + str(sec).zfill(2) + ',' + str(
                minisec).zfill(2)  # 将数字填充0并按照格式写入
            file += ' --> '
            hour = math.floor(stop) // 3600
            minute = (math.floor(stop) - hour * 3600) // 60
            sec = math.floor(stop) - hour * 3600 - minute * 60
            minisec = abs(int(math.modf(stop)[0] * 100 - 1))  # 此处减1是为了防止两个字幕同时出现
            file += str(hour).zfill(2) + ':' + str(minute).zfill(2) + ':' + str(sec).zfill(2) + ',' + str(
                minisec).zfill(2)
            file += '\n' + content + '\n\n'  # 加入字幕文字
            i += 1
        with open('./{}.srt'.format(name), 'w', encoding='utf-8') as f:
            f.write(file)  # 将数据写入文件
            f.close()


问题一:
百度:but no encoding declared; see https://python.org/dev/peps/pep-0263/ for deta
SyntaxError: Non-UTF-8 code starting with '\xb1' in file L:\json2srt\json2sr

https://blog.csdn.net/qq_39624528/article/details/86617197
Python常见错误

https://blog.csdn.net/weixin_43865196/article/details/104048879
python错误:but no encoding declared; see http://python.org/dev/peps/pep-0263/ for details

操作系统:windows
python版本:3.6版本
解决: 在文章的第一行 加入 :
# coding=gbk

操作系统:windows
python版本:2.7版本
错误原因 : 是 xxx.py文件里有中文字符
改正方法 :文件的第一行 加上
#  -*-coding:utf8 -*-


问题二:
N:\DOCX\20240212请问如何将B站下载的软字幕转换成为SRT格式?\json>python json2srt.py
Traceback (most recent call last):
  File "N:\DOCX\20240212请问如何将B站下载的软字幕转换成为SRT格式?\json\json2srt.py", line 18, in <module>
    start = data['from']  # 获取开始时间
TypeError: string indices must be integers

百度:TypeError: string indices must be integers
https://blog.csdn.net/qq_36746815/article/details/127098919
python错误:TypeError: string indices must be integers


https://blog.csdn.net/hihell/article/details/123370933
Python 错误:TypeError String Indices Must be Integers 【已解决】


https://www.cnblogs.com/jiaoliuxuexi/p/12603090.html
TypeError: string indices must be integers


问题三:
rainlanuit  2022.07.18
如果用来同时处理多个json文件的话,把第5、6行的两个全局变量放到外层for循环里。不然除了第一个json文件正常,其余全是叠加的。


最终结果:
json2srt.py

# coding=gbk


import json
import math
import os
 
for doc in os.listdir():    # 遍历当前文件夹的所有文件
    file = ''  # 这个变量用来保存数据
    i = 1
    if (doc[-4:] == 'json'):    # 若是json文件则进行处理
        name = doc[:-5]     # 提取文件名
        # 将此处文件位置进行修改,加上utf-8是为了避免处理中文时报错
        with open(doc, encoding='utf-8') as f:
            datas = json.load(f)  # 加载文件数据
            f.close()
        #for data in datas:
        for data in datas['body']:
            start = data['from']  # 获取开始时间
            stop = data['to']  # 获取结束时间
            content = data['content']  # 获取字幕内容
            file += '{}\n'.format(i)  # 加入序号
            hour = math.floor(start) // 3600
            minute = (math.floor(start) - hour * 3600) // 60
            sec = math.floor(start) - hour * 3600 - minute * 60
            minisec = int(math.modf(start)[0] * 100)  # 处理开始时间
            file += str(hour).zfill(2) + ':' + str(minute).zfill(2) + ':' + str(sec).zfill(2) + ',' + str(minisec).zfill(2)  # 将数字填充0并按照格式写入
            file += ' --> '
            hour = math.floor(stop) // 3600
            minute = (math.floor(stop) - hour * 3600) // 60
            sec = math.floor(stop) - hour * 3600 - minute * 60
            minisec = abs(int(math.modf(stop)[0] * 100 - 1))  # 此处减1是为了防止两个字幕同时出现
            file += str(hour).zfill(2) + ':' + str(minute).zfill(2) + ':' + str(sec).zfill(2) + ',' + str(minisec).zfill(2)
            file += '\n' + content + '\n\n'  # 加入字幕文字
            i += 1
        with open('./{}.srt'.format(name), 'w', encoding='utf-8') as f:
            f.write(file)  # 将数据写入文件
            f.close()


参考资料:
https://blog.csdn.net/mondaiji/article/details/104294430?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522163385446816780357213901%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fall.%2522%257D&request_id=163385446816780357213901&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~first_rank_ecpm_v1~rank_v31_ecpm-1-104294430.first_rank_v2_pc_rank_v29&utm_term=python%E4%B8%ADjson%E8%BD%ACsrt&spm=1018.2226.3001.4187
https://blog.csdn.net/mondaiji/article/details/104294430
Python实现json字幕转换为srt字幕


百度:b站自动生成字幕怎么下载
https://www.bilibili.com/read/cv19103155/?jump_opus=1
2022年10月15日 08:45-[2021]B站CC字幕下载的两种姿势(超超超超超简单)
2022年10月15日 08:45 6537浏览 · 41喜欢 · 15评论
视频地址: [2021]B站CC字幕下载的两种姿势(超超超超超简单)
重庆梁平扩展现实大学
粉丝:182文章:118

Microsoft Windows [版本 10.0.19045.2311]
(c) Microsoft Corporation。保留所有权利。

C:\Users\Administrator>cd N:\DOCX\20240212请问如何将B站下载的软字幕转换成为SRT格式?\json

C:\Users\Administrator>n:

N:\DOCX\20240212请问如何将B站下载的软字幕转换成为SRT格式?\json>dir *.py
 驱动器 N 中的卷是 IMG12
 卷的序列号是 C06C-70D2

 N:\DOCX\20240212请问如何将B站下载的软字幕转换成为SRT格式?\json 的目录

2024/02/12  13:07             1,736 json2srt.py
               1 个文件          1,736 字节
               0 个目录 479,031,091,200 可用字节

N:\DOCX\20240212请问如何将B站下载的软字幕转换成为SRT格式?\json>python json2srt.py
SyntaxError: Non-UTF-8 code starting with '\xd5' in file N:\DOCX\20240212请问如何将B站下载的软字幕转换成为SRT格式?\json\json2srt.py on line 5, but no encoding declared; see https://python.org/dev/peps/pep-0263/ for details

N:\DOCX\20240212请问如何将B站下载的软字幕转换成为SRT格式?\json>
N:\DOCX\20240212请问如何将B站下载的软字幕转换成为SRT格式?\json>python json2srt.py

N:\DOCX\20240212请问如何将B站下载的软字幕转换成为SRT格式?\json>
N:\DOCX\20240212请问如何将B站下载的软字幕转换成为SRT格式?\json>python json2srt.py
SyntaxError: Non-UTF-8 code starting with '\xb1' in file N:\DOCX\20240212请问如何将B站下载的软字幕转换成为SRT格式?\json\json2srt.py on line 5, but no encoding declared; see https://python.org/dev/peps/pep-0263/ for details

N:\DOCX\20240212请问如何将B站下载的软字幕转换成为SRT格式?\json>python json2srt.py
Traceback (most recent call last):
  File "N:\DOCX\20240212请问如何将B站下载的软字幕转换成为SRT格式?\json\json2srt.py", line 18, in <module>
    start = data['from']  # 获取开始时间
TypeError: string indices must be integers

N:\DOCX\20240212请问如何将B站下载的软字幕转换成为SRT格式?\json>python json2srt.py

N:\DOCX\20240212请问如何将B站下载的软字幕转换成为SRT格式?\json>

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/384994.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Pandas从基础统计到高级分析的完整指南【第77篇—Pandas高级分析】

Pandas从基础统计到高级分析的完整指南 在数据科学和分析领域中&#xff0c;Pandas是Python中最受欢迎的数据处理库之一。它提供了丰富而强大的功能&#xff0c;其中包括各种统计方法&#xff0c;用于更好地理解和分析数据。本文将介绍Pandas中常用的统计方法&#xff0c;通过…

Github 2024-02-07 开源项目日报 Top9

根据Github Trendings的统计&#xff0c;今日(2024-02-07统计)共有9个项目上榜。根据开发语言中项目的数量&#xff0c;汇总情况如下&#xff1a; 开发语言项目数量Rust项目2TypeScript项目2Python项目2Ruby项目1HTML项目1NASL项目1Go项目1C项目1Svelte项目1C项目1 React Nat…

【Java EE初阶十二】网络编程TCP/IP协议(二)

1. 关于TCP 1.1 TCP 的socket api tcp的socket api和U大片的socket api差异很大&#xff0c;但是和前面所讲的文件操作很密切的联系 下面主要讲解两个关键的类&#xff1a; 1、ServerSocket&#xff1a;给服务器使用的类&#xff0c;使用这个类来绑定端口号 2、Socket&#xf…

【后端高频面试题--SpringBoot篇】

&#x1f680; 作者 &#xff1a;“码上有前” &#x1f680; 文章简介 &#xff1a;后端高频面试题 &#x1f680; 欢迎小伙伴们 点赞&#x1f44d;、收藏⭐、留言&#x1f4ac; 这里写目录标题 1.什么是SpringBoot&#xff1f;它的主要特点是什么&#xff1f;2.列举一些Spri…

Stable Diffusion教程——stable diffusion基础原理详解与安装秋叶整合包进行出图测试

前言 在2022年&#xff0c;人工智能创作内容&#xff08;AIGC&#xff09;成为了AI领域的热门话题之一。在ChatGPT问世之前&#xff0c;AI绘画以其独特的创意和便捷的创作工具迅速走红&#xff0c;引起了广泛关注。随着一系列以Stable Diffusion、Midjourney、NovelAI等为代表…

【开源】SpringBoot框架开发农家乐订餐系统

目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块2.1 用户2.2 管理员 三、系统展示四、核心代码4.1 查询菜品类型4.2 查询菜品4.3 加购菜品4.4 新增菜品收藏4.5 新增菜品留言 五、免责说明 一、摘要 1.1 项目介绍 基于JAVAVueSpringBootMySQL的农家乐订餐系统&#xff0c…

Vulnhub靶机:hackable3

一、介绍 运行环境&#xff1a;Virtualbox 攻击机&#xff1a;kali&#xff08;10.0.2.15&#xff09; 靶机&#xff1a;hackable3&#xff08;10.0.2.53&#xff09; 目标&#xff1a;获取靶机root权限和flag 靶机下载地址&#xff1a;https://www.vulnhub.com/entry/hac…

HarmonyOS 横屏调试与真机横屏运行

我们有些程序 需要横屏才能执行出效果 我们在预览器上 点击如下图指向出 就进入一个横屏调试了 但 我们真机运行 依旧是竖着的 我们如下图 找到 module.json5 在 abilities 下面 第一个对象 最下面 加上 "orientation": "landscape"然后 我们再真机运…

matlab入门,在线编辑,无需安装matab

matlab相关教程做的很完善&#xff0c;除了B站看看教程&#xff0c;官方教程我觉得更加高效。跟着教程一步一步编辑&#xff0c;非常方便。 阅读 MATLAB 官方教程&#xff1a; MATLAB 官方教程提供了从基础到高级的教学内容&#xff0c;内容包括 MATLAB 的基本语法、数据处理…

[ai笔记5] 个人AI资讯助手实战

欢迎来到文思源想的ai空间&#xff0c;这是技术老兵重学ai以及成长思考的第5篇分享&#xff0c;也是把ai场景化应用的第一篇实操内容&#xff01; 既然要充分学习和了解ai&#xff0c;自然少不了要时常看看ai相关资讯&#xff0c;所以今天特地用字节的“扣子”做了一个ai的资讯…

第2讲投票系统后端架构搭建

创建项目时&#xff0c;随机选择一个&#xff0c;后面会生成配置properties文件 生成文件 maven-3.3.3 设置阿里云镜像 <?xml version"1.0" encoding"UTF-8"?><!-- Licensed to the Apache Software Foundation (ASF) under one or more cont…

一个三极管引脚识别的小技巧,再也不用对照手册啦

三极管是一个非常常用的器件,时不时的就需要用到他们,有些时候当我们拿到一颗三极管时 ,对于常用的友来说,三极管的引脚可能早已烂熟于心,而对于不常用或者初学者来说,三极管的引脚可以说是今天记下明天忘,后天搞混大后天重看手册(玩笑话),但是这种情况可以说每个人都…

springboot185基于vue.js的客户关系管理系统(crm)的设计与实现

简介 【毕设源码推荐 javaweb 项目】基于springbootvue 的 适用于计算机类毕业设计&#xff0c;课程设计参考与学习用途。仅供学习参考&#xff0c; 不得用于商业或者非法用途&#xff0c;否则&#xff0c;一切后果请用户自负。 看运行截图看 第五章 第四章 获取资料方式 **项…

Linux:开源世界的王者

在科技世界中&#xff0c;Linux犹如一位低调的王者&#xff0c;统治着开源世界的半壁江山。对于许多技术爱好者、系统管理员和开发者来说&#xff0c;Linux不仅仅是一个操作系统&#xff0c;更是一种信仰、一种哲学。 一、开源的魅力 Linux的最大魅力在于其开源性质。与封闭的…

【SpringBoot】Validator组件+自定义约束注解实现手机号码校验和密码格式限制

&#x1f3e1;浩泽学编程&#xff1a;个人主页 &#x1f525; 推荐专栏&#xff1a;《深入浅出SpringBoot》《java对AI的调用开发》 《RabbitMQ》《Spring》《SpringMVC》 &#x1f6f8;学无止境&#xff0c;不骄不躁&#xff0c;知行合一 文章目录 前言一、Cons…

Arcgis使用过程中常见问题解决方法

Arcgis无法连接数据库/数据库连接或创建失败解决方法 最近在使用arcgis过程中出现无法连接数据库或者是无法创建数据库。连接到数据库失败&#xff1b;无法创建新的数据库&#xff0c;权限被拒绝&#xff08;如下图&#xff09;。 出现这个原因是你所用的电脑系统文件dao360.…

在spring中操作Redis

目录 创建项目 ​编辑 配置Redis 创建类 StringRedisTemplate set / get list set Hash zset 新年快乐&#xff01;&#xff01;&#xff01;&#xff01; 创建项目 选中maven项目&#xff0c;然后选择java8&#xff0c;输入名称之后&#xff0c;点击next。 随后选择…

蓝桥杯2023真题(2)

1.硬币兑换 #include <iostream> using namespace std; int main() {int a[5000] {0}, ans 0;//coin1for(int i 1; i < 2023; i){//coin2for(int j i 1; j < 2023; j){a[i j] i;ans max(ans, a[i j]);}}cout<<ans;return 0; }2.更小的数 //暴力枚举…

【python】print输出的格式化

在Python中&#xff0c;有几种方式来格式化prin函数的输出。以下是一些常见的方法&#xff1a; 1. 使用百分号 % 运算符&#xff08;传统方法&#xff09;: 使用 % 操作符来进行格式化是一种较老的方法&#xff0c;但它仍然有效。 name "Alice"age 25print("…

Python爬虫之Ajax数据爬取基本原理

前言 有时候我们在用 requests 抓取页面的时候&#xff0c;得到的结果可能和在浏览器中看到的不一样&#xff1a;在浏览器中可以看到正常显示的页面数据&#xff0c;但是使用 requests 得到的结果并没有。这是因为 requests 获取的都是原始的 HTML 文档&#xff0c;而浏览器中…