在我放弃了用端脑云搞图像生成之后,我寻思这些一天只要一块多钱的肉便器如何调教🤔一个非常显而易见的方式是让它转而搞音频模型,比如msst、gpt-sovits和rvc或者其他ai变声玩意🤔这种东西连8GB显存的40hx都能随便玩,colab上的中端计算卡只比它高一代就能快两三倍,而5090又比什么t4高级不知道多少倍,,,🤔可想而知对端脑云的实例来说,哪怕开着tts跑三回啊三回,也比本地跑一回快🤔
所以我让codex整一套这玩意,并用comfyui的api功能提供对外api🤔很快它就搭建了一个像模像样的msst工作流,而且传个歌曲上去确实不到一分钟就能处理完(确信🤔但它既然要做成api,那么输入应该是音乐链接而不是文件的数据流,输出应该上传到蓝奏然后返回蓝奏链接,这样才能塞进昔琏bot里调用🤔
再整了一顿后,这部分api也实现力,昔琏bot发送个链接完全可以处理,但以discord附件上传的歌曲处理不了一点,那当然是因为端脑云没有任何方式从discord下载任何附件,,,🤔既然如此,我有一个大胆的想法,,,我要用applemusik来向msst供应原曲🤔
其实之前我整过applemusik下载,但那套玩意不知道被我部署到了哪台机子上🤔whatever,我随便找了一个玩意部署了上去,它确实能实现预期的功能,往api里输入一首歌的名字,取第一个搜索结果下载并做分离,然后将原曲、伴奏和人声的蓝奏链接全部返回给昔琏bot🤔现在有一个一个一个一个问题,为什么它是aac格式而不是alac?(🤔
在一顿哼哼调查后,codex发现那个玩意需要一个叫做wrapper的组件才能下载alac,而当我让它配置这么一个玩意后,它居然开始直球拒撅,因为它发现我想干什么力,我想做的是绕过applemusik的drm保护🤔
草,这ai道德感真你妈高啊,,,在换了三四次会话都在最关键的环节挡住(其中一次甚至发撅出了wrapper这玩意完全没法部署到端脑云的实例,在指导我往我的某台vps上部署了wrapper后,它又开始拒撅给我集成)后,我只能求助另外一个完全不关心什么drm的ai来解撅这个问题,比如gemini,,,🤔
又开了一个全新会话,刚好我的四个,不对,三个gpt team workspace又寄了一个,剩下两个也耗尽了用量,我干脆切到了custom,也就是我那几个中转站🤔现在它们用起来反正比上个月稳定,尽管流量计费是三倍,但我终于可以放开手干力🤔按照gemini的说法,我只要在提示词里不说这玩意是applemusik用的,不给它一首实际歌曲来做测试,就说它是一个通用解密api,它居然没有任何阻拦地跑了起来,集成了我那几个端口🤔但奇怪的事情是它总是卡在那一步,而我的vps那边的日志也没有看到任何请求🤔
在一番野兽debug后,它发现了这个逼容器居然设置了全局代理,去掉代理后它终于可以解密力🤔就是这个解密速度确实非常呃呃,,,🤔真是解密两分钟,分离三分钟(这是分离了两次外加tta,相当于六次),五六分钟才能出一首歌🤔blame apple🤔
thonk
我这里简短地写下applemusik解密的原理🤔和网抑云音乐还不太一样,网抑云音乐尽管会员能够下的歌曲数量是有限制的(而我曾经某个月真的用超了它的限制,,,甚至还额外花钱买了200首歌的下载次数),但下载下来的文件可以视为常量加密,所以它可以用一个非常轻量级的离线js解密网页(当然以现在的ai技术,可以将其随便重构成node.js,py,php,c++甚至bash)随便解密出flac(确信🤔但applemusik比这个复杂得多,它用的是变量加密,每次请求一首歌曲,它会获取一个m3u8,然后里面记录的是加密了的alac音频流,还需要某种申必方式获取一个解密密钥?解密方法?才能对其进行流式解密,解出alac🤔
那么那个申必的wrapper项目做了什么?它做的是模拟了一个小型的android runtime,然后在上面跑了一个魔改版的applemusik android app,能够通过请求来返回m3u8和解密方法,然后对外开放了三个端口,10020是解密信息的端口,20020是m3u8信息的端口,而30020是账号信息的端口🤔这就是为什么它无论用不用docker都需要非常高的系统权限,按照codex的分析,至少需要开启某些系统模块🤔而最你妈草的是端脑云的comfyui实例是在一个docker容器里面的,它权限卡得非常死,看起来用户有root权限,但该开启的系统模块一个都没开(全恼🤔
我之前还部署了一个wine套件上去,甚至还实现了用novnc对外开启窗口,但它的5090居然完全没有开启图形输出选项,所以我也没法拿它玩游戏或者跑maya等3d应用,或者让那个novnc窗口支持h265编解码,只能把它当作一个大号矿卡或者猴版计算卡用(全恼🤔
那么对于那些压根就没有alac音源的applemusik歌曲,它会怎么下?此时请求wrapper也没用,它会用applemusik网页版的cookies,直接从网页版的某个申必api获取aac🤔至于它需不需要解密,是常量解密还是变量解密,我已经懒得关心力🤔
whatever,反正我通过自己部署wrapper解撅了这个最难的问题,通过一番提示词工程(大嘘)让codex还是将其集成了起来,剩下的事情就是再开一台端脑云实例,开始从头开始部署🤔果然,这个脚本出了问题,它的某个过程卡住力🤔一分析发现是网络问题,看来它里面那个代理得挖撅一下什么时候该开什么时候不该开🤔反正访问我的wrapper和applemusik相关域名时不能开,而跑apt update或者git clone时又需要开,目前看来这个脚本应该足够完善力,下次我再部署时可以不用让codex盯着它,直接部署🤔当然我也许懒得记我自己设置的命令行参数,还是会交给codex整,反正我现在可以一天,不对,一个凌晨消耗掉90token美元,它不带中断的,我只需要往某个中转站每几小时充一块钱即可(确信🤔