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字幕保存相关推荐

  1. python 读取文本并转换为字典_遇见的python问题--如何将文件里的内容转换成字典类型...

    文件内容如下: liuyang,123456 liyun,123456 zhangsna,12345lkj #方法一:从文件中读取数据,一行读取一个列表,读取出一个嵌套的列表,再转换成字典 with ...

  2. 用工具批量下载哔哩哔哩视频并且将内容转换成pdf

    网上的b站视频下载工具其实已经是一箩筐了,但是大部分有个问题,就是不支持批量下载. 不废话,直接说搜索的结果,目前发现的两个可用的: b站下载姬:https://github.com/FlySelfL ...

  3. java读取xslx内容,内容转换成docx和pdf,包括图片

    WPS创建或打开的文件有可能解析有误 student.xslx文件如下: student.docx文件内容如下: 程序运行结果如下: 源码示例: pom.xml <dependencies> ...

  4. 完善网易云音乐。读取静态资源。实现用户登录以后,登录的内容转换成欢迎XXXX登录

    一.读取静态资源 1.在node项目的src目录,建立www目录,放置music项目文件 2.在src目录,建立index.js const http = require('http') const ...

  5. 将html指定内容转换成word文档并下载

    文章目录 前言 一.前端js文件引入路径 二.使用步骤 1.生成表格 2.往表格中添加数据 3.生成word文档并下载到本地函数 4.需要的js文档 总结 前言 写项目的时候需要将数据整理成表格的形式 ...

  6. 哔哩哔哩弹幕api及一些解释

    有两个弹幕api接口,分别是移动端与电脑端 https://comment.bilibili.com/ + cid + .xml https://api.bilibili.com/x/v1/dm/li ...

  7. android读取xml 字符串,Android 读取本地Xml文件,并转换成String

    问题 不是解析本地 xml 文件, 而是要将 xml 文件中的所有内容(包含格式,标签等),直接转换成 String. 与前端H5页面交互时, iOS 在请求远程 xml 文件耗时太长(有时需要4~5 ...

  8. JavaScript实现React实现网页转换成图片截屏下载

    最近有项目的需求需要把网站内HTML内容转换成图片保存下载,找了一圈发现一个不错的插件HTML-to-image,npm 包地址:Html-to-image NPM | npm.io,该插件的原理是: ...

  9. 好用的ppt转换成pdf转换器下载软件免费推荐

    好用的ppt转换成pdf转换器下载软件免费推荐 好用的PPT转换成PDF转换器下载软件哪款转换的效果比较好?关于这个问题,相信很多用户都想知道.毕竟,我们办公中经常要面对那么多的文件格式的转换,如果选 ...

最新文章

  1. java注解返回不同消息,Spring MVC Controller中的一个读入和返回都是JSON的方法如何获取javax.validation注解的异常信息...
  2. 常见算法在实际项目中的应用
  3. 谈IE的浏览器模式和文档模式
  4. MYSQL和ORACLE时区设置比较
  5. 指标统计:基于流计算 Oceanus(Flink) 实现实时 UVPV 统计
  6. 康美药业财务造假给股民造成的损失,股民该怎么办?
  7. ML.NET Cookbook:(12)我想看看模型的系数
  8. String使用注意二
  9. Linux 修改密码root(账号)
  10. 【SQL Server中SMO的简单使用】 (装载)
  11. [20151112]ORA-01450?3215?.txt
  12. 1.790E308java_java基础知识总结
  13. Fatal error: Class 'ZipArchive' not found的解决办法
  14. Android中关于键盘的处理
  15. 【LeetCode】【数组】题号:*41,最小正正数
  16. java自动填充_java-自动使用随机数据填充原始属性?
  17. Rog14 Win10系统迁移新的三星固态硬盘
  18. 网易mysql微专业_网易MySQL数据库工程师微专业学习笔记(一)
  19. 指纹锁的识别与原理及安全性
  20. android游戏和ios游戏哪个多,Android游戏类App占27.1% 与iOS差异显著

热门文章

  1. 动物换位(含有源码)
  2. java源码学习6-System
  3. Symbian S60平台UCWEB6.3 Beta版发布啦
  4. echarts 平滑曲线图详解
  5. 本人32岁,转行做运维经验分享
  6. win10——‘’WLAN‘’没有有效的IP配置
  7. 华康医疗深交所IPO:市值49亿 为湖北今年首家上市企业
  8. 英国的善良教育比我们多了几层?
  9. Java JAXB示例
  10. Cookies 简介以及存在的安全隐患