从官网扒某儿童频道的一些音频资源

缘起

乐乐的倾听者的音频资源又需要更新了,于是跟我提了几个需求,让我去“下”(下载)某个著名儿童频道主播播讲的节目(有故事还有其他)。

现状

这个主播有官网,但是官网上没有资源,只有 app 和公众号(可能还有在喜马拉雅的)的二维码。

但是发现了其还是有一个移动版的“官网”(域名是 m. 开头的),这个网站跟官网貌似没有同步更新,上面还能直接听节目。

大致看了下页面源代码,很快就扒出了音频资源的下载链接,在命令行用 wget 抓了一下,居然也没有反盗链,实在是良心!

具体脚本

先要准备环境(我是在 MacOS,所以用了 Homebrew)

1
2
3
4
5
6
7
# Command Line Tools (CLT) for Xcode
xcode-select --install
# Homebrew installation
/bin/bash -c \
"$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh)"
# Install curl, jq, wget
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)"'
# or
# curl "https://m.xxx.xxx/api/media/audiolist.ashx?mid=7268&aid=516&mids=" | 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)"'

最后记得把命令输出的命令行代码拷贝出来,再粘贴出来执行一下。资源就会都下载到当前目录下了。

最后

需要这些资源又不想自己下载的可以找我。