用 Go 写了个抓取直播源的客户端工具 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
请不要在回答技术问题时复制粘贴 AI 生成的内容
wangbenjun5

用 Go 写了个抓取直播源的客户端工具

  •  1
     
  •   wangbenjun5 Jul 11, 2021 7063 views
    This topic created in 1751 days ago, the information mentioned may be changed or developed.

    Catya

    https://github.com/wangbjun/catya

    有一说一,虎牙的 4k 60fps 直播源画质真高,达到了 YouTube 的水平,但是在浏览器上面看还是相当吃资源。

    于是,我写了个工具,抓了直播源地址,然后通过本地播放器打开,我用的是 SMPlayer,效果非常好,贼流畅。

    GUI 这块使用了 Fyne 这个开源图形库,这个库功能还挺强大的,基于 opengl,简单的组件都有,就是不是布局太好用,贵在是原生 UI,而且跨平台,甚至连安卓也能跑。

    用法

    我自己用的 Ubuntu 桌面,所以我只打包编译了 Linux 的版本,需要的点击 relase 下载,Mac 或者 Windows 的自行编译吧。。。

    复制虎牙直播间地址,或者直接输入直播间号,比如 lpl,或者 s4k ( 4k 直播间号),点击提交,下面就会列出所有源地址,但是不是所有源都可以用,我也不清楚为啥有的用不了。

    然后只要点击列表可以复制地址到粘贴板,如果你安装了 SMPlayer 的话,则会自动打开直播。

    我还特地准备了 icon,放上去毫无违和感!

    备注

    如果你觉得浏览器看 4k 比较占资源,同时不喜欢看弹幕撕逼带节奏的话,这个非常适合你,另外如果你是 4k 屏幕,可能需要设置一下缩放,通过导入一个环境变量,比如我设置成 1.75 。

    export FYNE_SCALE=1.75 

    最后,弱弱问下,这个不会有啥版权问题吧,侵权秒删!

    Supplement 1    Jul 11, 2021
    这个工具纯粹是我自己喜欢看虎牙 lpl 比赛直播,突发奇想写的,看 shy 哥用的
    Supplement 2    Jul 11, 2021

    刚才更新了一下,增加了一个记录最近访问过的直播间的功能,一键直达,贼方便

    35 replies    2021-07-12 19:10:34 +08:00
    wangbenjun5
        1
    wangbenjun5  
    OP
       Jul 11, 2021
    linux 用户点这个下载使用: https://github.com/wangbjun/catya/releases/tag/v1.0
    Rorshach
        2
    Rorshach  
       Jul 11, 2021
    好东西 能抓 b 站吗
    guaguaguaxia1
        3
    guaguaguaxia1  
       Jul 11, 2021
    真侵权了不会给你秒删的机会
    wangbenjun5
        4
    wangbenjun5  
    OP
       Jul 11, 2021
    @Rorshach 目前只有虎牙
    wangbenjun5
        5
    wangbenjun5  
    OP
       Jul 11, 2021
    @guaguaguaxia1 说的我怕怕的,哈哈
    ipixeloldc
        6
    ipixeloldc  
       Jul 11, 2021
    @Rorshach B 站的 api 文档已经烂大街了,你自己搜搜就有了。并且那个获取直播流地址的 api 没有验证。我自己也用 jsbox 写了个,解决 B 站客户端直播没画中画的问题 2333
    hronro
        7
    hronro  
       Jul 11, 2021
    不错,支持一个。
    我自己之前一直用的 streamlink,Python 写的,但我自己还是比较偏好 Go 这种编译型的。
    JerryCha
        8
    JerryCha  
       Jul 11, 2021
    好耶,改一改就能拿来辅助录 A-Soul 的直播了
    Gzilla
        9
    Gzilla  
       Jul 11, 2021
    @JerryCha 哪里都有是吧! 不许你录顶碗人的爹
    JerryCha
        10
    JerryCha  
       Jul 11, 2021
    @Gzilla ?我录我爹尽个孝都不行吗
    Gzilla
        11
    Gzilla  
       Jul 11, 2021
    @JerryCha 你真的 , 我哭死
    janxin
        12
    janxin  
       Jul 11, 2021
    @ipixeloldc 你甚至可以使用火狐
    ihipop
        14
    ihipop  
       Jul 11, 2021 via Android
    @ipixeloldc 两次双击右键即可出现画中画
    lingxi27
        15
    lingxi27  
       Jul 11, 2021
    斗鱼可以抓到吗?好像已经不是 http-flv 了
    502Chef
        16
    502Chef  
       Jul 11, 2021   1
    macOS 编译成功运行,IINA 可以直接打开看,好东西
    ProbeWong
        17
    ProbeWong  
       Jul 11, 2021
    real-url
    @lingxi27
    wsseo
        18
    wsseo  
       Jul 11, 2021
    windows 下可以编译运行,但是双击运行会打开终端窗口。
    这种工具做成命令行工具比较好。
    wangbenjun5
        19
    wangbenjun5  
    OP
       Jul 11, 2021
    @huyujievip 感谢反馈
    wangbenjun5
        20
    wangbenjun5  
    OP
       Jul 11, 2021
    @wsseo 没有出界面吗?那有点奇怪了
    AlisaDestiny
        21
    AlisaDestiny  
       Jul 11, 2021   3
    你这是把 real-url 那个 python 版本的用 go 重写了一遍,连 UA 都一模一样。
    clockcloud
        22
    clockcloud  
       Jul 11, 2021
    推荐个项目,基本上我看直播用这个
    https://github.com/xjbeta/iina-plus
    wangbenjun5
        23
    wangbenjun5  
    OP
       Jul 11, 2021
    @clockcloud 这个牛逼,我想过这样做,不过这个只有 mac 能用,可惜
    wangbenjun5
        24
    wangbenjun5  
    OP
       Jul 11, 2021
    @AlisaDestiny 爬地址这块借鉴了,哈哈
    wsseo
        25
    wsseo  
       Jul 11, 2021
    @wangbenjun5 出了
    p1gd0g
        26
    p1gd0g  
       Jul 12, 2021
    fyne,当年校招拿来写了个玩具。2.0 有啥大改动吗?
    ligiggy
        27
    ligiggy  
       Jul 12, 2021
    不说了,乌兹 YYDS
    lingxi27
        28
    lingxi27  
       Jul 12, 2021
    @ProbeWong niubility
    matrix67
        29
    matrix67  
       Jul 12, 2021
    水深火热预告
    ylsc633
        30
    ylsc633  
       Jul 12, 2021
    shy 爹回来也救不了 IG 了

    主要中路状态太差了.. 比如春晚里 他那个盲僧, 比越南首富, 咖哥 动作都要慢, 慢就算了,主要是技能不中
    ysc3839
        31
    ysc3839  
       Jul 12, 2021 via Android
    Fyne 不是“原生 UI”吧?一般说原生 UI 是指用操作系统自带的界面库,Fyne 看上去完全没有使用。
    wangbenjun5
        32
    wangbenjun5  
    OP
       Jul 12, 2021 via Android
    @p1gd0g 功能更多了
    wangbenjun5
        33
    wangbenjun5  
    OP
       Jul 12, 2021 via Android
    @ylsc633
    wangbenjun5
        34
    wangbenjun5  
    OP
       Jul 12, 2021 via Android
    @ysc3839 是原生的,不同平台 UI 都不一样,在我 Ubuntu 上面就是 Ubuntu 那样
    ysc3839
        35
    ysc3839  
       Jul 12, 2021 via Android
    @wangbenjun5 那也有可能是像 Qt 那样,只是用了系统主题,控件逻辑还是自己实现的。
    而且它官网的 macOS 截图也跟你发的图没什么两样。
    About     Help     Advertise     Blog     API     FAQ     Solana     3348 Online   Highest 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 72ms UTC 13:03 PVG 21:03 LAX 06:03 JFK 09:03
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86