V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
爱意满满的作品展示区。
Shared
V2EX  ›  分享创造

acmpv & acmpv watcher 更新 - 支持播放 Bilibili 视频及其他

  •  
  •   Shared ·
    vayn · 2016-10-21 09:32:47 +08:00 · 4662 次点击
    这是一个创建于 2715 天前的主题,其中的信息可能已经有所发展或是发生改变。

    acmpv v1.0.3

    更新说明

    1. 除支持播放 Acfun 弹幕视频外,加入 Bilibili 弹幕视频的播放支持。
    2. 可播放其他 You-Get 支持的网站视频

    acmpv watcher v1.0.3

    更新说明

    1. 现在可监控剪贴板自动调用 acmpv 播放 Acfun & Bilibili 视频啦(其他视频网站暂不支持)。
    2. 全局热键:同时按下 command + option + x 组合键可打开或暂停监控功能(后续将加入自定义热键功能)。

    screenshot


    acmpv 下载地址: https://github.com/Vayn/acmpv

    acmpv watcher 下载地址: https://github.com/Vayn/acmpv-watcher


    鸣谢

    感谢 @ddqp 和 @zjb861107 提出的改进意见。

    第 1 条附言  ·  2016-10-23 06:46:09 +08:00

    acmpv watcher 更新至 1.0.4:

    1. 加入优酷、乐视等视频网站监控支持
    2. 加入拖拽播放功能,拖拽视频链接至 acmpv watcher 菜单栏图标即可播放视频

    screeshot

    下载地址:https://github.com/Vayn/acmpv-watcher

    52 条回复    2016-12-19 20:49:12 +08:00
    ddqp
        1
    ddqp  
       2016-10-21 09:46:16 +08:00
    晚上回去试试,要方便多了,尤其一些直播网站
    Tink
        2
    Tink  
       2016-10-21 10:34:26 +08:00 via iPhone
    牛逼!
    JackBlack2006
        3
    JackBlack2006  
       2016-10-21 10:46:27 +08:00
    Shared
        4
    Shared  
    OP
       2016-10-21 11:14:42 +08:00
    @JackBlack2006 啊哈,中午休息的时候看下。命令行调用最麻烦的一点是环境变量的设置
    JackBlack2006
        5
    JackBlack2006  
       2016-10-21 12:30:35 +08:00
    @Shared 直接 acmpv.conf 不就完事情了……
    Shared
        6
    Shared  
    OP
       2016-10-21 13:06:52 +08:00
    @JackBlack2006 好主意,不过这样以来使用复杂度就上去了
    JackBlack2006
        7
    JackBlack2006  
       2016-10-21 13:09:54 +08:00
    @Shared 你干脆写成状态栏 app ,一个界面多个方框,各种方框对应不同的功能(脚本命令),拖放 URL 就行
    Troevil
        8
    Troevil  
       2016-10-21 13:28:25 +08:00
    bilibili 现在不是支持 hmtl5 了吗
    Shared
        9
    Shared  
    OP
       2016-10-21 13:41:10 +08:00
    @Troevil 是的
    soolr
        10
    soolr  
       2016-10-21 14:14:17 +08:00
    ImportError: No module named 'you_get'
    Shared
        11
    Shared  
    OP
       2016-10-21 14:19:47 +08:00
    @soolr 能提供再详细的信息吗?比如你是怎么调用命令的,是否已经按照安装指南设置 PATH ?
    JackBlack2006
        12
    JackBlack2006  
       2016-10-21 20:52:10 +08:00
    求指教: you-get 还是 mpv 的缓存到底如何设置为好呢?

    看一个美剧熟肉,发现源站分段十几个按照十几个 chapter 处理,不管怎么设置,换 chapter 时候都会停一下,并不会继续预载下一个
    JackBlack2006
        13
    JackBlack2006  
       2016-10-21 20:52:50 +08:00
    各种 mpv 的设置都试过了, cache 试过最大 1GB 来着
    ddqp
        14
    ddqp  
       2016-10-21 21:01:04 +08:00
    好用,就是启动时候会卡一会儿,期待支持熊猫 tv ,斗鱼 tv 等 you-get 支持的网站,十分方便
    ddqp
        15
    ddqp  
       2016-10-21 21:03:51 +08:00
    @JackBlack2006 这个主意不错,如果能有个状态栏 app ,然后可以自定义网址,和命令,然后根据剪贴板网址判断调用设置好的命令执行
    Shared
        16
    Shared  
    OP
       2016-10-21 23:19:23 +08:00
    @JackBlack2006 mpv 本身应该没有考虑过分段视频的预加载功能

    @ddqp 启动卡一会儿是因为正在解析视频的 API

    另外现在可以播 B 站的番剧了
    JackBlack2006
        17
    JackBlack2006  
       2016-10-21 23:30:28 +08:00
    @Shared 这个其实和 you-get 有关系,因为 mpv 只是播放一个 chapter 列表,应该 you-get 处理一下把分段视频当一个整体给 mpv

    A 站 you-get 看了 40 分钟的美剧卡了 10 次,看个电影还不得急死……

    youtube-dl 看 B 站试了一下, cache 设置其实都是对 youtube-dl 才有效果……而且是一次性加载完整个 40 分钟视频的,不是十个 4 分钟片段
    JackBlack2006
        18
    JackBlack2006  
       2016-10-21 23:31:50 +08:00
    所以最好的办法是 youtube-dl 支持 acfun ,或者 you-get 改进这个
    JackBlack2006
        19
    JackBlack2006  
       2016-10-21 23:39:55 +08:00
    *B 站同样的视频, youtube-dl 看 mpv 里面是 40 分钟, you-get 看就是分段的短视频了
    Shared
        20
    Shared  
    OP
       2016-10-21 23:39:56 +08:00
    @JackBlack2006 我一开始打算把 you-get 的视频解析功能都提取出来,抽象成一个单独的解析模块。

    但是读完代码之后就放弃这个计划了……代码耦合太紧密,并没有暴露出合适的接口。

    其实想想也是,无论 you-get 还是 bilidan 都是作为工具开发出来的,设计导向不同。
    Shared
        21
    Shared  
    OP
       2016-10-21 23:41:40 +08:00
    @JackBlack2006 B 站底层解析已经换成 bilidan 了, you-get 的相关模块太局限。
    JackBlack2006
        22
    JackBlack2006  
       2016-10-21 23:46:17 +08:00
    @Shared 我测试的时候没有用 acmpv ……和你的作品并没有关系 Y(^_^)Y
    JackBlack2006
        23
    JackBlack2006  
       2016-10-21 23:47:34 +08:00
    你不是有 github 帐号嘛,给 you-get 提个 issue 呗 ^^
    Shared
        24
    Shared  
    OP
       2016-10-22 00:13:34 +08:00
    @JackBlack2006 you-get 的 issue 有海量……
    helloSwift
        25
    helloSwift  
       2016-10-22 00:17:16 +08:00 via iPhone
    @JackBlack2006 今天刚遇到这个问题,我这里是分成 5 分钟的片段,折腾半个小时,无解
    cnbeining
        26
    cnbeining  
       2016-10-22 03:42:38 +08:00
    @Shared

    开 issue 。

    issue 很多但是 Owner 和 collaborators 们真的会看的。


    你有几个办法可以做 work around :

    1. 导出 list of URLs

    2. 导出 JSON 自己解析。

    至于 Bilibili 怎么解析。。。解析反正都是 Biligrab 的 fork 用什么都一样。

    Acfun 我这里没有发现谁提不能解析的 issue ,我也不认为解析有了什么变化。

    优酷云的速度问题我和 Acfun 的猴子讨论过,当然这个问题不是我们说什么就可以解决的。请考虑使用 proxy 等其他手段。

    @JackBlack2006

    这是 mpv 的问题,请到上游提 issue ,或者我记得 BiliDan 或 you-get 的 past issue 有人说过这个问题。

    你可以尝试使用 ffmpeg 将所有视频 concat 后 pipe 进 mpv ,虽然我怀疑其效果是否会如愿。


    @helloSwift

    自去年某日后(我还真就记不起哪天了)所有的视频都是分段的。具体说是 6min 的分段。


    To ALL :

    请确保使用了**最新** 的 **Github** 版本的 you-get ,因为项目更新很快而 pip 的新版本策略不会推那么快。
    Shared
        27
    Shared  
    OP
       2016-10-22 08:23:45 +08:00   ❤️ 1
    @cnbeining you-get 最近一次不能解析 Acfun 的 bug 是我修复的,已经被 @soimort 合并了 XD 。
    acmpv 内嵌的 you-get 就是最新开发版(考虑到 git submodule 的对某些用户来说操作复杂没有使用)

    @JackBlack2006 视频喂给 mpv 时已经是列表,并且使用了 merge-files 参数(要不然只能看 6 分钟)。因此结论是 mpv 确实没考虑提前加载视频流。
    JackBlack2006
        28
    JackBlack2006  
       2016-10-22 08:45:21 +08:00
    @Shared 啊,但是为何 youtube-dl 没这个问题……我去研究下代码(其实我属于能看懂但是不会写那种人 XD )
    nareix
        29
    nareix  
       2016-10-22 09:29:39 +08:00
    做成插件是不是更方便点哇?
    Shared
        30
    Shared  
    OP
       2016-10-22 09:48:53 +08:00
    @nareix 详细说说想法吧 :D
    JackBlack2006
        31
    JackBlack2006  
       2016-10-22 09:59:23 +08:00
    @nareix firefox 可以用 openwith ,但是 os x 下无效

    chrome 有没有类似的我不知道哦
    ilools
        32
    ilools  
       2016-10-22 17:43:05 +08:00 via iPhone
    点个赞👍
    Shared
        33
    Shared  
    OP
       2016-10-23 06:49:19 +08:00
    acmpv watcher 更新至 1.0.4 :

    加入优酷、乐视等视频网站监控支持
    加入拖拽播放功能,拖拽视频链接至 acmpv watcher 菜单栏图标即可播放视频



    @ddqp @nareix @JackBlack2006
    ddqp
        34
    ddqp  
       2016-10-23 09:43:38 +08:00
    太好用了,十分方便,不知道如何修改弹幕大小?
    ddqp
        35
    ddqp  
       2016-10-23 09:48:21 +08:00
    熊猫 tv ,斗鱼 tv ,可否支持弹幕呢?
    Shared
        36
    Shared  
    OP
       2016-10-23 10:14:10 +08:00
    @ddqp 弹幕大小可以在这里修改 https://github.com/Vayn/acmpv/blob/master/src/acmpv/downloaders.py#L26

    熊猫和斗鱼理论也是可以支持弹幕的,我先看看
    ddqp
        37
    ddqp  
       2016-10-23 11:14:11 +08:00 via iPhone
    @Shared 好的,谢谢!我试试
    ddqp
        38
    ddqp  
       2016-10-23 15:23:04 +08:00
    改成 15.6 了,感觉 15.6 比较合适,原先的有点太小了。
    Shared
        39
    Shared  
    OP
       2016-10-23 20:54:29 +08:00   ❤️ 1
    @ddqp 研究了一阵子,斗鱼和熊猫这种弹幕与 AB 站本质不一样,加上 mpv 的缺陷,没法在视频内嵌弹幕。找找有没别的方案
    ddqp
        40
    ddqp  
       2016-10-23 21:01:50 +08:00 via iPhone
    @Shared 好的,谢谢,没有就算了,呵呵,已经挺好用了,
    mingyun
        41
    mingyun  
       2016-10-23 23:50:06 +08:00
    厉害了我的哥
    weicaizhi
        42
    weicaizhi  
       2016-10-24 02:00:18 +08:00
    斗鱼的弹幕显示真的是很难攻破诶。
    Shared
        43
    Shared  
    OP
       2016-10-24 02:08:15 +08:00
    @weicaizhi 倒不是难攻破,而是没法展示
    weicaizhi
        44
    weicaizhi  
       2016-10-24 02:54:32 +08:00
    @Shared 那就是 mpv 的锅喽
    话说我刚发现我的 Python 是 2.7 的。。。。。。
    ddqp
        45
    ddqp  
       2016-10-24 14:01:03 +08:00
    @weicaizhi 斗鱼熊猫弹幕 github 上都有现成的代码,只是用起来很麻烦不知道如何在 MPV 里面显示。
    haogefeifei
        46
    haogefeifei  
       2016-10-24 14:54:23 +08:00
    感觉有点麻烦。。。平时都是 https://github.com/m13253/BiliDan + Automator 搞定的。。。
    Shared
        47
    Shared  
    OP
       2016-10-24 14:56:00 +08:00
    @haogefeifei 你可以分享你的方案 :D
    haogefeifei
        48
    haogefeifei  
       2016-10-24 18:05:49 +08:00
    Shared
        49
    Shared  
    OP
       2016-10-24 19:31:11 +08:00
    @haogefeifei 简洁有力!
    haogefeifei
        50
    haogefeifei  
       2016-10-25 09:19:55 +08:00
    @Shared 右键服务里调播放器只是很小有方面。。利用 Automator 写服务调用脚本开发效率很高。。。 有空你可以看看。。
    Shared
        51
    Shared  
    OP
       2016-10-25 09:25:43 +08:00
    @haogefeifei 嗯,我自己也有一些私用 workflow :D
    不过我最初的目的是在客户端上播放 Acfun 弹幕视频,后来为满足大家的 request 已经变成一个系统工程,脚本做不到哦
    JackBlack2006
        52
    JackBlack2006  
       2016-12-19 20:49:12 +08:00
    我最近依据这个 http://www.jianshu.com/p/a4dddbd39d4d?nomobile=yes 给一些人的 Windows 部署了

    但是 OS X 上面发给 you-get 没有反应,直接拖放 you-get ,搞 Automator 我都试过了没成功,不知能否指点一下?=)
    @Shared
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   987 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 30ms · UTC 20:16 · PVG 04:16 · LAX 13:16 · JFK 16:16
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.