读取哔哩哔哩网站下载的json字幕,并将其内容转换成srt字幕保存
Matlab实现json字幕转换为srt字幕(哔哩哔哩网站下载的json字幕)
在B站下载了一个英文视频,点开来看,发现没有字幕,又在B站上下了字幕,是json格式的,但我的PotPlayer不支持json格式的字幕。
上网搜索了一下,只有Python代码:
Python实现json字幕转换为srt字幕
可是我只会 Matlab ,呜呜呜T_T
于是我就摸索着写了一个Matlab版本的json字幕转换为srt字幕的脚本。详情如下:
% json2srt 实现json字幕转换为srt字幕
% 读取哔哩哔哩网站下载的json字幕,并将其内容转换成srt字幕保存到输入文件所在的文件夹
%
% 输入参数:
% 1、B站的json字幕文件(拓展名为.json)
%
% 输出参数:
% 1、srt字幕文件
%
% See also fscanf, jsondecode, fprintf.
% Author(s): User
% Copyright 1979-2021 xxxxth Unit,The People's Liberation Army of China.% 指定输入输出文件
[file,path] = uigetfile('*.json');% 选取json字幕文件
if isequal(file,0)disp('文件选取操作被取消。');
elsefilename = fullfile(path,file);% 文件名(B站的json字幕文件)[filepath, name, ~] = fileparts(filename);% 获取文件名的组成部分fileout = fullfile( filepath, [name, '.srt']);% 输出srt字幕的路径% 读取文件fid = fopen(filename,'r','n','UTF-8');% 打开文件时,指定访问文件的编码类型text = fscanf(fid, '%s');% 读取文件fclose(fid);% 关闭文件value = jsondecode(text);% 解码 JSON 格式的文本if isfield(value, 'body') % 判断结构体是否包含特定字段srtln = length(value.body);% 统计字幕长度str = repmat({''}, 4*srtln, 1);% 预声明字幕文本for ind = 1:srtln % 逐行转换字幕str(4*ind-3) = cellstr(num2str(ind, '%d'));% 序号str(4*ind-2) = strcat( ...% 时标datestr(seconds(value.body(ind).from), 'HH:MM:SS,FFF'), ...{' --> '}, ...datestr(seconds(value.body(ind).to ), 'HH:MM:SS,FFF') );str(4*ind-1) = cellstr(value.body(ind).content);% 台词内容endfileID = fopen(fileout,'w','n','UTF-8');% 文件名、读写类型、写入顺序、字符编码fprintf(fileID, '%s\n', str{:});% 写入字幕文件fclose(fileID);% 关闭文件disp('-=[字幕转换完成!]=-');disp(['srt字幕路径:', fileout]);elsewarndlg('输入文件可能不是B站的json字幕文件。','输入文件有误!');endend
读取哔哩哔哩网站下载的json字幕,并将其内容转换成srt字幕保存相关推荐
- python 读取文本并转换为字典_遇见的python问题--如何将文件里的内容转换成字典类型...
文件内容如下: liuyang,123456 liyun,123456 zhangsna,12345lkj #方法一:从文件中读取数据,一行读取一个列表,读取出一个嵌套的列表,再转换成字典 with ...
- 用工具批量下载哔哩哔哩视频并且将内容转换成pdf
网上的b站视频下载工具其实已经是一箩筐了,但是大部分有个问题,就是不支持批量下载. 不废话,直接说搜索的结果,目前发现的两个可用的: b站下载姬:https://github.com/FlySelfL ...
- java读取xslx内容,内容转换成docx和pdf,包括图片
WPS创建或打开的文件有可能解析有误 student.xslx文件如下: student.docx文件内容如下: 程序运行结果如下: 源码示例: pom.xml <dependencies> ...
- 完善网易云音乐。读取静态资源。实现用户登录以后,登录的内容转换成欢迎XXXX登录
一.读取静态资源 1.在node项目的src目录,建立www目录,放置music项目文件 2.在src目录,建立index.js const http = require('http') const ...
- 将html指定内容转换成word文档并下载
文章目录 前言 一.前端js文件引入路径 二.使用步骤 1.生成表格 2.往表格中添加数据 3.生成word文档并下载到本地函数 4.需要的js文档 总结 前言 写项目的时候需要将数据整理成表格的形式 ...
- 哔哩哔哩弹幕api及一些解释
有两个弹幕api接口,分别是移动端与电脑端 https://comment.bilibili.com/ + cid + .xml https://api.bilibili.com/x/v1/dm/li ...
- android读取xml 字符串,Android 读取本地Xml文件,并转换成String
问题 不是解析本地 xml 文件, 而是要将 xml 文件中的所有内容(包含格式,标签等),直接转换成 String. 与前端H5页面交互时, iOS 在请求远程 xml 文件耗时太长(有时需要4~5 ...
- JavaScript实现React实现网页转换成图片截屏下载
最近有项目的需求需要把网站内HTML内容转换成图片保存下载,找了一圈发现一个不错的插件HTML-to-image,npm 包地址:Html-to-image NPM | npm.io,该插件的原理是: ...
- 好用的ppt转换成pdf转换器下载软件免费推荐
好用的ppt转换成pdf转换器下载软件免费推荐 好用的PPT转换成PDF转换器下载软件哪款转换的效果比较好?关于这个问题,相信很多用户都想知道.毕竟,我们办公中经常要面对那么多的文件格式的转换,如果选 ...
最新文章
- java注解返回不同消息,Spring MVC Controller中的一个读入和返回都是JSON的方法如何获取javax.validation注解的异常信息...
- 常见算法在实际项目中的应用
- 谈IE的浏览器模式和文档模式
- MYSQL和ORACLE时区设置比较
- 指标统计:基于流计算 Oceanus(Flink) 实现实时 UVPV 统计
- 康美药业财务造假给股民造成的损失,股民该怎么办?
- ML.NET Cookbook:(12)我想看看模型的系数
- String使用注意二
- Linux 修改密码root(账号)
- 【SQL Server中SMO的简单使用】 (装载)
- [20151112]ORA-01450?3215?.txt
- 1.790E308java_java基础知识总结
- Fatal error: Class 'ZipArchive' not found的解决办法
- Android中关于键盘的处理
- 【LeetCode】【数组】题号:*41,最小正正数
- java自动填充_java-自动使用随机数据填充原始属性?
- Rog14 Win10系统迁移新的三星固态硬盘
- 网易mysql微专业_网易MySQL数据库工程师微专业学习笔记(一)
- 指纹锁的识别与原理及安全性
- android游戏和ios游戏哪个多,Android游戏类App占27.1% 与iOS差异显著