You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用cut命令从接口返回结果中提取目标m3u8链接

如何使用cut命令从接口返回结果中提取目标m3u8链接

嘿,我来帮你搞定这个提取m3u8链接的问题!你的思路已经很对了——用curl拿接口数据,再通过grep和cut筛选内容,不过可以做些小优化让命令更稳定可靠。

优化后的cut命令方案

如果接口返回的JSON里source字段格式类似 "source": "https://xxx.m3u8?token=xxx",可以用下面的命令:

link=$(curl -s 'https://app-api6.podbbang.com/musicpod-playlists/musicpod77?with=media' | grep -o '"source": "[^"]*"' | cut -d'"' -f 4)
echo $link

我来拆解下各部分的作用:

  • curl -s:静默请求接口,只返回接口数据,不输出多余的进度提示
  • grep -o '"source": "[^"]*"':-o参数只输出精准匹配的内容,[^"]*用来锁定双引号内的m3u8链接部分,避免拿到整行里的其他冗余内容
  • cut -d'"' -f 4:以双引号为分隔符,分割后第4段就是我们要的目标链接(分割后的结构是:空字符串 → "source" → 空字符串 → 目标m3u8链接)

更稳妥的替代方案(推荐)

用grep+cut处理JSON其实属于“文本凑配”,如果接口返回的JSON结构有微小变化(比如空格、换行调整),可能就会失效。更靠谱的方式是用专门的JSON处理工具jq,命令会更简洁且抗变化:

link=$(curl -s 'https://app-api6.podbbang.com/musicpod-playlists/musicpod77?with=media' | jq -r '.media.source')
echo $link

这里.media.source是根据接口返回的JSON结构写的路径,如果实际结构不同,你可以调整这个路径(比如如果source直接在根节点,就写成.source)。-r参数用来输出不带双引号的原始字符串,正好符合我们的需求。

备注:内容来源于stack exchange,提问作者Silver Lee

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.15 15:15:29