1
0
Code Issues Pull Requests Projects Releases Wiki Activity GitHub Gitee
This commit is contained in:
程序员小墨 2022-10-19 13:37:06 +08:00
parent c17c3ae5a1
commit 8451e7a849
3 changed files with 85 additions and 33 deletions

View File

@ -2,19 +2,19 @@ CREATE DATABASE `neteaseMusic` CHARACTER SET 'utf8mb4' COLLATE 'utf8mb4_general_
USE `neteaseMusic`;
CREATE TABLE `song` (
`song_id` int(10) unsigned NOT NULL COMMENT '歌曲id',
`title` varchar(500)NOT NULL COMMENT '歌曲名',
`title` varchar(500) NOT NULL COMMENT '歌曲名',
`type` tinyint(4) NOT NULL COMMENT ' 0: 一般类型 1: 通过云盘上传的音乐,网易云不存在公开对应 2: 通过云盘上传的音乐,网易云存在公开对应',
`alias` json DEFAULT NULL COMMENT '歌曲别名JSON格式数组',
`pop` float DEFAULT NULL COMMENT '歌曲热度',
`fee` tinyint(4) DEFAULT NULL COMMENT '版权 0: 免费或无版权 1: VIP 歌曲 4: 购买专辑 8: 非会员可免费播放低音质,会员可播放高音质及下载 fee 为 1 或 8 的歌曲均可单独购买 2 元单曲',
`quality` varchar(500)NOT NULL COMMENT '高/中/低/无损质量文件信息',
`quality` varchar(500) NOT NULL COMMENT '高/中/低/无损质量文件信息',
`cd` varchar(255) NOT NULL COMMENT 'None或如"04", "1/2", "3", "null"的字符串表示歌曲属于专辑中第几张CD对应音频文件的Tag',
`no` int(10) unsigned DEFAULT NULL COMMENT '表示歌曲属于CD中第几曲0表示没有这个字段对应音频文件的Tag',
`dj_id` int(10) unsigned DEFAULT NULL COMMENT '0: 不是DJ节目 其他是DJ节目表示DJ ID',
`s_id` int(10) unsigned DEFAULT NULL COMMENT '对于t == 2的歌曲表示匹配到的公开版本歌曲ID',
`origin_cover_type` tinyint(4) NOT NULL DEFAULT '0' COMMENT '0: 未知 1: 原曲 2: 翻唱',
`image` varchar(200)DEFAULT NULL COMMENT '封面图 http://p1.music.126.net/ 后面的部分',
`pub_date` varchar(100)DEFAULT NULL COMMENT '发布日期(弃用)',
`image` varchar(200) DEFAULT NULL COMMENT '封面图 http://p1.music.126.net/ 后面的部分',
`pub_date` varchar(100) DEFAULT NULL COMMENT '发布日期(弃用)',
`pub_time` bigint(20) unsigned DEFAULT NULL COMMENT '发布日期 毫秒为单位的Unix时间戳',
`no_copyright_rcmd` varchar(255) DEFAULT NULL COMMENT 'None表示可以播非空表示无版权',
`mv` int(10) unsigned DEFAULT NULL COMMENT '非零表示有MV ID',
@ -24,7 +24,8 @@ CREATE TABLE `song` (
`modify_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '最后更新时间',
`data_version` tinyint(4) NOT NULL DEFAULT '1' COMMENT '数据记录版本(如果有字段调整则整体+1)',
PRIMARY KEY (`song_id`),
KEY `song_id` (`song_id`)
KEY `song_id` (`song_id`),
KEY `data_version` (`data_version`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;
CREATE TABLE `artist` (
@ -54,6 +55,65 @@ CREATE TABLE `album` (
KEY `album_id` (`album_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;
CREATE TABLE `playlist` (
`playlist_id` int(10) unsigned NOT NULL COMMENT '歌单id',
`title` varchar(200) NOT NULL COMMENT '歌单名',
`english_title` varchar(200) DEFAULT NULL COMMENT '歌单名(英文)',
`description` varchar(1500) NOT NULL COMMENT '歌单简介',
`user_id` bigint(20) unsigned NOT NULL COMMENT '用户id',
`tags` json DEFAULT NULL COMMENT '歌单标签JSON格式数组',
`alg_tags` json DEFAULT NULL COMMENT '歌单标签JSON格式数组',
`playlist_create_time` bigint(20) unsigned DEFAULT NULL COMMENT '创建日期',
`playlist_update_time` bigint(20) unsigned DEFAULT NULL COMMENT '更新日期',
-- 数据
`track_count` int(10) unsigned NOT NULL COMMENT '歌单歌曲数',
`play_count` int(10) unsigned NOT NULL COMMENT '歌单播放数',
`subscribed_count` int(10) unsigned NOT NULL COMMENT '歌单收藏数',
`share_count` int(10) unsigned NOT NULL COMMENT '歌单分享数',
`comment_count` int(10) unsigned NOT NULL COMMENT '歌单评论数',
-- 封面图
`cover_image` varchar(200) NOT NULL COMMENT '封面图 http://p1.music.126.net/ 后面的部分',
`title_image` varchar(200) DEFAULT NULL COMMENT '封面图 http://p1.music.126.net/ 后面的部分',
`background_cover` varchar(200) DEFAULT NULL COMMENT '封面图 http://p1.music.126.net/ 后面的部分',
-- 状态码
`ordered` tinyint(4) NULL COMMENT '排序 0-false 1-true',
`copied` tinyint(4) NULL COMMENT '是否复制 0-false 1-true',
`status` tinyint(4) DEFAULT NULL COMMENT '保留状态码',
`privacy` tinyint(4) DEFAULT NULL COMMENT '保留状态码',
`ad_type` tinyint(4) DEFAULT NULL COMMENT '保留状态码',
`special_type` tinyint(4) DEFAULT NULL COMMENT '保留状态码',
`official_playlist_type` tinyint(4) DEFAULT NULL COMMENT '保留状态码',
`op_recommend` tinyint(4) DEFAULT NULL COMMENT '保留状态码 0-false 1-true',
`high_quality` tinyint(4) DEFAULT NULL COMMENT '保留状态码 0-false 1-true',
`new_imported` tinyint(4) DEFAULT NULL COMMENT '保留状态码 0-false 1-true',
`update_frequency` varchar(100) DEFAULT NULL COMMENT '保留字段',
`grade_status` varchar(20) DEFAULT NULL COMMENT '保留字段',
`score` varchar(20) DEFAULT NULL COMMENT '保留字段',
-- 后期调整字段
`creator` json DEFAULT NULL COMMENT '保留字段JSON格式数组',
`video_ids` json DEFAULT NULL COMMENT '保留字段JSON格式数组',
`videos` json DEFAULT NULL COMMENT '保留字段JSON格式数组',
`banned_track_ids` json DEFAULT NULL COMMENT '保留字段JSON格式数组',
`remix_video` json DEFAULT NULL COMMENT '保留字段JSON格式数组',
-- 数据信息
`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '爬取时间',
`modify_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '最后更新时间',
PRIMARY KEY (`playlist_id`),
KEY `playlist_id` (`playlist_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;
CREATE TABLE `song_playlist_relation` (
`song_id` int(10) unsigned NOT NULL COMMENT '歌曲id',
`playlist_id` int(10) unsigned NOT NULL COMMENT '歌单id',
`alg` varchar(20) DEFAULT NULL COMMENT '保留字段',
`rcmdReason` varchar(20) DEFAULT NULL COMMENT '保留字段',
`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '爬取时间',
`modify_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '最后更新时间',
PRIMARY KEY (`song_id`, `playlist_id`),
KEY `song_id` (`song_id`),
KEY `playlist_id` (`playlist_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;
CREATE TABLE `song_album_relation` (
`song_id` int(10) unsigned NOT NULL COMMENT '歌曲id',
`album_id` int(10) unsigned NOT NULL COMMENT '专辑id',
@ -123,6 +183,17 @@ CREATE TABLE `comment_progress` (
KEY `current_status` (`current_status`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;
CREATE TABLE `category` (
`id` int NOT NULL AUTO_INCREMENT COMMENT '分类id',
`qianqian_id` int DEFAULT NULL COMMENT '千千音乐id',
`netease_id` int DEFAULT NULL COMMENT '网易音乐id',
`title` varchar(255) NOT NULL COMMENT '分类名称',
`qianqian_group` varchar(255) DEFAULT NULL COMMENT '分类所属分组',
`qianqian_group_chinese` varchar(255) DEFAULT NULL COMMENT '分类所属分组(中文)',
PRIMARY KEY (`id`),
UNIQUE KEY `title` (`title`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;
CREATE TABLE `log` (
`id` int(10) unsigned NOT NULL COMMENT 'id',
`name` varchar(200) NOT NULL COMMENT '方法/数据库',

View File

@ -29,6 +29,7 @@ async function fetchAll({ args = {} }) {
var songIds = await dbUtils.query(sql, []);
songIds = songIds.map(item => item.song_id);
songIds = Array.from(new Set(songIds)); // 去重
// 0 - 100, 200 - 399, 400 - ..., ... - songIds.length-1
// 0 1 2 count-1

View File

@ -1,47 +1,27 @@
cd C:\Users\Coz\Desktop\tools\
cd /www/neteasemusic/tools
-- 本地
node index --utils song --min 1900000000 --max 2000000000 --order DESC #
node index --utils song --min 1900000000 --max 2000000000 --order ASC #
node index --utils song --min 1800000000 --max 1900000000 --order DESC #
-- Linux服务器
node index --utils song --min 1800000000 --max 2000000000 --order DESC #
node index --utils song --min 1290000000 --max 1500000000 --order DESC #
-- Windows服务器
node index --utils song --min 400000000 --max 1000000000 --order ASC #
node index --utils song --min 0 --max 400000000 --order ASC #
#############################################################################################
-- 完成: 36000000-38000000 72000000-96000000 139000000-151000000
-- Windows 服务器
node index --utils album --min 134000000 --max 160000000 #
-- 本机
node index --utils album --min 0 --max 134000000 #
#############################################################################################
-- 完成: 38000000-55000000
-- Windows服务器
node index --utils artist --min 0 --max 55000000 #
node index --utils artist #
#############################################################################################
-- 本机
node index --utils comment --min 1800000000 --max 2000000000 --order DESC --limit 2000 #
-- Windows服务器
node index --utils comment --min 1290000000 --max 1500000000 --order DESC --limit 2000 #
node index --utils comment --min 400000000 --max 1000000000 --order ASC --limit 2000 #
-- Linux服务器
node index --utils comment --min 0 --max 400000000 --order ASC --limit 2000 #
node index --utils comment --min 1800000000 --max 2000000000 --order DESC #
node index --utils comment --min 1290000000 --max 1500000000 --order DESC #
node index --utils comment --min 400000000 --max 1000000000 --order ASC #
node index --utils comment --min 0 --max 400000000 --order ASC #
#############################################################################################
-- 完成: 40000000-460000000 500000000-560000000
node index --utils lyric --min 0 --max 1950000000 #
-- Windows服务器
node index --utils lyric --min 1800000000 --max 1950000000 #
node index --utils lyric --min 1950000000 --max 2000000000 #
node index --utils lyric --min 0 --max 400000000 #
-- 本机
node index --utils lyric --min 1800000000 --max 2000000000 #
node index --utils lyric --min 400000000 --max 1000000000 #
node index --utils lyric --min 0 --max 400000000 #
后期:
考虑歌曲别名 例如https://music.163.com/#/song?id=26830207
评论的更新
爬取歌单playlist