借用 potplayer 播放器,在本地播放 b 站视频也能看弹幕了

苏生不惑第164 篇原创文章,将本公众号设为星标,第一时间看最新文章。

关于b站之前已经写过了下列文章,有兴趣可以点击阅读:

那些我关注的 b 站 up 主

bilibili(b站)升级到BV号了,还想用av号怎么办?

那些你可能不知道的 bilibili 奇技淫巧

如何轻松下载腾讯/微博/优酷/爱奇艺/b站等全网视频?

如何更优雅地使用 bilibili(b站)

如何找回bilibili(b站)收藏夹里失效的视频?

如何免登陆观看b站大会员番剧

b站视频被删后,即使根据 如何找回bilibili(b站)收藏夹里失效的视频? 这里的方法找回了视频,但曾经的弹幕没有了,为了以防万一可以提前下载视频和弹幕,在本地用potplayer播放器(公众号内回复 播放器 获取软件)播放b站视频就可以看弹幕了,获得和b站一样的观看体验。

potplayer 播放器

之前我一直用的QQ影音播放器,自从发现了potplayer,体验简直惊艳, potplayer内置支持多种解码器,无需额外安装就能播放几乎所有视频格式文件。

一个比较有用的功能是支持直播源,右键打开链接。输入m3u直播源地址。加载直播源后右侧可以看到n多电视台直播源,比如央视6套电影频道,实现了在本地播放器上看电视。

还有实时字幕翻译功能,这个看英语电影的时候比较实用。

再一个就是可以播放视频的时候看弹幕,只需要弹幕文件名和视频文件名相同即可。

下面开始体验下在本地用potplayer播放器播放有弹幕的b站视频。

下载b站视频

关于下载b站视频之前写过文章 如何轻松下载腾讯/微博/优酷/爱奇艺/b站等全网视频? ,推荐使用BiliBili视频下载工具(公众号内回复 b站 获取软件),输入视频地址直接下载 。

不过我还是习惯用命令行来下载。

annie -f 16 https://www.bilibili.com/video/BV1ip4y1D7iY


 Site:      哔哩哔哩 bilibili.com
 Title:     【周杰伦纪录片】第七集:夏日狂想
 Type:      video
 Stream:
     [16]  -------------------
     Quality:         流畅 360P
     Size:            131.72 MiB (138122013 Bytes)
     # download with: annie -f 16 ...


 131.72 MiB / 131.72 MiB [=========================================] 100.00% 139.06 KiB/s 16m9s

视频下载后开始下载弹幕。

下载弹幕

b站提供接口使用av号获取cid ,比如https://api.bilibili.com/x/player/pagelist?aid=968504505 获取到cid=205245882如果觉得这样麻烦可以安装油猴脚本,可以直接显示 视频 av 号、bv 号及弹幕 cid https://greasyfork.org/zh-CN/scripts/403846-bilibili-display-video-av-bv-number-below-the-title-bar

之后根据cid获取弹幕文件,弹幕文件采用 xml 格式存储,接口地址 https://api.bilibili.com/x/v1/dm/list.so?oid=205245882 或者 https://comment.bilibili.com/205245882.xml ,直接保存到本地即可。

然后使用 bilibili ASS 弹幕在线转换网站把xml格式转换为ass格式,上传即可转换  https://tiansh.github.io/us-danmaku/bilibili/

还可以安装 Chrome扩展 哔哩哔哩助手 https://bilibili-helper.github.io/ ,安装方法见之前文章 上不了谷歌如何安装 Chrome 扩展?打开b站视频 https://www.bilibili.com/video/BV1ip4y1D7iY ,可以看到弹幕列表(还支持搜索),直接提供xml和ass 2种格式弹幕下载。

这个和之前介绍的油猴扩展哔哩哔哩增强脚本一样的 https://greasyfork.org/zh-CN/scripts/373563-bilibili-evolved

视频和弹幕文件下载后放同一个目录下,即【周杰伦纪录片】第七集:夏日狂想.flv【周杰伦纪录片】第七集:夏日狂想.ass,播放视频的时候字幕也出来了。

最后分享个小技巧,b站视频的倍速播放最大到2倍,如果想更快(比如2.5倍)可以在控制台执行document.querySelector('video').playbackRate = 2.5

 

大家的点赞和在看转发对我非常重要,如果文章对你有帮助还请支持下, 感谢各位!

公众号后台回复关键词用途
微信获取你的微信好友头像拼图及查看微信撤回消息
b站获取下载b站视频工具及找回被删b站视频方法
视频获取下载腾讯,优酷,爱奇艺,微博视频工具及去除logo脚本
百度网盘获取加速下载网盘文件方法及查找电影电视剧网站
朋友圈获取发空白朋友圈方法
微博获取备份微博工具及分析微博账号数据
音乐获取下载音乐工具及解锁网易云音乐无版权歌曲
油猴获取油猴脚本
谷歌获取安装Chrome扩展方法

免费知识星球,每天更新

公众号 苏生不惑

扫描二维码关注或搜索微信susheng_buhuo
  • 10
    点赞
  • 31
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
可以使用Redis的SET命令结合NX和EX选项来实现分布式锁。具体步骤如下: 1. 首先,需要向Redis中写入一个key,这个key就是锁的名称,value可以是任意值。可以使用SET命令,同时传入NX和EX选项,NX选项表示仅在key不存在时才设置值,EX选项表示设置key的过期时间。 2. 如果SET命令返回OK,说明当前线程成功获取到了锁,可以进入借用或归还操作。如果SET命令返回null,说明当前锁已经被其他线程持有,需要等待。 3. 在借用或归还操作完成后,需要释放锁,可以使用Redis的DEL命令删除锁的key,确保其他线程可以获取到锁继续执行。 下面是Java代码示例: ```java public class RedisLock { private static final String LOCK_PREFIX = "lock:"; private String lockName; private RedisTemplate<String, Object> redisTemplate; public RedisLock(String lockName, RedisTemplate<String, Object> redisTemplate) { this.lockName = LOCK_PREFIX + lockName; this.redisTemplate = redisTemplate; } public boolean lock(long timeout, TimeUnit unit) { long start = System.currentTimeMillis(); while (true) { boolean success = redisTemplate.opsForValue().setIfAbsent(lockName, ""); if (success) { redisTemplate.expire(lockName, timeout, unit); return true; } long elapsed = System.currentTimeMillis() - start; if (elapsed >= unit.toMillis(timeout)) { return false; } try { Thread.sleep(100); } catch (InterruptedException e) { Thread.currentThread().interrupt(); return false; } } } public void unlock() { redisTemplate.delete(lockName); } } ``` 这里使用了RedisTemplate来操作Redis,lock方法可以指定超时时间,如果在指定时间内无法获取到锁,就返回false。unlock方法就是简单地删除锁的key。在借用和归还操作中,只需要在获取到锁后执行操作,在操作完成后调用unlock方法释放锁即可。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值