我的网易云音乐 2018 年年度报告

我的网易云音乐 2018 年年度报告

每一年的年初最有意思的事情莫过于看看各个 APP 的年终报告了。为了比较自己多年的变化,决定把这些年终报告记录下来。这一篇就是网易云的年终报告了。我的年度报告的地址是:遇见你,真好

虽然用电脑浏览器打不开这个报告的页面,但是这样就可以了:

这个userdata里面的内容就是我们的报告背后的数据了,是个 POST 请求。

我喜欢先用 curl 把数据请求下来再处理:

R
1
2
3
library(jsonlite)
system("curl 'https://interface.music.163.com/weapi/activity/summary/annual/2018/userdata' --data 'params=wM6V%2BnjW2Tl3ElG%2FrnFEfwPALUqQZ%2Bqnx0cD6AILl1bvhi4XTuwap7zj6ACPfbhP1BaAEaPjcmRTpxyj1A4p9DxtAPrekw6ocybpyEpkUhs%3D&encSecKey=4a143e8fe1cc1a0879a2f9374ea72594bb8db003280e509d463a7e6bc77d427d6316f4e0da021cd8a6cfbeaa6ee4cb35d72f0fe5ef3de7ecfffba2b9c4ab87bd6342b50acd81e63cd0485b2e59e4175b40127cfd3f061ab1d21d7f416bbdf794b5f75102d14bafc079d24a3c8c8c80500dd63e63187fbaec7ea67e320b979ad4' --compressed -o netease2018.json")
df <- read_json('netease2018.json')

我的数据文件可以点击这里下载:

netease2018.json

然后我们一步步看:

R
1
2
3
4
5
6
7
8
9
10
11
> # 这一年在网易云听这么多首歌曲:
> df$data$psc
[1] 358
>
> # 我听到的最多的歌词是:
> df$data$kw
[1] "时光"
>
> # 一共听到了这么多次:
> df$data$kwc
[1] 109
R
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
# 包含这个词的歌曲有:
df$data$lyr
lyr <- data.frame(
song_id = NA,
song_name = NA,
author = NA,
lyric = NA,
word = NA
)
for(i in 1:length(df$data$lyr)){
lyr <- rbind(lyr, data.frame(
song_id = df$data$lyr[[i]]$sid,
song_name = df$data$lyr[[i]]$sn,
author = df$data$lyr[[i]]$an,
lyric = df$data$lyr[[i]]$lyc,
word = df$data$lyr[[i]]$w
))
};rm(i)

lyr <- subset(lyr, !is.na(lyr$song_name))

导出为 md 表格:

R
1
knitr::kable(lyr)
song_id song_name author lyric word
2 33875542 铃儿铛铛 玄觞 摇过旧时光, 但是多年之后你却独自迂回他乡 时光
3 26902457 传说 梦璟 SAYA 传说不承认时光匆匆 时光
4 387635 假如 信乐团 假如时光到流 我能做什么 时光
5 33781754 铃儿铛铛 萧忆情 Alex 摇过旧时光 时光
6 536099160 不染 毛不易 心中的花枯萎 时光它去不回 时光

记得去年我的关键词是遇见

R
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
> # 今年我有这么多天深夜12点后还在听歌:
> df$data$mdc
[1] 34
>
> # 我听的最多的一首歌是:
> df$data$mrsn
[1] "借我(Cover:谢春花)"
>
> # 这首歌我听了:
> df$data$mrspc
[1] 93
>
> # 我的年度歌手是:
> df$data$mdan
[1] "银临/Aki阿杰"
>
> # 这里还有一张她的照片:
> df$data$arul
[1] "http://p4.music.126.net/SC4xC0MMlPC4nViAO0768g==/109951163676566884.jpg"
>
> # 下载下来:
> download.file(df$data$arul, "银临.jpg")

R
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
# 她的这十首歌曲我听的次数最多
df$data$arstp

arstp <- data.frame(
song_id = NA,
song_name = NA,
author = NA,
count = NA
)
for(i in 1:length(df$data$arstp)){
arstp <- rbind(arstp, data.frame(
song_id = df$data$arstp[[i]]$sid,
song_name = df$data$arstp[[i]]$sn,
author = df$data$arstp[[i]]$an,
count = df$data$arstp[[i]]$pc
))
};rm(i)

arstp <- subset(arstp, !is.na(arstp$song_name))
arstp$song_name <- gsub(pattern = "(.+)", replacement = "", arstp$song_name)
arstp$song_name <- gsub(pattern = "(.+)~", replacement = "", arstp$song_name)
arstp$song_name <- factor(arstp$song_name,
levels = arstp[order(arstp$count),]$song_name)
song_id song_name author count
30352891 牵丝戏 银临,Aki 阿杰 136
435306744 东风志 银临,慕寒 101
520614783 青原樱 银临 87
534540013 乐游记 银临,徐梦圆 64
550995874 千秋令 银临,KBShinya 48
532950290 菩萨蛮 银临 47
29379418 眉目如画 银临 30
34187315 潜别离 洪尘,银临 30
28188429 黄道十二宫 银临,Tacke 竹桑 22
504686859 是风动 银临,河图 22
R
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
library(ggplot2)
library(hrbrthemes)
ggplot(
data = arstp,
aes(x = factor(song_name),
y = count)
) +
geom_col(aes(fill = song_name)) +
geom_text(aes(x = song_name, y = count + 6, label = paste0(count, '次')),
family = 'STSong', size = 4) +
guides(fill = 'none') +
theme_ipsum(
base_family = 'STSong'
) +
coord_flip() +
theme(axis.title = element_blank()) +
scale_fill_brewer(palette = 'Set3') +
labs(title = '2018年听歌次数Top10',
subtitle = '演唱:银临')

R
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
# 2018年我听的次数最多的几首歌
df$data$stp

stp <- data.frame(
song_id = NA,
song_name = NA,
author = NA,
count = NA
)
for(i in 1:length(df$data$stp)){
stp <- rbind(stp, data.frame(
song_id = df$data$stp[[i]]$sid,
song_name = df$data$stp[[i]]$sn,
author = df$data$stp[[i]]$an,
count = df$data$stp[[i]]$pc
))
};rm(i)
stp <- subset(stp, !is.na(stp$song_name))
stp$song_name <- gsub(pattern = "\\(.+\\)", replacement = "", stp$song_name)
stp$song_name <- gsub(pattern = "(.+)", replacement = "", stp$song_name)
stp$song_name <- factor(stp$song_name,
levels = stp[order(stp$count),]$song_name)
song_id song_name author count
28288219 柸中有雪 君子 123
28955099 风萤月 小爱的妈 99
29719445 拂雪 不才 74
30352891 牵丝戏 银临/Aki 阿杰 136
31912093 满月已霜 云の泣 119
422429143 四时令 五色石南叶/慕寒/小千/朱强 81
430685673 春庭雪 橙翼 187
435306744 东风志 银临/慕寒 101
442518542 借我 汐言 93
520614783 青原樱 银临 87
R
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
ggplot(
data = stp,
aes(x = factor(song_name),
y = count)
) +
geom_col(aes(fill = song_name)) +
geom_text(aes(x = song_name, y = count + 6, label = paste0(count, '次')),
family = 'STSong', size = 4) +
guides(fill = 'none') +
theme_ipsum(
base_family = 'STSong'
) +
coord_flip() +
theme(axis.title = element_blank()) +
scale_fill_brewer(palette = 'Set3') +
labs(title = '2018年听歌次数Top10',
subtitle = '全部歌曲')

最后再截图保存:












# R

评论

Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×