缘起
乐乐的倾听者的音频资源又需要更新了,于是跟我提了几个需求,让我去“下”(下载)某个著名儿童频道主播播讲的节目(有故事还有其他)。
现状
这个主播有官网,但是官网上没有资源,只有 app 和公众号(可能还有在喜马拉雅的)的二维码。
但是发现了其还是有一个移动版的“官网”(域名是 m. 开头的),这个网站跟官网貌似没有同步更新,上面还能直接听节目。
大致看了下页面源代码,很快就扒出了音频资源的下载链接,在命令行用 wget 抓了一下,居然也没有反盗链,实在是良心!
具体脚本
先要准备环境(我是在 MacOS,所以用了 Homebrew)
1 2 3 4 5 6 7
| xcode-select --install
/bin/bash -c \ "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh)"
brew install curl jq wget
|
下面开始抓取并声称下载资源的命令行。
历史课
1 2 3 4
| curl "https://m.xxx.xxx/api/media/audiolist.ashx?mid=7268&aid=516&mids=" -o audiolist_qianer_history.json cat audiolist_qianer_history.json | jq -r '.list[] | "wget -O \"\(.title).mp3\" \(.url)"'
|
世界地理
1 2
| curl -s "https://m.xxx.xxx/api/media/audiolist.ashx?aid=486" | \ jq -r '.list[] | "wget -O \"\(.title).mp3\" \(.url)"'
|
成语启蒙
1 2
| curl -s "https://m.xxx.xxx/api/media/audiolist.ashx?aid=250" | \ jq -r '.list[] | "wget -O \"\(.title).mp3\" \(.url)"'
|
世界历史
1 2
| curl -s "https://m.xxx.xxx/api/media/audiolist.ashx?aid=477" | \ jq -r '.list[] | "wget -O \"\(.title).mp3\" \(.url)"'
|
学诗词
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
| curl -s "https://m.xxx.xxx/api/media/audiolist.ashx?aid=8" | \ jq -r '.list[] | "wget -O \"\(.title).mp3\" \(.url)"' curl -s "https://m.xxx.xxx/api/media/audiolist.ashx?aid=88" | \ jq -r '.list[] | "wget -O \"\(.title).mp3\" \(.url)"' curl -s "https://m.xxx.xxx/api/media/audiolist.ashx?aid=89" | \ jq -r '.list[] | "wget -O \"\(.title).mp3\" \(.url)"' curl -s "https://m.xxx.xxx/api/media/audiolist.ashx?aid=90" | \ jq -r '.list[] | "wget -O \"\(.title).mp3\" \(.url)"' curl -s "https://m.xxx.xxx/api/media/audiolist.ashx?aid=91" | \ jq -r '.list[] | "wget -O \"\(.title).mp3\" \(.url)"' curl -s "https://m.xxx.xxx/api/media/audiolist.ashx?aid=92" | \ jq -r '.list[] | "wget -O \"\(.title).mp3\" \(.url)"' curl -s "https://m.xxx.xxx/api/media/audiolist.ashx?aid=93" | \ jq -r '.list[] | "wget -O \"\(.title).mp3\" \(.url)"' curl -s "https://m.xxx.xxx/api/media/audiolist.ashx?aid=337" | \ jq -r '.list[] | "wget -O \"\(.title).mp3\" \(.url)"' curl -s "https://m.xxx.xxx/api/media/audiolist.ashx?aid=342" | \ jq -r '.list[] | "wget -O \"\(.title).mp3\" \(.url)"' curl -s "https://m.xxx.xxx/api/media/audiolist.ashx?aid=341" | \ jq -r '.list[] | "wget -O \"\(.title).mp3\" \(.url)"' curl -s "https://m.xxx.xxx/api/media/audiolist.ashx?aid=340" | \ jq -r '.list[] | "wget -O \"\(.title).mp3\" \(.url)"' curl -s "https://m.xxx.xxx/api/media/audiolist.ashx?aid=339" | \ jq -r '.list[] | "wget -O \"\(.title).mp3\" \(.url)"'
|
名人传
1 2 3 4
| curl -s "https://m.xxx.xxx/api/media/audiolist.ashx?aid=360" | \ jq -r '.list[] | "wget -O \"\(.title).mp3\" \(.url)"' curl -s "https://m.xxx.xxx/api/media/audiolist.ashx?aid=449" | \ jq -r '.list[] | "wget -O \"\(.title).mp3\" \(.url)"'
|
三十六计
1 2
| curl -s "https://m.xxx.xxx/api/media/audiolist.ashx?aid=485" | \ jq -r '.list[] | "wget -O \"\(.title).mp3\" \(.url)"'
|
最后记得把命令输出的命令行代码拷贝出来,再粘贴出来执行一下。资源就会都下载到当前目录下了。
最后
需要这些资源又不想自己下载的可以找我。