热搜榜单
热搜榜单
This commit is contained in:
@@ -117,14 +117,65 @@ header {
|
|||||||
}
|
}
|
||||||
|
|
||||||
header h1 {
|
header h1 {
|
||||||
background: linear-gradient(135deg, #4096ff, #ff7a45);
|
display: flex;
|
||||||
-webkit-background-clip: text;
|
align-items: center;
|
||||||
background-clip: text;
|
justify-content: center;
|
||||||
color: transparent;
|
|
||||||
margin-bottom: 14px;
|
margin-bottom: 14px;
|
||||||
font-size: 2.4rem;
|
font-size: 2.4rem;
|
||||||
font-weight: 700;
|
font-weight: 700;
|
||||||
letter-spacing: -0.5px;
|
letter-spacing: -0.5px;
|
||||||
|
flex-wrap: wrap;
|
||||||
|
}
|
||||||
|
|
||||||
|
header h1 .icon {
|
||||||
|
margin-right: 10px;
|
||||||
|
font-size: 2.6rem;
|
||||||
|
animation: pulse 2s infinite ease-in-out;
|
||||||
|
}
|
||||||
|
|
||||||
|
header h1 .title-text {
|
||||||
|
background: linear-gradient(135deg, #4096ff, #ff7a45);
|
||||||
|
-webkit-background-clip: text;
|
||||||
|
background-clip: text;
|
||||||
|
color: transparent;
|
||||||
|
}
|
||||||
|
|
||||||
|
header h1 .update-badge {
|
||||||
|
font-size: 0.9rem;
|
||||||
|
background: linear-gradient(135deg, #ff7a45, #ff4d4f);
|
||||||
|
color: white;
|
||||||
|
padding: 4px 10px;
|
||||||
|
border-radius: 20px;
|
||||||
|
margin-left: 12px;
|
||||||
|
font-weight: 500;
|
||||||
|
box-shadow: 0 2px 8px rgba(255, 122, 69, 0.3);
|
||||||
|
animation: float 3s infinite ease-in-out;
|
||||||
|
}
|
||||||
|
|
||||||
|
.header-desc {
|
||||||
|
color: #666;
|
||||||
|
font-size: 1.1rem;
|
||||||
|
font-weight: 500;
|
||||||
|
letter-spacing: 0.5px;
|
||||||
|
margin-top: 10px;
|
||||||
|
}
|
||||||
|
|
||||||
|
@keyframes pulse {
|
||||||
|
0%, 100% {
|
||||||
|
transform: scale(1);
|
||||||
|
}
|
||||||
|
50% {
|
||||||
|
transform: scale(1.1);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@keyframes float {
|
||||||
|
0%, 100% {
|
||||||
|
transform: translateY(0);
|
||||||
|
}
|
||||||
|
50% {
|
||||||
|
transform: translateY(-5px);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.update-time {
|
.update-time {
|
||||||
@@ -135,10 +186,57 @@ header h1 {
|
|||||||
border-radius: 24px;
|
border-radius: 24px;
|
||||||
display: inline-block;
|
display: inline-block;
|
||||||
box-shadow: 0 2px 8px rgba(0, 0, 0, 0.04);
|
box-shadow: 0 2px 8px rgba(0, 0, 0, 0.04);
|
||||||
|
.movie-list {
|
||||||
|
display: grid;
|
||||||
|
grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
|
||||||
|
gap: 24px;
|
||||||
|
margin-top: 24px;
|
||||||
|
animation: fadeInUp 0.8s ease-out;
|
||||||
}
|
}
|
||||||
|
|
||||||
.hot-list {
|
@keyframes fadeInUp {
|
||||||
list-style: none;
|
from {
|
||||||
|
opacity: 0;
|
||||||
|
transform: translateY(20px);
|
||||||
|
}
|
||||||
|
to {
|
||||||
|
opacity: 1;
|
||||||
|
transform: translateY(0);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.movie-item {
|
||||||
|
padding: 20px;
|
||||||
|
border-radius: 12px;
|
||||||
|
background-color: white;
|
||||||
|
box-shadow: 0 4px 12px rgba(0, 0, 0, 0.04);
|
||||||
|
transition: all 0.3s ease;
|
||||||
|
display: flex;
|
||||||
|
flex-direction: column;
|
||||||
|
border: 1px solid rgba(0, 0, 0, 0.03);
|
||||||
|
overflow: hidden;
|
||||||
|
position: relative;
|
||||||
|
}
|
||||||
|
|
||||||
|
.movie-item:hover {
|
||||||
|
transform: translateY(-5px);
|
||||||
|
box-shadow: 0 12px 28px rgba(0, 0, 0, 0.1);
|
||||||
|
border-color: rgba(64, 169, 255, 0.3);
|
||||||
|
}
|
||||||
|
|
||||||
|
.movie-item.top-1 {
|
||||||
|
background: linear-gradient(to bottom right, rgba(255, 215, 0, 0.1), white);
|
||||||
|
border-color: rgba(255, 215, 0, 0.3);
|
||||||
|
}
|
||||||
|
|
||||||
|
.movie-item.top-2 {
|
||||||
|
background: linear-gradient(to bottom right, rgba(192, 192, 192, 0.1), white);
|
||||||
|
border-color: rgba(192, 192, 192, 0.3);
|
||||||
|
}
|
||||||
|
|
||||||
|
.movie-item.top-3 {
|
||||||
|
background: linear-gradient(to bottom right, rgba(205, 127, 50, 0.1), white);
|
||||||
|
border-color: rgba(205, 127, 50, 0.3);
|
||||||
}
|
}
|
||||||
|
|
||||||
.hot-item {
|
.hot-item {
|
||||||
@@ -159,20 +257,52 @@ header h1 {
|
|||||||
border-color: rgba(64, 169, 255, 0.3);
|
border-color: rgba(64, 169, 255, 0.3);
|
||||||
}
|
}
|
||||||
|
|
||||||
.hot-rank {
|
.rank-badge {
|
||||||
|
position: absolute;
|
||||||
|
top: 10px;
|
||||||
|
left: 10px;
|
||||||
font-size: 1.2rem;
|
font-size: 1.2rem;
|
||||||
font-weight: bold;
|
font-weight: bold;
|
||||||
color: #4096ff;
|
color: #4096ff;
|
||||||
margin-right: 18px;
|
|
||||||
min-width: 38px;
|
min-width: 38px;
|
||||||
text-align: center;
|
text-align: center;
|
||||||
background-color: rgba(64, 169, 255, 0.1);
|
background-color: rgba(255, 255, 255, 0.9);
|
||||||
border-radius: 50%;
|
border-radius: 50%;
|
||||||
width: 38px;
|
width: 38px;
|
||||||
height: 38px;
|
height: 38px;
|
||||||
display: flex;
|
display: flex;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
justify-content: center;
|
justify-content: center;
|
||||||
|
box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
|
||||||
|
z-index: 2;
|
||||||
|
transition: all 0.3s ease;
|
||||||
|
}
|
||||||
|
|
||||||
|
.movie-item:hover .rank-badge {
|
||||||
|
transform: scale(1.1);
|
||||||
|
}
|
||||||
|
|
||||||
|
.rank-badge.gold {
|
||||||
|
background: linear-gradient(135deg, #ffd700, #ffb700);
|
||||||
|
color: white;
|
||||||
|
box-shadow: 0 2px 10px rgba(255, 215, 0, 0.4);
|
||||||
|
}
|
||||||
|
|
||||||
|
.rank-badge.silver {
|
||||||
|
background: linear-gradient(135deg, #c0c0c0, #a0a0a0);
|
||||||
|
color: white;
|
||||||
|
box-shadow: 0 2px 10px rgba(192, 192, 192, 0.4);
|
||||||
|
}
|
||||||
|
|
||||||
|
.rank-badge.bronze {
|
||||||
|
background: linear-gradient(135deg, #cd7f32, #b06728);
|
||||||
|
color: white;
|
||||||
|
box-shadow: 0 2px 10px rgba(205, 127, 50, 0.4);
|
||||||
|
}
|
||||||
|
|
||||||
|
.rank-badge.regular {
|
||||||
|
background: linear-gradient(135deg, #f0f0f0, #e0e0e0);
|
||||||
|
color: #666;
|
||||||
}
|
}
|
||||||
|
|
||||||
.hot-rank.top-1 {
|
.hot-rank.top-1 {
|
||||||
@@ -190,24 +320,50 @@ header h1 {
|
|||||||
color: white;
|
color: white;
|
||||||
}
|
}
|
||||||
|
|
||||||
.hot-content {
|
|
||||||
|
|
||||||
|
.movie-info {
|
||||||
|
padding: 25px 0 5px;
|
||||||
flex: 1;
|
flex: 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
.hot-title {
|
.movie-name {
|
||||||
font-size: 1.15rem;
|
font-size: 1.15rem;
|
||||||
margin-bottom: 8px;
|
margin-bottom: 8px;
|
||||||
color: #333;
|
color: #333;
|
||||||
text-decoration: none;
|
font-weight: 600;
|
||||||
display: block;
|
line-height: 1.4;
|
||||||
line-height: 1.5;
|
display: -webkit-box;
|
||||||
font-weight: 500;
|
-webkit-line-clamp: 2;
|
||||||
transition: color 0.2s ease;
|
-webkit-box-orient: vertical;
|
||||||
|
overflow: hidden;
|
||||||
|
text-overflow: ellipsis;
|
||||||
}
|
}
|
||||||
|
|
||||||
.hot-title:hover {
|
.movie-detail {
|
||||||
color: #4096ff;
|
color: #666;
|
||||||
text-decoration: none;
|
font-size: 0.9rem;
|
||||||
|
margin-bottom: 5px;
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
.movie-detail .label {
|
||||||
|
color: #999;
|
||||||
|
margin-right: 5px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.movie-boxoffice {
|
||||||
|
font-weight: 600;
|
||||||
|
color: #ff7a45;
|
||||||
|
font-size: 1.1rem;
|
||||||
|
margin-top: 10px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.movie-boxoffice .currency {
|
||||||
|
font-size: 0.85rem;
|
||||||
|
color: #999;
|
||||||
|
margin-right: 2px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.loading {
|
.loading {
|
||||||
|
|||||||
@@ -18,10 +18,11 @@
|
|||||||
<!-- 页面头部 -->
|
<!-- 页面头部 -->
|
||||||
<header class="header">
|
<header class="header">
|
||||||
<h1>
|
<h1>
|
||||||
<span>🎬</span>
|
<span class="icon">🎬</span>
|
||||||
猫眼票房排行榜(时更)
|
<span class="title-text">猫眼票房排行榜</span>
|
||||||
|
<span class="update-badge">实时更新</span>
|
||||||
</h1>
|
</h1>
|
||||||
<p>展示全球电影总票房排行榜,数据来自权威源头,稳定实时</p>
|
<p class="header-desc">全球电影总票房榜单 | 权威数据 | 实时更新</p>
|
||||||
</header>
|
</header>
|
||||||
|
|
||||||
<!-- 加载状态 -->
|
<!-- 加载状态 -->
|
||||||
|
|||||||
@@ -156,18 +156,6 @@ function renderRanking(payload) {
|
|||||||
|
|
||||||
// 渲染列表
|
// 渲染列表
|
||||||
const html = `
|
const html = `
|
||||||
<section class="stats-container">
|
|
||||||
<div class="stats-grid">
|
|
||||||
<div class="stat-item">
|
|
||||||
<div class="stat-value" id="stats-total">${list.length}</div>
|
|
||||||
<div class="stat-label">入榜影片数量</div>
|
|
||||||
</div>
|
|
||||||
<div class="stat-item">
|
|
||||||
<div class="stat-value" id="stats-top10">${Math.min(10, list.length)}</div>
|
|
||||||
<div class="stat-label">TOP10 数量</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</section>
|
|
||||||
<section class="ranking-container">
|
<section class="ranking-container">
|
||||||
<h2 class="ranking-title">全球电影总票房排行榜</h2>
|
<h2 class="ranking-title">全球电影总票房排行榜</h2>
|
||||||
<div class="movie-list">
|
<div class="movie-list">
|
||||||
@@ -182,37 +170,56 @@ function renderRanking(payload) {
|
|||||||
elements.container.classList.add('fade-in');
|
elements.container.classList.add('fade-in');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 格式化票房数据,将数字转换为更易读的形式
|
||||||
|
function formatBoxOffice(value) {
|
||||||
|
if (!value) return '未知';
|
||||||
|
|
||||||
|
// 将字符串转换为数字
|
||||||
|
const num = typeof value === 'string' ? parseFloat(value.replace(/[^0-9.]/g, '')) : value;
|
||||||
|
|
||||||
|
if (isNaN(num)) return value;
|
||||||
|
|
||||||
|
if (num >= 100000000) {
|
||||||
|
return (num / 100000000).toFixed(2) + ' 亿';
|
||||||
|
} else if (num >= 10000) {
|
||||||
|
return (num / 10000).toFixed(2) + ' 万';
|
||||||
|
} else {
|
||||||
|
return num.toLocaleString();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
function renderMovieItem(item) {
|
function renderMovieItem(item) {
|
||||||
const rank = item.rank;
|
const rank = item.rank;
|
||||||
const cls = rank === 1 ? 'top-1' : rank === 2 ? 'top-2' : rank === 3 ? 'top-3' : '';
|
const cls = rank === 1 ? 'top-1' : rank === 2 ? 'top-2' : rank === 3 ? 'top-3' : '';
|
||||||
const badgeCls = rank === 1 ? 'gold' : rank === 2 ? 'silver' : rank === 3 ? 'bronze' : 'regular';
|
const badgeCls = rank === 1 ? 'gold' : rank === 2 ? 'silver' : rank === 3 ? 'bronze' : 'regular';
|
||||||
|
|
||||||
// 使用猫眼ID获取电影海报图片 - 使用更可靠的图片源
|
// 格式化票房数据
|
||||||
const posterUrl = `https://img.maoyan.com/movie/poster/1${item.maoyan_id}.jpg`;
|
const boxOffice = formatBoxOffice(item.boxoffice || item.box_office);
|
||||||
// 备用图片源
|
|
||||||
const backupPosterUrl = `https://p0.pipi.cn/mmdb/fb738633ac80c2f8a7a48e5b465128${item.maoyan_id % 10}/${item.maoyan_id}.jpg?imageView2/1/w/160/h/220`;
|
// 美化排名显示
|
||||||
|
let rankDisplay;
|
||||||
|
if (rank === 1) {
|
||||||
|
rankDisplay = '🏆 1';
|
||||||
|
} else if (rank === 2) {
|
||||||
|
rankDisplay = '🥈 2';
|
||||||
|
} else if (rank === 3) {
|
||||||
|
rankDisplay = '🥉 3';
|
||||||
|
} else {
|
||||||
|
rankDisplay = `NO.${rank}`;
|
||||||
|
}
|
||||||
|
|
||||||
return `
|
return `
|
||||||
<div class="movie-item ${cls}">
|
<div class="movie-item ${cls}">
|
||||||
<div class="rank-badge ${badgeCls}">${rank}</div>
|
<div class="rank-badge ${badgeCls}">${rankDisplay}</div>
|
||||||
<div class="movie-poster">
|
|
||||||
<img src="${posterUrl}" alt="${escapeHtml(item.movie_name)}" onerror="this.onerror=null; this.src='${backupPosterUrl}'; this.onerror=function(){this.src='data:image/svg+xml;charset=utf-8,%3Csvg xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22 width%3D%22160%22 height%3D%22220%22 viewBox%3D%220 0 160 220%22%3E%3Crect fill%3D%22%23f0f0f0%22 width%3D%22160%22 height%3D%22220%22%2F%3E%3Ctext fill%3D%22%23999%22 font-family%3D%22Arial%2CSans-serif%22 font-size%3D%2216%22 x%3D%2250%25%22 y%3D%2250%25%22 text-anchor%3D%22middle%22 dominant-baseline%3D%22middle%22%3E无图片%3C%2Ftext%3E%3C%2Fsvg%3E';}">
|
|
||||||
</div>
|
|
||||||
<div class="movie-info">
|
<div class="movie-info">
|
||||||
<div class="rank-number">#${rank}</div>
|
|
||||||
<div class="movie-details">
|
|
||||||
<div class="movie-name">${escapeHtml(item.movie_name)}</div>
|
<div class="movie-name">${escapeHtml(item.movie_name)}</div>
|
||||||
<div class="movie-year">上映年份:${escapeHtml(item.release_year || '')}</div>
|
<div class="movie-detail"><span class="label">上映:</span> ${escapeHtml(item.release_year || '未知')}</div>
|
||||||
|
<div class="movie-boxoffice"><span class="currency">¥</span> ${boxOffice}</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="box-office">
|
</div>`;
|
||||||
<div class="box-office-amount">${formatCurrencyDesc(item.box_office_desc, item.box_office)}</div>
|
|
||||||
<div class="box-office-desc">总票房</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
`;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
function formatCurrencyDesc(desc, num) {
|
function formatCurrencyDesc(desc, num) {
|
||||||
if (desc && typeof desc === 'string' && desc.trim()) return desc;
|
if (desc && typeof desc === 'string' && desc.trim()) return desc;
|
||||||
if (typeof num === 'number') {
|
if (typeof num === 'number') {
|
||||||
|
|||||||
194
frontend/60sapi/热搜榜单/网易云榜单/css/responsive.css
Normal file
194
frontend/60sapi/热搜榜单/网易云榜单/css/responsive.css
Normal file
@@ -0,0 +1,194 @@
|
|||||||
|
/* 响应式样式 - 适配不同设备 */
|
||||||
|
|
||||||
|
/* 基础样式 - 移动设备优先 */
|
||||||
|
.container {
|
||||||
|
width: 95%;
|
||||||
|
padding: 15px;
|
||||||
|
margin: 10px auto;
|
||||||
|
}
|
||||||
|
|
||||||
|
header h1 {
|
||||||
|
font-size: 1.5rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
.update-time {
|
||||||
|
font-size: 0.8rem;
|
||||||
|
padding: 6px 12px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.rank-list {
|
||||||
|
grid-template-columns: 1fr;
|
||||||
|
gap: 16px;
|
||||||
|
margin-top: 15px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.rank-item {
|
||||||
|
border-radius: 10px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.rank-cover {
|
||||||
|
height: 160px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.rank-info {
|
||||||
|
padding: 12px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.rank-name {
|
||||||
|
font-size: 1rem;
|
||||||
|
margin-bottom: 6px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.rank-desc {
|
||||||
|
font-size: 0.85rem;
|
||||||
|
margin-bottom: 10px;
|
||||||
|
-webkit-line-clamp: 2;
|
||||||
|
}
|
||||||
|
|
||||||
|
.rank-meta {
|
||||||
|
font-size: 0.75rem;
|
||||||
|
margin-bottom: 10px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.rank-link {
|
||||||
|
padding: 6px 14px;
|
||||||
|
font-size: 0.85rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* 平板设备 */
|
||||||
|
@media screen and (min-width: 768px) {
|
||||||
|
.container {
|
||||||
|
width: 90%;
|
||||||
|
padding: 20px;
|
||||||
|
margin: 15px auto;
|
||||||
|
}
|
||||||
|
|
||||||
|
header h1 {
|
||||||
|
font-size: 1.8rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
.update-time {
|
||||||
|
font-size: 0.85rem;
|
||||||
|
padding: 7px 14px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.rank-list {
|
||||||
|
grid-template-columns: repeat(2, 1fr);
|
||||||
|
gap: 20px;
|
||||||
|
margin-top: 20px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.rank-cover {
|
||||||
|
height: 170px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.rank-info {
|
||||||
|
padding: 15px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.rank-name {
|
||||||
|
font-size: 1.1rem;
|
||||||
|
margin-bottom: 8px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.rank-desc {
|
||||||
|
font-size: 0.9rem;
|
||||||
|
margin-bottom: 12px;
|
||||||
|
-webkit-line-clamp: 3;
|
||||||
|
}
|
||||||
|
|
||||||
|
.rank-meta {
|
||||||
|
font-size: 0.8rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
.rank-link {
|
||||||
|
padding: 7px 16px;
|
||||||
|
font-size: 0.9rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
.loading-spinner {
|
||||||
|
width: 60px;
|
||||||
|
height: 60px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/* 桌面设备 */
|
||||||
|
@media screen and (min-width: 1024px) {
|
||||||
|
.container {
|
||||||
|
width: 85%;
|
||||||
|
max-width: 1200px;
|
||||||
|
margin: 20px auto;
|
||||||
|
}
|
||||||
|
|
||||||
|
header h1 {
|
||||||
|
font-size: 2.2rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
.update-time {
|
||||||
|
font-size: 0.9rem;
|
||||||
|
padding: 8px 16px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.rank-list {
|
||||||
|
grid-template-columns: repeat(3, 1fr);
|
||||||
|
gap: 24px;
|
||||||
|
margin-top: 25px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.rank-cover {
|
||||||
|
height: 180px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.rank-info {
|
||||||
|
padding: 18px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.rank-name {
|
||||||
|
font-size: 1.2rem;
|
||||||
|
margin-bottom: 10px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.rank-desc {
|
||||||
|
font-size: 0.95rem;
|
||||||
|
margin-bottom: 15px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.rank-meta {
|
||||||
|
font-size: 0.85rem;
|
||||||
|
margin-bottom: 15px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.rank-link {
|
||||||
|
padding: 8px 18px;
|
||||||
|
font-size: 0.95rem;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/* 大屏幕设备 */
|
||||||
|
@media screen and (min-width: 1440px) {
|
||||||
|
.container {
|
||||||
|
max-width: 1400px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.rank-list {
|
||||||
|
grid-template-columns: repeat(4, 1fr);
|
||||||
|
gap: 30px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.rank-cover {
|
||||||
|
height: 200px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.rank-name {
|
||||||
|
font-size: 1.25rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
.rank-desc {
|
||||||
|
font-size: 1rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
.rank-link {
|
||||||
|
padding: 10px 20px;
|
||||||
|
font-size: 1rem;
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -96,6 +96,7 @@ body {
|
|||||||
position: relative;
|
position: relative;
|
||||||
min-height: 100vh;
|
min-height: 100vh;
|
||||||
overflow-x: hidden;
|
overflow-x: hidden;
|
||||||
|
line-height: 1.6;
|
||||||
}
|
}
|
||||||
|
|
||||||
.container {
|
.container {
|
||||||
@@ -139,61 +140,106 @@ header h1 {
|
|||||||
box-shadow: 0 2px 8px rgba(0, 0, 0, 0.04);
|
box-shadow: 0 2px 8px rgba(0, 0, 0, 0.04);
|
||||||
}
|
}
|
||||||
|
|
||||||
.hot-list {
|
.rank-list {
|
||||||
list-style: none;
|
display: grid;
|
||||||
|
grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
|
||||||
|
gap: 24px;
|
||||||
|
margin-top: 20px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.hot-item {
|
.rank-item {
|
||||||
padding: 20px;
|
|
||||||
margin-bottom: 16px;
|
|
||||||
border-radius: 12px;
|
|
||||||
background-color: white;
|
background-color: white;
|
||||||
box-shadow: 0 4px 12px rgba(0, 0, 0, 0.04);
|
border-radius: 12px;
|
||||||
|
box-shadow: 0 4px 16px rgba(0, 0, 0, 0.08);
|
||||||
|
overflow: hidden;
|
||||||
transition: all 0.3s ease;
|
transition: all 0.3s ease;
|
||||||
display: flex;
|
display: flex;
|
||||||
align-items: center;
|
flex-direction: column;
|
||||||
border: 1px solid rgba(0, 0, 0, 0.03);
|
border: 1px solid rgba(0, 0, 0, 0.05);
|
||||||
}
|
}
|
||||||
|
|
||||||
.hot-item:hover {
|
.rank-item:hover {
|
||||||
transform: translateY(-3px);
|
transform: translateY(-5px);
|
||||||
box-shadow: 0 8px 24px rgba(0, 0, 0, 0.08);
|
box-shadow: 0 8px 24px rgba(0, 0, 0, 0.12);
|
||||||
border-color: rgba(64, 169, 255, 0.3);
|
border-color: rgba(236, 65, 65, 0.3);
|
||||||
}
|
}
|
||||||
|
|
||||||
.hot-rank {
|
.rank-cover {
|
||||||
font-size: 1.2rem;
|
position: relative;
|
||||||
font-weight: bold;
|
height: 180px;
|
||||||
color: #4096ff;
|
overflow: hidden;
|
||||||
margin-right: 18px;
|
|
||||||
min-width: 38px;
|
|
||||||
text-align: center;
|
|
||||||
background-color: rgba(64, 169, 255, 0.1);
|
|
||||||
border-radius: 50%;
|
|
||||||
width: 38px;
|
|
||||||
height: 38px;
|
|
||||||
display: flex;
|
|
||||||
align-items: center;
|
|
||||||
justify-content: center;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
.hot-rank.top-1 {
|
.rank-cover img {
|
||||||
background: linear-gradient(135deg, #ff4d4f, #ff7a45);
|
width: 100%;
|
||||||
|
height: 100%;
|
||||||
|
object-fit: cover;
|
||||||
|
transition: transform 0.5s ease;
|
||||||
|
}
|
||||||
|
|
||||||
|
.rank-item:hover .rank-cover img {
|
||||||
|
transform: scale(1.05);
|
||||||
|
}
|
||||||
|
|
||||||
|
.rank-update {
|
||||||
|
position: absolute;
|
||||||
|
bottom: 0;
|
||||||
|
right: 0;
|
||||||
|
background: rgba(236, 65, 65, 0.8);
|
||||||
color: white;
|
color: white;
|
||||||
|
padding: 4px 10px;
|
||||||
|
font-size: 0.8rem;
|
||||||
|
border-top-left-radius: 8px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.hot-rank.top-2 {
|
.rank-info {
|
||||||
background: linear-gradient(135deg, #ff7a45, #ffa940);
|
padding: 16px;
|
||||||
color: white;
|
|
||||||
}
|
|
||||||
|
|
||||||
.hot-rank.top-3 {
|
|
||||||
background: linear-gradient(135deg, #ffa940, #ffec3d);
|
|
||||||
color: white;
|
|
||||||
}
|
|
||||||
|
|
||||||
.hot-content {
|
|
||||||
flex: 1;
|
flex: 1;
|
||||||
|
display: flex;
|
||||||
|
flex-direction: column;
|
||||||
|
}
|
||||||
|
|
||||||
|
.rank-name {
|
||||||
|
font-size: 1.2rem;
|
||||||
|
font-weight: 600;
|
||||||
|
margin-bottom: 8px;
|
||||||
|
color: #333;
|
||||||
|
}
|
||||||
|
|
||||||
|
.rank-desc {
|
||||||
|
font-size: 0.9rem;
|
||||||
|
color: #666;
|
||||||
|
margin-bottom: 12px;
|
||||||
|
display: -webkit-box;
|
||||||
|
-webkit-line-clamp: 3;
|
||||||
|
-webkit-box-orient: vertical;
|
||||||
|
overflow: hidden;
|
||||||
|
flex: 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
.rank-meta {
|
||||||
|
font-size: 0.8rem;
|
||||||
|
color: #999;
|
||||||
|
margin-bottom: 12px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.rank-link {
|
||||||
|
display: inline-block;
|
||||||
|
background: linear-gradient(135deg, #ec4141, #ff7a45);
|
||||||
|
color: white;
|
||||||
|
text-decoration: none;
|
||||||
|
padding: 8px 16px;
|
||||||
|
border-radius: 20px;
|
||||||
|
font-size: 0.9rem;
|
||||||
|
text-align: center;
|
||||||
|
transition: all 0.3s ease;
|
||||||
|
box-shadow: 0 2px 8px rgba(236, 65, 65, 0.3);
|
||||||
|
}
|
||||||
|
|
||||||
|
.rank-link:hover {
|
||||||
|
background: linear-gradient(135deg, #d73435, #f06937);
|
||||||
|
box-shadow: 0 4px 12px rgba(236, 65, 65, 0.4);
|
||||||
|
transform: translateY(-2px);
|
||||||
}
|
}
|
||||||
|
|
||||||
.hot-title {
|
.hot-title {
|
||||||
@@ -219,6 +265,45 @@ header h1 {
|
|||||||
font-size: 1.1rem;
|
font-size: 1.1rem;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.loading-spinner {
|
||||||
|
display: inline-block;
|
||||||
|
width: 50px;
|
||||||
|
height: 50px;
|
||||||
|
border: 3px solid rgba(236, 65, 65, 0.3);
|
||||||
|
border-radius: 50%;
|
||||||
|
border-top-color: #ec4141;
|
||||||
|
animation: spin 1s ease-in-out infinite;
|
||||||
|
margin-bottom: 16px;
|
||||||
|
}
|
||||||
|
|
||||||
|
@keyframes spin {
|
||||||
|
to { transform: rotate(360deg); }
|
||||||
|
}
|
||||||
|
|
||||||
|
.error-message {
|
||||||
|
text-align: center;
|
||||||
|
padding: 40px;
|
||||||
|
color: #ff4d4f;
|
||||||
|
font-size: 1.1rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
.retry-button {
|
||||||
|
background: #ec4141;
|
||||||
|
color: white;
|
||||||
|
border: none;
|
||||||
|
padding: 8px 20px;
|
||||||
|
border-radius: 20px;
|
||||||
|
font-size: 0.9rem;
|
||||||
|
margin-top: 16px;
|
||||||
|
cursor: pointer;
|
||||||
|
transition: all 0.3s ease;
|
||||||
|
}
|
||||||
|
|
||||||
|
.retry-button:hover {
|
||||||
|
background: #d73435;
|
||||||
|
box-shadow: 0 2px 8px rgba(236, 65, 65, 0.4);
|
||||||
|
}
|
||||||
|
|
||||||
footer {
|
footer {
|
||||||
text-align: center;
|
text-align: center;
|
||||||
margin-top: 30px;
|
margin-top: 30px;
|
||||||
49
frontend/60sapi/热搜榜单/网易云榜单/index.html
Normal file
49
frontend/60sapi/热搜榜单/网易云榜单/index.html
Normal file
@@ -0,0 +1,49 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<html lang="zh-CN">
|
||||||
|
<head>
|
||||||
|
<meta charset="UTF-8">
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||||
|
<title>网易云音乐榜单 - InfoGenie</title>
|
||||||
|
<meta name="description" content="网易云音乐各类榜单,包括飙升榜、热歌榜、新歌榜等">
|
||||||
|
<link rel="stylesheet" href="./css/background.css">
|
||||||
|
<link rel="stylesheet" href="./css/style.css">
|
||||||
|
<link rel="stylesheet" href="./css/responsive.css">
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<!-- 背景效果 -->
|
||||||
|
<div class="background-container">
|
||||||
|
<div class="modern-gradient"></div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<!-- 音符装饰 -->
|
||||||
|
<div id="music-notes-container"></div>
|
||||||
|
|
||||||
|
<div class="container">
|
||||||
|
<header>
|
||||||
|
<h1>网易云音乐榜单</h1>
|
||||||
|
<div class="update-time" id="update-time">加载中...</div>
|
||||||
|
</header>
|
||||||
|
|
||||||
|
<main>
|
||||||
|
<div id="loading" class="loading">
|
||||||
|
<div class="loading-spinner"></div>
|
||||||
|
<p>正在加载榜单数据...</p>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div id="error-message" class="error-message" style="display: none;">
|
||||||
|
<p>加载失败,请稍后再试</p>
|
||||||
|
<button id="retry-button" class="retry-button">重试</button>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div id="rank-list" class="rank-list" style="display: none;"></div>
|
||||||
|
</main>
|
||||||
|
|
||||||
|
<footer>
|
||||||
|
<p>数据来源:网易云音乐官方API</p>
|
||||||
|
<p>© 2024 InfoGenie - 网易云音乐榜单</p>
|
||||||
|
</footer>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<script src="./js/app.js"></script>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
252
frontend/60sapi/热搜榜单/网易云榜单/js/app.js
Normal file
252
frontend/60sapi/热搜榜单/网易云榜单/js/app.js
Normal file
@@ -0,0 +1,252 @@
|
|||||||
|
/**
|
||||||
|
* 网易云音乐榜单 - 主应用脚本
|
||||||
|
* 功能:获取API数据、渲染榜单、处理错误、自动切换API接口
|
||||||
|
*/
|
||||||
|
|
||||||
|
// 全局变量
|
||||||
|
const apiUrls = [];
|
||||||
|
let currentApiIndex = 0;
|
||||||
|
let rankData = null;
|
||||||
|
|
||||||
|
// DOM元素
|
||||||
|
const loadingElement = document.getElementById('loading');
|
||||||
|
const errorElement = document.getElementById('error-message');
|
||||||
|
const rankListElement = document.getElementById('rank-list');
|
||||||
|
const updateTimeElement = document.getElementById('update-time');
|
||||||
|
const retryButton = document.getElementById('retry-button');
|
||||||
|
|
||||||
|
// 初始化函数
|
||||||
|
async function init() {
|
||||||
|
try {
|
||||||
|
// 获取API接口列表
|
||||||
|
await loadApiUrls();
|
||||||
|
|
||||||
|
// 获取榜单数据
|
||||||
|
await fetchRankData();
|
||||||
|
|
||||||
|
// 添加音符装饰
|
||||||
|
createMusicNotes();
|
||||||
|
} catch (error) {
|
||||||
|
console.error('初始化失败:', error);
|
||||||
|
showError();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// 加载API接口列表
|
||||||
|
async function loadApiUrls() {
|
||||||
|
try {
|
||||||
|
const response = await fetch('./接口集合.json');
|
||||||
|
if (!response.ok) {
|
||||||
|
throw new Error('无法加载API接口列表');
|
||||||
|
}
|
||||||
|
const data = await response.json();
|
||||||
|
if (Array.isArray(data) && data.length > 0) {
|
||||||
|
apiUrls.push(...data);
|
||||||
|
console.log('已加载API接口列表:', apiUrls);
|
||||||
|
} else {
|
||||||
|
throw new Error('API接口列表为空');
|
||||||
|
}
|
||||||
|
} catch (error) {
|
||||||
|
console.error('加载API接口列表失败:', error);
|
||||||
|
// 使用默认API
|
||||||
|
apiUrls.push('https://60s.api.shumengya.top/v2/ncm-rank');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// 获取榜单数据
|
||||||
|
async function fetchRankData() {
|
||||||
|
showLoading();
|
||||||
|
|
||||||
|
// 如果没有API接口,显示错误
|
||||||
|
if (apiUrls.length === 0) {
|
||||||
|
throw new Error('没有可用的API接口');
|
||||||
|
}
|
||||||
|
|
||||||
|
try {
|
||||||
|
const apiUrl = apiUrls[currentApiIndex];
|
||||||
|
const response = await fetch(apiUrl);
|
||||||
|
|
||||||
|
if (!response.ok) {
|
||||||
|
throw new Error(`API请求失败: ${response.status}`);
|
||||||
|
}
|
||||||
|
|
||||||
|
const data = await response.json();
|
||||||
|
|
||||||
|
if (data.code === 200 && data.data && Array.isArray(data.data)) {
|
||||||
|
rankData = data;
|
||||||
|
renderRankList(data.data);
|
||||||
|
updateLastUpdateTime(data);
|
||||||
|
hideLoading();
|
||||||
|
} else {
|
||||||
|
throw new Error('API返回数据格式错误');
|
||||||
|
}
|
||||||
|
} catch (error) {
|
||||||
|
console.error('获取榜单数据失败:', error);
|
||||||
|
// 尝试切换到下一个API
|
||||||
|
if (tryNextApi()) {
|
||||||
|
return fetchRankData();
|
||||||
|
} else {
|
||||||
|
showError();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// 尝试切换到下一个API
|
||||||
|
function tryNextApi() {
|
||||||
|
if (currentApiIndex < apiUrls.length - 1) {
|
||||||
|
currentApiIndex++;
|
||||||
|
console.log(`切换到下一个API: ${apiUrls[currentApiIndex]}`);
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
// 渲染榜单列表
|
||||||
|
function renderRankList(ranks) {
|
||||||
|
if (!Array.isArray(ranks) || ranks.length === 0) {
|
||||||
|
showError('没有榜单数据');
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
rankListElement.innerHTML = '';
|
||||||
|
|
||||||
|
ranks.forEach(rank => {
|
||||||
|
const rankItem = document.createElement('div');
|
||||||
|
rankItem.className = 'rank-item';
|
||||||
|
|
||||||
|
// 构建榜单项HTML
|
||||||
|
rankItem.innerHTML = `
|
||||||
|
<div class="rank-cover">
|
||||||
|
<img src="${rank.cover}" alt="${rank.name}" loading="lazy">
|
||||||
|
<div class="rank-update">${rank.update_frequency || '定期更新'}</div>
|
||||||
|
</div>
|
||||||
|
<div class="rank-info">
|
||||||
|
<h3 class="rank-name">${rank.name}</h3>
|
||||||
|
<p class="rank-desc">${rank.description || '暂无描述'}</p>
|
||||||
|
<div class="rank-meta">
|
||||||
|
<span class="rank-updated">更新: ${formatDate(rank.updated)}</span>
|
||||||
|
</div>
|
||||||
|
<a href="${rank.link}" target="_blank" class="rank-link">查看详情</a>
|
||||||
|
</div>
|
||||||
|
`;
|
||||||
|
|
||||||
|
rankListElement.appendChild(rankItem);
|
||||||
|
});
|
||||||
|
|
||||||
|
rankListElement.style.display = 'grid';
|
||||||
|
}
|
||||||
|
|
||||||
|
// 更新最后更新时间
|
||||||
|
function updateLastUpdateTime(data) {
|
||||||
|
if (data && data.data && data.data.length > 0) {
|
||||||
|
const latestRank = data.data.reduce((latest, current) => {
|
||||||
|
const latestDate = latest.updated_at || 0;
|
||||||
|
const currentDate = current.updated_at || 0;
|
||||||
|
return currentDate > latestDate ? current : latest;
|
||||||
|
}, data.data[0]);
|
||||||
|
|
||||||
|
if (latestRank && latestRank.updated) {
|
||||||
|
updateTimeElement.textContent = `最近更新: ${formatDate(latestRank.updated)}`;
|
||||||
|
} else {
|
||||||
|
updateTimeElement.textContent = '数据已更新';
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// 格式化日期
|
||||||
|
function formatDate(dateStr) {
|
||||||
|
if (!dateStr) return '未知';
|
||||||
|
|
||||||
|
try {
|
||||||
|
const date = new Date(dateStr.replace('2025-', '2024-'));
|
||||||
|
if (isNaN(date.getTime())) return dateStr;
|
||||||
|
|
||||||
|
return date.toLocaleDateString('zh-CN', {
|
||||||
|
year: 'numeric',
|
||||||
|
month: '2-digit',
|
||||||
|
day: '2-digit',
|
||||||
|
hour: '2-digit',
|
||||||
|
minute: '2-digit'
|
||||||
|
}).replace(/\//g, '-');
|
||||||
|
} catch (e) {
|
||||||
|
return dateStr;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// 创建音符装饰
|
||||||
|
function createMusicNotes() {
|
||||||
|
const notesContainer = document.getElementById('music-notes-container');
|
||||||
|
const notes = ['♪', '♫', '♬', '♩', '♭', '♮'];
|
||||||
|
const containerWidth = window.innerWidth;
|
||||||
|
const containerHeight = window.innerHeight;
|
||||||
|
|
||||||
|
// 清空容器
|
||||||
|
notesContainer.innerHTML = '';
|
||||||
|
|
||||||
|
// 创建15个音符
|
||||||
|
for (let i = 0; i < 15; i++) {
|
||||||
|
const note = document.createElement('div');
|
||||||
|
note.className = 'music-note';
|
||||||
|
note.textContent = notes[Math.floor(Math.random() * notes.length)];
|
||||||
|
|
||||||
|
// 随机位置
|
||||||
|
const left = Math.random() * containerWidth;
|
||||||
|
const top = Math.random() * containerHeight;
|
||||||
|
|
||||||
|
// 随机动画延迟
|
||||||
|
const delay = Math.random() * 20;
|
||||||
|
const duration = 15 + Math.random() * 15;
|
||||||
|
|
||||||
|
// 设置样式
|
||||||
|
note.style.left = `${left}px`;
|
||||||
|
note.style.top = `${top}px`;
|
||||||
|
note.style.animationDelay = `${delay}s`;
|
||||||
|
note.style.animationDuration = `${duration}s`;
|
||||||
|
|
||||||
|
notesContainer.appendChild(note);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// 显示加载中
|
||||||
|
function showLoading() {
|
||||||
|
loadingElement.style.display = 'block';
|
||||||
|
errorElement.style.display = 'none';
|
||||||
|
rankListElement.style.display = 'none';
|
||||||
|
}
|
||||||
|
|
||||||
|
// 隐藏加载中
|
||||||
|
function hideLoading() {
|
||||||
|
loadingElement.style.display = 'none';
|
||||||
|
}
|
||||||
|
|
||||||
|
// 显示错误信息
|
||||||
|
function showError(message = '加载失败,请稍后再试') {
|
||||||
|
loadingElement.style.display = 'none';
|
||||||
|
errorElement.querySelector('p').textContent = message;
|
||||||
|
errorElement.style.display = 'block';
|
||||||
|
}
|
||||||
|
|
||||||
|
// 重试按钮点击事件
|
||||||
|
retryButton.addEventListener('click', () => {
|
||||||
|
// 重置API索引
|
||||||
|
currentApiIndex = 0;
|
||||||
|
// 重新获取数据
|
||||||
|
fetchRankData();
|
||||||
|
});
|
||||||
|
|
||||||
|
// 窗口大小改变时重新创建音符
|
||||||
|
window.addEventListener('resize', debounce(createMusicNotes, 300));
|
||||||
|
|
||||||
|
// 防抖函数
|
||||||
|
function debounce(func, wait) {
|
||||||
|
let timeout;
|
||||||
|
return function() {
|
||||||
|
const context = this;
|
||||||
|
const args = arguments;
|
||||||
|
clearTimeout(timeout);
|
||||||
|
timeout = setTimeout(() => func.apply(context, args), wait);
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
// 页面加载完成后初始化
|
||||||
|
document.addEventListener('DOMContentLoaded', init);
|
||||||
3
frontend/60sapi/热搜榜单/网易云榜单/接口集合.json
Normal file
3
frontend/60sapi/热搜榜单/网易云榜单/接口集合.json
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
[
|
||||||
|
"https://60s.api.shumengya.top/v2/ncm-rank"
|
||||||
|
]
|
||||||
750
frontend/60sapi/热搜榜单/网易云榜单/返回接口.json
Normal file
750
frontend/60sapi/热搜榜单/网易云榜单/返回接口.json
Normal file
@@ -0,0 +1,750 @@
|
|||||||
|
{
|
||||||
|
"code": 200,
|
||||||
|
"message": "获取成功。数据来自官方/权威源头,以确保稳定与实时。开源地址 https://github.com/vikiboss/60s,反馈群 595941841",
|
||||||
|
"data": [
|
||||||
|
{
|
||||||
|
"id": 19723756,
|
||||||
|
"name": "飙升榜",
|
||||||
|
"description": "云音乐中每天热度上升最快的100首单曲,每日更新。",
|
||||||
|
"cover": "https://p2.music.126.net/rIi7Qzy2i2Y_1QD7cd0MYA==/109951170048506929.jpg",
|
||||||
|
"update_frequency": "更新78首",
|
||||||
|
"updated": "2025-09-05 08:24:41",
|
||||||
|
"updated_at": 1757031881385,
|
||||||
|
"created": "2014-06-30 15:58:56",
|
||||||
|
"created_at": 1404115136883,
|
||||||
|
"link": "https://music.163.com/#/discover/toplist?id=19723756"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 3779629,
|
||||||
|
"name": "新歌榜",
|
||||||
|
"description": "云音乐新歌榜:云音乐用户一周内收听所有新歌(一月内最新发行) 官方TOP排行榜,每天更新。",
|
||||||
|
"cover": "https://p2.music.126.net/5guhqPBTcIrrhLBotgaT6w==/109951170048511751.jpg",
|
||||||
|
"update_frequency": "刚刚更新",
|
||||||
|
"updated": "2025-09-05 08:24:50",
|
||||||
|
"updated_at": 1757031890587,
|
||||||
|
"created": "2013-09-09 18:09:58",
|
||||||
|
"created_at": 1378721398225,
|
||||||
|
"link": "https://music.163.com/#/discover/toplist?id=3779629"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 2884035,
|
||||||
|
"name": "原创榜",
|
||||||
|
"description": "云音乐独立原创音乐人作品官方榜单,以推荐优秀原创作品为目的。每周四网易云音乐首发。申请网易音乐人:http://music.163.com/nmusician/",
|
||||||
|
"cover": "https://p2.music.126.net/BaP9nrocNTL3gGThysv4eQ==/109951170091896587.jpg",
|
||||||
|
"update_frequency": "每周四更新",
|
||||||
|
"updated": "2025-09-04 10:54:42",
|
||||||
|
"updated_at": 1756954482653,
|
||||||
|
"created": "2013-07-25 14:05:25",
|
||||||
|
"created_at": 1374732325894,
|
||||||
|
"link": "https://music.163.com/#/discover/toplist?id=2884035"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 3778678,
|
||||||
|
"name": "热歌榜",
|
||||||
|
"description": "云音乐热歌榜:云音乐用户一周内收听所有线上歌曲官方TOP排行榜,每日更新。",
|
||||||
|
"cover": "https://p2.music.126.net/0SUEG8yDACfx0Bw2MYFv4Q==/109951170048519512.jpg",
|
||||||
|
"update_frequency": "更新14首",
|
||||||
|
"updated": "2025-09-05 08:25:03",
|
||||||
|
"updated_at": 1757031903733,
|
||||||
|
"created": "2013-09-09 18:10:06",
|
||||||
|
"created_at": 1378721406014,
|
||||||
|
"link": "https://music.163.com/#/discover/toplist?id=3778678"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 991319590,
|
||||||
|
"name": "网易云中文说唱榜",
|
||||||
|
"description": "网易云原创说唱音乐人作品官方榜单,每周五更新。以网易云用户一周播放热度为主,收录2个月内发行的原创说唱作品,按照综合数据排名取前50名。申请网易音乐人:http://music.163.com/nmusician",
|
||||||
|
"cover": "https://p2.music.126.net/GgHbgDfGXHpE2YTchU7IvA==/109951171510498108.jpg",
|
||||||
|
"update_frequency": "每周五更新",
|
||||||
|
"updated": "2025-08-29 10:19:58",
|
||||||
|
"updated_at": 1756433998618,
|
||||||
|
"created": "2017-11-10 13:06:29",
|
||||||
|
"created_at": 1510290389440,
|
||||||
|
"link": "https://music.163.com/#/discover/toplist?id=991319590"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 71384707,
|
||||||
|
"name": "网易云古典榜",
|
||||||
|
"description": "网易云用户一周内收听所有古典音乐官方TOP排行榜,每周四更新。",
|
||||||
|
"cover": "https://p2.music.126.net/urByD_AmfBDBrs7fA9-O8A==/109951167976973225.jpg",
|
||||||
|
"update_frequency": "每周四更新",
|
||||||
|
"updated": "2025-09-04 10:52:54",
|
||||||
|
"updated_at": 1756954374913,
|
||||||
|
"created": "2015-05-07 11:22:00",
|
||||||
|
"created_at": 1430968920537,
|
||||||
|
"link": "https://music.163.com/#/discover/toplist?id=71384707"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 1978921795,
|
||||||
|
"name": "网易云电音榜",
|
||||||
|
"description": "网易云用户一周内收听电子音乐官方TOP排行榜,每周五更新。喜力星电音,用先锋电音带你解锁全新维度和体验!",
|
||||||
|
"cover": "https://p2.music.126.net/hXGObvXfsGtFjFvRhOYAkA==/109951170091888741.jpg",
|
||||||
|
"update_frequency": "每周五更新",
|
||||||
|
"updated": "2025-08-29 12:00:01",
|
||||||
|
"updated_at": 1756440001367,
|
||||||
|
"created": "2017-11-16 17:47:12",
|
||||||
|
"created_at": 1510825632233,
|
||||||
|
"link": "https://music.163.com/#/discover/toplist?id=1978921795"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 14028249541,
|
||||||
|
"name": "网易云全球说唱榜",
|
||||||
|
"description": "想聆听世界的说唱节奏?全球说唱榜每周五更新,聚焦华语地区以外的优秀说唱作品。根据云音乐用户每周播放热度数据,按照综合数据排名取前 50 名。",
|
||||||
|
"cover": "https://p2.music.126.net/0hhFjP6WyIjHYDXKW5E7BA==/109951171535150782.jpg",
|
||||||
|
"update_frequency": "每周五更新",
|
||||||
|
"updated": "2025-08-29 11:51:16",
|
||||||
|
"updated_at": 1756439476712,
|
||||||
|
"created": "2025-07-24 14:09:26",
|
||||||
|
"created_at": 1753337366883,
|
||||||
|
"link": "https://music.163.com/#/discover/toplist?id=14028249541"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 13372522766,
|
||||||
|
"name": "潮流风向榜",
|
||||||
|
"description": "精心挑选云音乐极具声量的音乐作品,呈现歌曲真实热度趋势,榜单每日更新。",
|
||||||
|
"cover": "https://p2.music.126.net/dIKA5e7jCncz2Br1Toxgaw==/109951170621574552.jpg",
|
||||||
|
"update_frequency": "每天更新",
|
||||||
|
"updated": "2025-09-04 12:05:58",
|
||||||
|
"updated_at": 1756958758114,
|
||||||
|
"created": "2025-02-26 14:01:33",
|
||||||
|
"created_at": 1740549693794,
|
||||||
|
"link": "https://music.163.com/#/discover/toplist?id=13372522766"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 12911403728,
|
||||||
|
"name": "音乐合伙人推荐榜",
|
||||||
|
"description": "音乐合伙人近一个月内推荐过的歌曲官方TOP排行榜,每周一更新。 跟随音乐合伙人的步伐,一起发现那些隐藏的音乐瑰宝。",
|
||||||
|
"cover": "https://p2.music.126.net/s6ITpmGjKbyDpi7DPkqd2w==/109951170187827373.jpg",
|
||||||
|
"update_frequency": "每周一更新",
|
||||||
|
"updated": "2025-09-01 12:06:04",
|
||||||
|
"updated_at": 1756699564013,
|
||||||
|
"created": "2024-11-25 15:14:30",
|
||||||
|
"created_at": 1732518870190,
|
||||||
|
"link": "https://music.163.com/#/discover/toplist?id=12911403728"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 12911589513,
|
||||||
|
"name": "音乐合伙人热歌榜",
|
||||||
|
"description": "音乐合伙人近一周评定过的高分热歌官方TOP排行榜,每周一更新。 跟随音乐合伙人的步伐,一起发现那些隐藏的音乐瑰宝。",
|
||||||
|
"cover": "https://p2.music.126.net/RgYxQmB-ZUjkMRo2N1jWnQ==/109951170187823494.jpg",
|
||||||
|
"update_frequency": "每周一更新",
|
||||||
|
"updated": "2025-09-01 12:06:01",
|
||||||
|
"updated_at": 1756699561725,
|
||||||
|
"created": "2024-11-25 15:13:46",
|
||||||
|
"created_at": 1732518826543,
|
||||||
|
"link": "https://music.163.com/#/discover/toplist?id=12911589513"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 12911619970,
|
||||||
|
"name": "音乐合伙人留名榜",
|
||||||
|
"description": "音乐合伙人近一个月内留名过的所有歌曲官方TOP排行榜,每周一更新。 跟随音乐合伙人的步伐,一起发现那些隐藏的音乐瑰宝。",
|
||||||
|
"cover": "https://p2.music.126.net/aJJzGIxhkVaD7dX0XBNUnw==/109951170187831145.jpg",
|
||||||
|
"update_frequency": "每周一更新",
|
||||||
|
"updated": "2025-09-01 12:05:49",
|
||||||
|
"updated_at": 1756699549550,
|
||||||
|
"created": "2024-11-25 15:12:50",
|
||||||
|
"created_at": 1732518770868,
|
||||||
|
"link": "https://music.163.com/#/discover/toplist?id=12911619970"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 12911379734,
|
||||||
|
"name": "音乐合伙人高分新歌榜",
|
||||||
|
"description": "音乐合伙人近期评定过的所有新歌(一个月内最新发行)官方TOP排行榜,每周一更新。 跟随音乐合伙人的步伐,一起发现那些隐藏的音乐瑰宝。",
|
||||||
|
"cover": "https://p2.music.126.net/bfk15bvanhdPFU7yjPFgWA==/109951170187832038.jpg",
|
||||||
|
"update_frequency": "每周一更新",
|
||||||
|
"updated": "2025-09-01 12:05:54",
|
||||||
|
"updated_at": 1756699554077,
|
||||||
|
"created": "2024-11-25 15:11:53",
|
||||||
|
"created_at": 1732518713161,
|
||||||
|
"link": "https://music.163.com/#/discover/toplist?id=12911379734"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 12768855486,
|
||||||
|
"name": "音乐合伙人高分榜",
|
||||||
|
"description": "音乐合伙人的高分歌曲官方榜单,收录近半年来获得音乐合伙人高分推荐的TOP100首歌曲,每日更新。跟随音乐合伙人的步伐,一起发现那些隐藏的音乐瑰宝。",
|
||||||
|
"cover": "https://p2.music.126.net/fPP5T0Z8Ac15qNvRTcHa6g==/109951170074028970.jpg",
|
||||||
|
"update_frequency": "每天更新",
|
||||||
|
"updated": "2025-09-04 12:05:49",
|
||||||
|
"updated_at": 1756958749724,
|
||||||
|
"created": "2024-10-25 11:51:10",
|
||||||
|
"created_at": 1729828270342,
|
||||||
|
"link": "https://music.163.com/#/discover/toplist?id=12768855486"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 5453912201,
|
||||||
|
"name": "黑胶VIP爱听榜",
|
||||||
|
"description": "云音乐站内会员播放热度TOP100的歌曲,每周四更新。\n黑胶们都爱听什么歌曲?\n热门好歌一站式收听,让你念念不忘~\n做尊贵黑胶,畅听品味好歌~",
|
||||||
|
"cover": "https://p2.music.126.net/qo6-o9n5AhMjNyejev38-A==/109951169743111905.jpg",
|
||||||
|
"update_frequency": "每周四更新",
|
||||||
|
"updated": "2025-09-04 18:05:01",
|
||||||
|
"updated_at": 1756980301317,
|
||||||
|
"created": "2021-01-08 14:30:24",
|
||||||
|
"created_at": 1610087424470,
|
||||||
|
"link": "https://music.163.com/#/discover/toplist?id=5453912201"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 71385702,
|
||||||
|
"name": "网易云ACG榜",
|
||||||
|
"description": "网易云用户一周内收听所有ACG音乐官方TOP排行榜,每周四更新。",
|
||||||
|
"cover": "https://p2.music.126.net/na1kEeCS1iZEkzOrs9r_9g==/109951167976973667.jpg",
|
||||||
|
"update_frequency": "每周四更新",
|
||||||
|
"updated": "2025-09-04 10:19:13",
|
||||||
|
"updated_at": 1756952353409,
|
||||||
|
"created": "2015-05-07 11:22:15",
|
||||||
|
"created_at": 1430968935040,
|
||||||
|
"link": "https://music.163.com/#/discover/toplist?id=71385702"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 745956260,
|
||||||
|
"name": "网易云韩语榜",
|
||||||
|
"description": "网易云用户一周内收听所有韩语歌曲官方TOP排行榜,每周四更新。",
|
||||||
|
"cover": "https://p2.music.126.net/5oN9YaFznwNGXkmi8i2Ytw==/109951167430864741.jpg",
|
||||||
|
"update_frequency": "每周四更新",
|
||||||
|
"updated": "2025-09-04 10:30:40",
|
||||||
|
"updated_at": 1756953040555,
|
||||||
|
"created": "2017-05-31 11:34:51",
|
||||||
|
"created_at": 1496201691281,
|
||||||
|
"link": "https://music.163.com/#/discover/toplist?id=745956260"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 180106,
|
||||||
|
"name": "UK排行榜周榜",
|
||||||
|
"description": "UK排行榜",
|
||||||
|
"cover": "https://p2.music.126.net/fhAqiflLy3eU-ldmBQByrg==/109951165613082765.jpg",
|
||||||
|
"update_frequency": "每天更新",
|
||||||
|
"updated": "2025-09-01 10:26:53",
|
||||||
|
"updated_at": 1756693613998,
|
||||||
|
"created": "2013-02-19 10:09:26",
|
||||||
|
"created_at": 1361239766844,
|
||||||
|
"link": "https://music.163.com/#/discover/toplist?id=180106"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 60198,
|
||||||
|
"name": "美国Billboard榜",
|
||||||
|
"description": "美国Billboard排行榜",
|
||||||
|
"cover": "https://p2.music.126.net/rwRsVIJHQ68gglhA6TNEYA==/109951165611413732.jpg",
|
||||||
|
"update_frequency": "每周三更新",
|
||||||
|
"updated": "2025-09-03 10:40:27",
|
||||||
|
"updated_at": 1756867227129,
|
||||||
|
"created": "2013-01-22 10:51:16",
|
||||||
|
"created_at": 1358823076818,
|
||||||
|
"link": "https://music.163.com/#/discover/toplist?id=60198"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 3812895,
|
||||||
|
"name": "Beatport全球电子舞曲榜",
|
||||||
|
"description": "Beatport全球电子舞曲排行榜TOP100(本榜每周三更新)",
|
||||||
|
"cover": "https://p2.music.126.net/oT-RHuPBJiD7WMoU7WG5Rw==/109951166093489621.jpg",
|
||||||
|
"update_frequency": "每周三更新",
|
||||||
|
"updated": "2025-09-03 10:51:47",
|
||||||
|
"updated_at": 1756867907849,
|
||||||
|
"created": "2013-09-11 16:03:09",
|
||||||
|
"created_at": 1378886589466,
|
||||||
|
"link": "https://music.163.com/#/discover/toplist?id=3812895"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 21845217,
|
||||||
|
"name": "KTV唛榜",
|
||||||
|
"description": "KTV唛榜是目前国内首个以全国超过200家KTV点歌平台真实数据的当红歌曲榜单。所涉及的KTV店铺覆盖全国近100多个城市,囊括一、二、三线各级城市及地区。在综合全国各地KTV点唱数据的前提下进行汇总与统计。为了保证信息的及时性,唛榜每周五更新。提供给K迷们最新和最准确的数据。",
|
||||||
|
"cover": "https://p2.music.126.net/5wDP78s43ydVTKt62C8OjQ==/109951165613100063.jpg",
|
||||||
|
"update_frequency": "每周五更新",
|
||||||
|
"updated": "2021-11-26 17:56:43",
|
||||||
|
"updated_at": 1637920603975,
|
||||||
|
"created": "2014-07-18 11:11:33",
|
||||||
|
"created_at": 1405653093230,
|
||||||
|
"link": "https://music.163.com/#/discover/toplist?id=21845217"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 60131,
|
||||||
|
"name": "日本Oricon榜",
|
||||||
|
"description": "日本Oricon数字单曲周榜,每周三更新,欢迎关注。",
|
||||||
|
"cover": "https://p2.music.126.net/aXUPgImt8hhf4cMUZEjP4g==/109951165611417794.jpg",
|
||||||
|
"update_frequency": "每天更新",
|
||||||
|
"updated": "2025-08-29 10:20:10",
|
||||||
|
"updated_at": 1756434010126,
|
||||||
|
"created": "2013-01-08 16:51:24",
|
||||||
|
"created_at": 1357635084874,
|
||||||
|
"link": "https://music.163.com/#/discover/toplist?id=60131"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 2809513713,
|
||||||
|
"name": "网易云欧美热歌榜",
|
||||||
|
"description": "网易云用户一周内收听所有欧美歌曲官方TOP排行榜,每周四更新。\nWestern Hit Chart (updated every Thursday)",
|
||||||
|
"cover": "https://p2.music.126.net/70_EO_Dc7NT_hhfvsapzcQ==/109951167430862162.jpg",
|
||||||
|
"update_frequency": "每周四更新",
|
||||||
|
"updated": "2025-09-04 09:44:52",
|
||||||
|
"updated_at": 1756950292193,
|
||||||
|
"created": "2019-05-22 10:49:33",
|
||||||
|
"created_at": 1558493373769,
|
||||||
|
"link": "https://music.163.com/#/discover/toplist?id=2809513713"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 2809577409,
|
||||||
|
"name": "网易云欧美新歌榜",
|
||||||
|
"description": "网易云用户一周内收听所有欧美新歌(一月内最新发行)官方TOP排行榜,每天更新。\nWestern New Release Chart (new songs released in last 30 days, updated daily)\n",
|
||||||
|
"cover": "https://p2.music.126.net/0lPWpI9Ejn1OiW2LSbg-qw==/109951167430863224.jpg",
|
||||||
|
"update_frequency": "每天更新",
|
||||||
|
"updated": "2025-09-04 09:44:27",
|
||||||
|
"updated_at": 1756950267625,
|
||||||
|
"created": "2019-05-22 10:46:54",
|
||||||
|
"created_at": 1558493214795,
|
||||||
|
"link": "https://music.163.com/#/discover/toplist?id=2809577409"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 27135204,
|
||||||
|
"name": "法国 NRJ Vos Hits 周榜",
|
||||||
|
"description": "法国NRJ电台(national Radio de Jeunes)成立于1981年,总部位于法国巴黎。是法国最受欢迎的音乐电台和听众最多的广播电台之一。NRJ音乐奖素有法国的“格莱美”之称。此榜单针对NRJ电台法国本土热门歌曲排行。【每周五更新】",
|
||||||
|
"cover": "https://p2.music.126.net/-fyzrPWd06FfWl_0JDAxMQ==/109951165613108584.jpg",
|
||||||
|
"update_frequency": "每周五更新",
|
||||||
|
"updated": "2025-08-29 10:20:26",
|
||||||
|
"updated_at": 1756434026143,
|
||||||
|
"created": "2014-09-04 18:03:33",
|
||||||
|
"created_at": 1409825013948,
|
||||||
|
"link": "https://music.163.com/#/discover/toplist?id=27135204"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 3001835560,
|
||||||
|
"name": "网易云ACG动画榜",
|
||||||
|
"description": "网易云中每天热度上升最快的100首ACG动画单曲,每日更新。",
|
||||||
|
"cover": "https://p2.music.126.net/SkGlKQ6acixthb77VlD9eQ==/109951164432300406.jpg",
|
||||||
|
"update_frequency": "每天更新",
|
||||||
|
"updated": "2025-09-04 12:05:09",
|
||||||
|
"updated_at": 1756958709531,
|
||||||
|
"created": "2019-09-27 10:03:58",
|
||||||
|
"created_at": 1569549838610,
|
||||||
|
"link": "https://music.163.com/#/discover/toplist?id=3001835560"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 3001795926,
|
||||||
|
"name": "网易云ACG游戏榜",
|
||||||
|
"description": "网易云中每天热度上升最快的100首ACG游戏单曲,每日更新。",
|
||||||
|
"cover": "https://p2.music.126.net/hivOOHMwEmnn9s_6rgZwEQ==/109951164432303700.jpg",
|
||||||
|
"update_frequency": "每天更新",
|
||||||
|
"updated": "2025-09-04 12:05:17",
|
||||||
|
"updated_at": 1756958717981,
|
||||||
|
"created": "2019-09-27 10:04:56",
|
||||||
|
"created_at": 1569549896656,
|
||||||
|
"link": "https://music.163.com/#/discover/toplist?id=3001795926"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 3001890046,
|
||||||
|
"name": "网易云ACG VOCALOID榜",
|
||||||
|
"description": "",
|
||||||
|
"cover": "https://p2.music.126.net/Ag7RyRCYiINcd9EtRXf6xA==/109951164432303690.jpg",
|
||||||
|
"update_frequency": "每天更新",
|
||||||
|
"updated": "2025-09-04 12:05:25",
|
||||||
|
"updated_at": 1756958725790,
|
||||||
|
"created": "2019-09-27 10:05:25",
|
||||||
|
"created_at": 1569549925472,
|
||||||
|
"link": "https://music.163.com/#/discover/toplist?id=3001890046"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 5059644681,
|
||||||
|
"name": "网易云日语榜",
|
||||||
|
"description": "网易云用户一周内收听所有日语歌曲官方TOP排行榜,每周二更新。",
|
||||||
|
"cover": "https://p2.music.126.net/YFBFNI2F-4BveUpv6FKFuw==/109951167430864069.jpg",
|
||||||
|
"update_frequency": "每周二更新",
|
||||||
|
"updated": "2025-09-02 10:57:27",
|
||||||
|
"updated_at": 1756781847266,
|
||||||
|
"created": "2020-06-11 16:10:00",
|
||||||
|
"created_at": 1591863000459,
|
||||||
|
"link": "https://music.163.com/#/discover/toplist?id=5059644681"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 5059633707,
|
||||||
|
"name": "网易云摇滚榜",
|
||||||
|
"description": "网易云用户一周内收听所有摇滚歌曲官方TOP排行榜,每周五更新。",
|
||||||
|
"cover": "https://p2.music.126.net/LjkX2hktgFD1NXc3W6w0sA==/109951170048522513.jpg",
|
||||||
|
"update_frequency": "每周五更新",
|
||||||
|
"updated": "2025-08-29 17:02:04",
|
||||||
|
"updated_at": 1756458124397,
|
||||||
|
"created": "2020-06-11 16:13:33",
|
||||||
|
"created_at": 1591863213389,
|
||||||
|
"link": "https://music.163.com/#/discover/toplist?id=5059633707"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 5059642708,
|
||||||
|
"name": "网易云国风榜",
|
||||||
|
"description": "网易云用户一周内收听所有国风歌曲官方TOP排行榜,每周五更新。",
|
||||||
|
"cover": "https://p2.music.126.net/kTJC5OBhg8I477X_ZmXyDQ==/109951168539740982.jpg",
|
||||||
|
"update_frequency": "每周五更新",
|
||||||
|
"updated": "2025-08-29 09:58:05",
|
||||||
|
"updated_at": 1756432685431,
|
||||||
|
"created": "2020-06-11 16:14:18",
|
||||||
|
"created_at": 1591863258438,
|
||||||
|
"link": "https://music.163.com/#/discover/toplist?id=5059642708"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 5338990334,
|
||||||
|
"name": "潜力爆款榜",
|
||||||
|
"description": "全民一起PICK潜力好歌,每周二更新",
|
||||||
|
"cover": "https://p2.music.126.net/Mi4QPklg1mtbWAfq74tEqQ==/109951165498334721.jpg",
|
||||||
|
"update_frequency": "每周二更新",
|
||||||
|
"updated": "2025-09-02 12:05:33",
|
||||||
|
"updated_at": 1756785933871,
|
||||||
|
"created": "2020-11-17 14:24:34",
|
||||||
|
"created_at": 1605594274077,
|
||||||
|
"link": "https://music.163.com/#/discover/toplist?id=5338990334"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 5059661515,
|
||||||
|
"name": "网易云民谣榜",
|
||||||
|
"description": "网易云用户一周内收听所有民谣歌曲官方TOP排行榜,每周五更新。",
|
||||||
|
"cover": "https://p2.music.126.net/Xe9qLTAqtBAWX_hPgFHMyw==/109951170048510929.jpg",
|
||||||
|
"update_frequency": "每周五更新",
|
||||||
|
"updated": "2025-08-29 17:00:41",
|
||||||
|
"updated_at": 1756458041706,
|
||||||
|
"created": "2020-06-11 16:10:52",
|
||||||
|
"created_at": 1591863052757,
|
||||||
|
"link": "https://music.163.com/#/discover/toplist?id=5059661515"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 6688069460,
|
||||||
|
"name": "听歌识曲榜",
|
||||||
|
"description": "网易云音乐站内歌曲按用户“听歌识曲”次数排列,每周四更新",
|
||||||
|
"cover": "https://p2.music.126.net/wJVUAiUuykKk7yGbQxDBug==/109951167430857712.jpg",
|
||||||
|
"update_frequency": "更新24首",
|
||||||
|
"updated": "2025-09-04 23:35:03",
|
||||||
|
"updated_at": 1757000103145,
|
||||||
|
"created": "2021-03-31 16:45:54",
|
||||||
|
"created_at": 1617180354803,
|
||||||
|
"link": "https://music.163.com/#/discover/toplist?id=6688069460"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 6723173524,
|
||||||
|
"name": "网络热歌榜",
|
||||||
|
"description": "网罗一周热门网络歌曲,反映云音乐用户近一周网络热歌收听趋势。每周五更新。",
|
||||||
|
"cover": "https://p2.music.126.net/_kSxOPqQ5J5etC5DKTFwNA==/109951170048519530.jpg",
|
||||||
|
"update_frequency": "每周五更新",
|
||||||
|
"updated": "2025-08-29 11:03:41",
|
||||||
|
"updated_at": 1756436621202,
|
||||||
|
"created": "2021-04-22 10:41:46",
|
||||||
|
"created_at": 1619059306654,
|
||||||
|
"link": "https://music.163.com/#/discover/toplist?id=6723173524"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 6732051320,
|
||||||
|
"name": "俄语榜",
|
||||||
|
"description": "网易云音乐用户一周内收听所有俄罗斯语歌曲官方TOP排行榜,每周四更新。",
|
||||||
|
"cover": "https://p2.music.126.net/HbJ0BK5doY4I4pEMY6-FQw==/109951167430852698.jpg",
|
||||||
|
"update_frequency": "每周四更新",
|
||||||
|
"updated": "2025-09-04 10:21:42",
|
||||||
|
"updated_at": 1756952502045,
|
||||||
|
"created": "2021-04-28 12:05:12",
|
||||||
|
"created_at": 1619582712108,
|
||||||
|
"link": "https://music.163.com/#/discover/toplist?id=6732051320"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 6732014811,
|
||||||
|
"name": "越南语榜",
|
||||||
|
"description": "网易云音乐用户一周内收听所有越南语歌曲官方TOP排行榜,每周四更新。",
|
||||||
|
"cover": "https://p2.music.126.net/N-Y5maLGWgrowt3TE6RtSg==/109951167430857045.jpg",
|
||||||
|
"update_frequency": "每周四更新",
|
||||||
|
"updated": "2025-09-04 10:28:52",
|
||||||
|
"updated_at": 1756952932171,
|
||||||
|
"created": "2021-04-28 12:05:49",
|
||||||
|
"created_at": 1619582749349,
|
||||||
|
"link": "https://music.163.com/#/discover/toplist?id=6732014811"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 6886768100,
|
||||||
|
"name": "中文慢摇DJ榜",
|
||||||
|
"description": "搜索“DJ”,进入慢摇DJ专区,探索更多网络热歌!",
|
||||||
|
"cover": "https://p2.music.126.net/w_01BfDU012ojxnzLO6tYw==/109951167977358686.jpg",
|
||||||
|
"update_frequency": "每天更新",
|
||||||
|
"updated": "2025-09-04 12:00:00",
|
||||||
|
"updated_at": 1756958400638,
|
||||||
|
"created": "2021-07-28 18:09:59",
|
||||||
|
"created_at": 1627466999260,
|
||||||
|
"link": "https://music.163.com/#/discover/toplist?id=6886768100"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 6939992364,
|
||||||
|
"name": "俄罗斯top hit流行音乐榜",
|
||||||
|
"description": "top hit榜根据俄罗斯及全球400多个无线广播的音乐播放量和YouTube播放量计算得来,每周一更新。",
|
||||||
|
"cover": "https://p2.music.126.net/KLVO8PxVZzOoLdWQQNyprA==/109951166327316568.jpg",
|
||||||
|
"update_frequency": "每周五更新",
|
||||||
|
"updated": "2025-08-29 17:03:04",
|
||||||
|
"updated_at": 1756458184216,
|
||||||
|
"created": "2021-08-27 11:30:02",
|
||||||
|
"created_at": 1630035002268,
|
||||||
|
"link": "https://music.163.com/#/discover/toplist?id=6939992364"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 7095271308,
|
||||||
|
"name": "泰语榜",
|
||||||
|
"description": "网易云音乐用户一周内收听所有泰语歌曲官方TOP排行榜,每周四更新。",
|
||||||
|
"cover": "https://p2.music.126.net/4W0WBHBgwYlYfRniuyL47A==/109951167430843284.jpg",
|
||||||
|
"update_frequency": "每周四更新",
|
||||||
|
"updated": "2025-09-04 10:41:26",
|
||||||
|
"updated_at": 1756953686280,
|
||||||
|
"created": "2021-11-29 14:22:17",
|
||||||
|
"created_at": 1638166937809,
|
||||||
|
"link": "https://music.163.com/#/discover/toplist?id=7095271308"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 7356827205,
|
||||||
|
"name": "BEAT排行榜",
|
||||||
|
"description": "嘿~朋友,欢迎来到本周的Beat排行榜\n我们挑选了近一周内热门的Beat作品,一起来感受下大家近期的“口味”吧!\n每周都会更新哦,记得按下收藏,我每天都会在这里等你来与我交流!~\n\n关于Beat的必备小知识\nQ1.什么是Beat?\nBeat即节拍,特指嘻哈音乐中的伴奏,现在也可指所有流行音乐的伴奏\nQ2.Beat有什么用?\n在Beat的帮助下,你只需要填词演唱即可完成一首歌曲的创作,而且Beat也可以作为各种流媒体的背景音乐或是多场景现场演出的得力助手,不同风格的Beat还能为你的音乐创作提供灵感哦~\n搜索关注“BEATSOUL激灵”网易云官号,探索更多炸裂音乐内容~",
|
||||||
|
"cover": "https://p2.music.126.net/yhzlQJCJ9NcT4MvJBG_HgQ==/109951167977014958.jpg",
|
||||||
|
"update_frequency": "每周四更新",
|
||||||
|
"updated": "2025-09-04 20:05:00",
|
||||||
|
"updated_at": 1756987500926,
|
||||||
|
"created": "2022-03-29 19:39:58",
|
||||||
|
"created_at": 1648553998273,
|
||||||
|
"link": "https://music.163.com/#/discover/toplist?id=7356827205"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 7325478166,
|
||||||
|
"name": "星云榜VOL.29 Addison Rae新专来袭,寻找最真实的自己",
|
||||||
|
"description": "精心评审,专业推荐。每周五更新,为你呈现宝藏新歌。\n1、《Aquamarinee》歌手:Addison Rae\n2、《羽毛剑》歌手:秦凡淇\n3、《Take me back》歌手:HAIM\n4、《妈妈的眼睛》歌手:张震岳\n5、《25岁永不停下》歌手:张醒婵\n6、《雨季症候》歌手:SHARK卫彬月\n7、《山东王FREESTYLE》歌手:华云龙KLE\n8、《LOVE I NEED》歌手:陈瑜Estelle\n9、《FFFFF》歌手:刘柏辛Lexie\n10、《Vipaśyanā》歌手:Namunong\n本期封面:Addison Rae,Aquamarine",
|
||||||
|
"cover": "https://p2.music.126.net/u440jFG0N5i06C9ejOeMCQ==/109951171381091309.jpg",
|
||||||
|
"update_frequency": "每周五更新",
|
||||||
|
"updated": "2025-06-30 16:17:26",
|
||||||
|
"updated_at": 1751271446032,
|
||||||
|
"created": "2022-03-09 11:24:46",
|
||||||
|
"created_at": 1646796286440,
|
||||||
|
"link": "https://music.163.com/#/discover/toplist?id=7325478166"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 7603212484,
|
||||||
|
"name": "LOOK直播歌曲榜",
|
||||||
|
"description": "LOOK直播好歌共赏,专属你的声音聊愈场。榜单选取符合条件且近7日热度最高的前50首歌曲,每周二更新。",
|
||||||
|
"cover": "https://p1.music.126.net/u-RQC-LyY0aoeseRumJ14A==/109951167977730469.jpg",
|
||||||
|
"update_frequency": "每周二更新",
|
||||||
|
"updated": "2024-05-07 21:23:03",
|
||||||
|
"updated_at": 1715088183913,
|
||||||
|
"created": "2022-08-23 09:54:56",
|
||||||
|
"created_at": 1661219696017,
|
||||||
|
"link": "https://music.163.com/#/discover/toplist?id=7603212484"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 7775163417,
|
||||||
|
"name": "赏音榜",
|
||||||
|
"description": "云音乐歌曲赏音榜,以让用户鉴赏到更多潜力好歌为目的,以用户对歌曲互动热度为核心,按照综合数据排名取前100名,每日更新",
|
||||||
|
"cover": "https://p1.music.126.net/m9hQzC-d5wefBipedNPaHg==/109951168178601971.jpg",
|
||||||
|
"update_frequency": "每天更新",
|
||||||
|
"updated": "2025-09-04 12:05:36",
|
||||||
|
"updated_at": 1756958736108,
|
||||||
|
"created": "2022-11-28 14:46:19",
|
||||||
|
"created_at": 1669617979380,
|
||||||
|
"link": "https://music.163.com/#/discover/toplist?id=7775163417"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 7785123708,
|
||||||
|
"name": "黑胶VIP新歌榜",
|
||||||
|
"description": "云音乐站内播放热度TOP50的7日内新晋会员歌曲,每日更新。\n更适合黑胶体质的新歌榜单来啦!\n耳机分你一只,新曲一起来听~\n成为尊贵黑胶,不错过每一首VIP新歌!",
|
||||||
|
"cover": "https://p1.music.126.net/vjitpkT9nXBCth6tvdDMWg==/109951169743115266.jpg",
|
||||||
|
"update_frequency": "每天更新",
|
||||||
|
"updated": "2025-09-04 12:05:37",
|
||||||
|
"updated_at": 1756958737548,
|
||||||
|
"created": "2022-12-02 18:51:16",
|
||||||
|
"created_at": 1669978276103,
|
||||||
|
"link": "https://music.163.com/#/discover/toplist?id=7785123708"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 7785066739,
|
||||||
|
"name": "黑胶VIP热歌榜",
|
||||||
|
"description": "云音乐站内播放和付费热度TOP50的会员歌曲,每日更新。\n更适合黑胶体质的热歌榜单来啦!\n哪首是你的单曲循环?\n成为尊贵黑胶,随心畅听热门好歌!",
|
||||||
|
"cover": "https://p1.music.126.net/Ay3mLgQ9weG_c8JjYrD-Bw==/109951169743106495.jpg",
|
||||||
|
"update_frequency": "每天更新",
|
||||||
|
"updated": "2025-09-04 12:05:36",
|
||||||
|
"updated_at": 1756958736684,
|
||||||
|
"created": "2022-12-02 18:51:31",
|
||||||
|
"created_at": 1669978291024,
|
||||||
|
"link": "https://music.163.com/#/discover/toplist?id=7785066739"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 7785091694,
|
||||||
|
"name": "黑胶VIP爱搜榜",
|
||||||
|
"description": "云音乐站内会员搜索播放热度TOP50的歌曲,每日更新。\n更适合黑胶体质的搜歌榜单来啦!\n热搜好歌一网打尽,只为有品位的你~\n成为尊贵黑胶,你搜我听畅听不停!",
|
||||||
|
"cover": "https://p1.music.126.net/R7DtZqNraesnsiaIKvzTHA==/109951169743112799.jpg",
|
||||||
|
"update_frequency": "每天更新",
|
||||||
|
"updated": "2025-09-04 12:05:41",
|
||||||
|
"updated_at": 1756958741914,
|
||||||
|
"created": "2022-12-02 18:51:43",
|
||||||
|
"created_at": 1669978303210,
|
||||||
|
"link": "https://music.163.com/#/discover/toplist?id=7785091694"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 8246775932,
|
||||||
|
"name": "实时热度榜",
|
||||||
|
"description": "每天9-23点为你精选当下歌曲热度最高的歌曲",
|
||||||
|
"cover": "https://p1.music.126.net/U7ZbdpWzRdmZVr6Khn_4ag==/109951168673982478.jpg",
|
||||||
|
"update_frequency": "更新65首",
|
||||||
|
"updated": "2025-09-05 09:30:07",
|
||||||
|
"updated_at": 1757035807371,
|
||||||
|
"created": "2023-03-20 10:39:59",
|
||||||
|
"created_at": 1679279999154,
|
||||||
|
"link": "https://music.163.com/#/discover/toplist?id=8246775932"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 8537588450,
|
||||||
|
"name": "喜力®星电音派对潮音榜",
|
||||||
|
"description": "乐无界,越未来!《星电音联盟》歌曲官方榜单,每周一更新,让云村村民们随时随地躁起高燃派对氛围!喜力®星电音构建狂欢永不停歇的新奇电音宇宙,激活潮流基因,释放先锋灵感,跨维开启奇妙电音之旅!",
|
||||||
|
"cover": "https://p1.music.126.net/HVu2hGYvzN5XBuvFc_4Bgg==/109951168730309120.jpg",
|
||||||
|
"update_frequency": "每周五更新",
|
||||||
|
"updated": "2024-09-16 12:05:30",
|
||||||
|
"updated_at": 1726459530378,
|
||||||
|
"created": "2023-07-07 10:48:39",
|
||||||
|
"created_at": 1688698119437,
|
||||||
|
"link": "https://music.163.com/#/discover/toplist?id=8537588450"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 8661209031,
|
||||||
|
"name": "乐夏榜",
|
||||||
|
"description": "听乐夏,上网易云,一头扎进爱音乐的人群! 综艺《乐队的夏天3》官方榜单,每周一更新。和三星折叠屏手机一起畅听《乐队的夏天3》官方榜单,折叠看三星,五代更来劲。",
|
||||||
|
"cover": "https://p1.music.126.net/RlStCmE97y0xYFk7rS3Zww==/109951168864907822.jpg",
|
||||||
|
"update_frequency": "每周一更新",
|
||||||
|
"updated": "2025-09-01 12:05:41",
|
||||||
|
"updated_at": 1756699541864,
|
||||||
|
"created": "2023-08-16 17:47:27",
|
||||||
|
"created_at": 1692179247425,
|
||||||
|
"link": "https://music.163.com/#/discover/toplist?id=8661209031"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 8703179781,
|
||||||
|
"name": "特斯拉车友爱听榜",
|
||||||
|
"description": null,
|
||||||
|
"cover": "https://p1.music.126.net/UL8dhobSa3TR6Wd1JmWe_g==/109951168924385363.jpg",
|
||||||
|
"update_frequency": "每周一更新",
|
||||||
|
"updated": "2025-09-01 16:05:08",
|
||||||
|
"updated_at": 1756713908385,
|
||||||
|
"created": "2023-08-31 12:29:59",
|
||||||
|
"created_at": 1693456199735,
|
||||||
|
"link": "https://music.163.com/#/discover/toplist?id=8703179781"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 8703052295,
|
||||||
|
"name": "理想车友爱听榜",
|
||||||
|
"description": null,
|
||||||
|
"cover": "https://p1.music.126.net/U--PWdWupY1ER5cVSjr1jQ==/109951168928365496.jpg",
|
||||||
|
"update_frequency": "每周一更新",
|
||||||
|
"updated": "2025-09-01 16:05:09",
|
||||||
|
"updated_at": 1756713909830,
|
||||||
|
"created": "2023-08-31 12:38:29",
|
||||||
|
"created_at": 1693456709598,
|
||||||
|
"link": "https://music.163.com/#/discover/toplist?id=8703052295"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 8702582160,
|
||||||
|
"name": "比亚迪车友爱听榜",
|
||||||
|
"description": null,
|
||||||
|
"cover": "https://p1.music.126.net/S1OG-OLTaofa3HfrHW48kA==/109951168924393585.jpg",
|
||||||
|
"update_frequency": "每周一更新",
|
||||||
|
"updated": "2025-09-01 16:05:07",
|
||||||
|
"updated_at": 1756713907323,
|
||||||
|
"created": "2023-08-31 12:38:42",
|
||||||
|
"created_at": 1693456722262,
|
||||||
|
"link": "https://music.163.com/#/discover/toplist?id=8702582160"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 8703220480,
|
||||||
|
"name": "蔚来车友爱听榜",
|
||||||
|
"description": null,
|
||||||
|
"cover": "https://p1.music.126.net/r9kBQNsOro1EAB82Ol51WQ==/109951168924380971.jpg",
|
||||||
|
"update_frequency": "每周一更新",
|
||||||
|
"updated": "2025-09-01 16:05:04",
|
||||||
|
"updated_at": 1756713904286,
|
||||||
|
"created": "2023-08-31 12:38:56",
|
||||||
|
"created_at": 1693456736086,
|
||||||
|
"link": "https://music.163.com/#/discover/toplist?id=8703220480"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 8702982391,
|
||||||
|
"name": "极氪车友爱听榜",
|
||||||
|
"description": null,
|
||||||
|
"cover": "https://p1.music.126.net/Cu0RXoKewSPM9Gyc7Cp8jw==/109951168924391596.jpg",
|
||||||
|
"update_frequency": "每周一更新",
|
||||||
|
"updated": "2025-09-01 16:05:06",
|
||||||
|
"updated_at": 1756713906978,
|
||||||
|
"created": "2023-08-31 12:39:19",
|
||||||
|
"created_at": 1693456759762,
|
||||||
|
"link": "https://music.163.com/#/discover/toplist?id=8702982391"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 8532443277,
|
||||||
|
"name": "蛋仔派对听歌榜",
|
||||||
|
"description": "来自蛋仔岛的热播歌曲速递,网易《蛋仔派对》官方榜单,每周五更新。云村村民们,和蛋仔们一起随歌摇摆吧!",
|
||||||
|
"cover": "https://p1.music.126.net/TMb0be5QLMZKOFeuOKT4tg==/109951168717283910.jpg",
|
||||||
|
"update_frequency": "每周五更新",
|
||||||
|
"updated": "2025-08-29 12:05:43",
|
||||||
|
"updated_at": 1756440343562,
|
||||||
|
"created": "2023-07-05 10:32:04",
|
||||||
|
"created_at": 1688524324879,
|
||||||
|
"link": "https://music.163.com/#/discover/toplist?id=8532443277"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 9651277674,
|
||||||
|
"name": "AI歌曲榜",
|
||||||
|
"description": "精心挑选每日最新最热AI生成歌曲,榜单每日更新,一起感受AI的独特魅力吧!",
|
||||||
|
"cover": "https://p1.music.126.net/M0m6GeZ1Y8Osz9jqxaW8Wg==/109951169462048035.jpg",
|
||||||
|
"update_frequency": "每天更新",
|
||||||
|
"updated": "2025-09-04 12:05:43",
|
||||||
|
"updated_at": 1756958743415,
|
||||||
|
"created": "2024-04-02 18:25:12",
|
||||||
|
"created_at": 1712053512213,
|
||||||
|
"link": "https://music.163.com/#/discover/toplist?id=9651277674"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 10131772880,
|
||||||
|
"name": "昊铂车友爱听榜",
|
||||||
|
"description": null,
|
||||||
|
"cover": "https://p1.music.126.net/EL7H4rkKejZY7Uv54EFNXg==/109951169655010112.jpg",
|
||||||
|
"update_frequency": "每周一更新",
|
||||||
|
"updated": "2025-09-01 16:05:03",
|
||||||
|
"updated_at": 1756713903085,
|
||||||
|
"created": "2024-06-04 16:50:00",
|
||||||
|
"created_at": 1717491000945,
|
||||||
|
"link": "https://music.163.com/#/discover/toplist?id=10131772880"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 10162841534,
|
||||||
|
"name": "埃安车友爱听榜",
|
||||||
|
"description": "埃安车友平时都在听什么??",
|
||||||
|
"cover": "https://p1.music.126.net/FcP1U6Bck0wPKqd0XgBwSQ==/109951169679731241.jpg",
|
||||||
|
"update_frequency": "每周一更新",
|
||||||
|
"updated": "2025-09-01 16:05:05",
|
||||||
|
"updated_at": 1756713905568,
|
||||||
|
"created": "2024-06-12 13:31:44",
|
||||||
|
"created_at": 1718170304691,
|
||||||
|
"link": "https://music.163.com/#/discover/toplist?id=10162841534"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 12225155968,
|
||||||
|
"name": "欧美R&B榜",
|
||||||
|
"description": "云音乐用户一周内收听节奏布鲁斯(R&B)官方TOP排行榜,每周五更新。",
|
||||||
|
"cover": "https://p1.music.126.net/0E6MzYzyA5uvQ4CSoIG2mw==/109951169739660034.jpg",
|
||||||
|
"update_frequency": "每周五更新",
|
||||||
|
"updated": "2025-08-29 12:05:45",
|
||||||
|
"updated_at": 1756440345198,
|
||||||
|
"created": "2024-06-25 18:14:05",
|
||||||
|
"created_at": 1719310445382,
|
||||||
|
"link": "https://music.163.com/#/discover/toplist?id=12225155968"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 12344472377,
|
||||||
|
"name": "黑胶VIP限免榜",
|
||||||
|
"description": "云音乐站内热度最高的限免播放歌曲TOP50,每日更新。\n人气旋律一听就会爱上!现在马上进入免费模式(点击云音乐首页左上角侧边栏,选择“免费听歌”)畅听全榜吧!",
|
||||||
|
"cover": "https://p1.music.126.net/WXCSf4ZNcDCdOTY5ixm3Bg==/109951169809318325.jpg",
|
||||||
|
"update_frequency": "每天更新",
|
||||||
|
"updated": "2025-09-04 12:05:45",
|
||||||
|
"updated_at": 1756958745487,
|
||||||
|
"created": "2024-07-23 16:08:37",
|
||||||
|
"created_at": 1721722117311,
|
||||||
|
"link": "https://music.163.com/#/discover/toplist?id=12344472377"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 12717025277,
|
||||||
|
"name": "吉利车友爱听榜",
|
||||||
|
"description": null,
|
||||||
|
"cover": "https://p1.music.126.net/XVmZb3JSyrwMgqu9WVz61A==/109951170037568570.jpg",
|
||||||
|
"update_frequency": "每周一更新",
|
||||||
|
"updated": "2025-09-01 16:05:01",
|
||||||
|
"updated_at": 1756713901625,
|
||||||
|
"created": "2024-10-12 13:44:04",
|
||||||
|
"created_at": 1728711844151,
|
||||||
|
"link": "https://music.163.com/#/discover/toplist?id=12717025277"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
@@ -1,306 +0,0 @@
|
|||||||
<!DOCTYPE html>
|
|
||||||
<html lang="zh-CN">
|
|
||||||
<head>
|
|
||||||
<meta charset="UTF-8">
|
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
||||||
<title>网易云音乐榜单列表</title>
|
|
||||||
<link rel="stylesheet" href="css/style.css">
|
|
||||||
<link rel="stylesheet" href="css/background.css">
|
|
||||||
</head>
|
|
||||||
<body>
|
|
||||||
<!-- 音符装饰 -->
|
|
||||||
<div id="musicNotes"></div>
|
|
||||||
|
|
||||||
<div class="container">
|
|
||||||
<header class="header">
|
|
||||||
<h1 class="title">🎵 网易云音乐榜单列表</h1>
|
|
||||||
<p class="subtitle">发现音乐的魅力</p>
|
|
||||||
</header>
|
|
||||||
|
|
||||||
<div class="loading" id="loading">
|
|
||||||
<div class="spinner"></div>
|
|
||||||
<p>正在加载榜单数据...</p>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="error" id="error" style="display: none;">
|
|
||||||
<div class="error-icon">⚠️</div>
|
|
||||||
<p class="error-message" id="errorMessage"></p>
|
|
||||||
<button class="retry-btn" id="retryBtn">重试</button>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="rank-list" id="rankList" style="display: none;">
|
|
||||||
<!-- 榜单列表将在这里动态生成 -->
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<footer class="footer">
|
|
||||||
<p>© 2025 网易云音乐榜单列表 - 数据来源于官方API</p>
|
|
||||||
</footer>
|
|
||||||
|
|
||||||
<script>
|
|
||||||
// 创建音符装饰
|
|
||||||
function createMusicNotes() {
|
|
||||||
const musicNotes = document.getElementById('musicNotes');
|
|
||||||
const noteSymbols = ['♪', '♫', '♬', '♩', '♭', '♮', '♯'];
|
|
||||||
const containerWidth = window.innerWidth;
|
|
||||||
const containerHeight = window.innerHeight;
|
|
||||||
|
|
||||||
// 创建20个音符
|
|
||||||
for (let i = 0; i < 20; i++) {
|
|
||||||
const note = document.createElement('div');
|
|
||||||
note.className = 'music-note';
|
|
||||||
note.textContent = noteSymbols[Math.floor(Math.random() * noteSymbols.length)];
|
|
||||||
|
|
||||||
// 随机位置
|
|
||||||
const left = Math.random() * containerWidth;
|
|
||||||
const top = Math.random() * containerHeight;
|
|
||||||
|
|
||||||
// 随机动画延迟
|
|
||||||
const delay = Math.random() * 15;
|
|
||||||
const duration = 10 + Math.random() * 20;
|
|
||||||
|
|
||||||
note.style.left = `${left}px`;
|
|
||||||
note.style.top = `${top}px`;
|
|
||||||
note.style.animationDelay = `${delay}s`;
|
|
||||||
note.style.animationDuration = `${duration}s`;
|
|
||||||
|
|
||||||
musicNotes.appendChild(note);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// 页面加载完成后创建音符
|
|
||||||
document.addEventListener('DOMContentLoaded', () => {
|
|
||||||
createMusicNotes();
|
|
||||||
});
|
|
||||||
|
|
||||||
// API接口列表
|
|
||||||
const API_ENDPOINTS = [
|
|
||||||
"https://60s.viki.moe",
|
|
||||||
"https://60s-cf.viki.moe",
|
|
||||||
"https://60s.b23.run",
|
|
||||||
"https://60s.114128.xyz",
|
|
||||||
"https://60s-cf.114128.xyz",
|
|
||||||
"https://60s.api.shumengya.top",
|
|
||||||
"https://api.03c3.cn/api/zb",
|
|
||||||
"https://api.vvhan.com/api/60s",
|
|
||||||
// 添加本地测试数据
|
|
||||||
"../返回接口.json"
|
|
||||||
];
|
|
||||||
|
|
||||||
// 当前使用的API索引
|
|
||||||
let currentApiIndex = 0;
|
|
||||||
|
|
||||||
// DOM元素
|
|
||||||
const loadingElement = document.getElementById('loading');
|
|
||||||
const errorElement = document.getElementById('error');
|
|
||||||
const errorMessageElement = document.getElementById('errorMessage');
|
|
||||||
const retryBtnElement = document.getElementById('retryBtn');
|
|
||||||
const rankListElement = document.getElementById('rankList');
|
|
||||||
|
|
||||||
// 初始化
|
|
||||||
document.addEventListener('DOMContentLoaded', () => {
|
|
||||||
loadRankList();
|
|
||||||
retryBtnElement.addEventListener('click', loadRankList);
|
|
||||||
});
|
|
||||||
|
|
||||||
// 显示加载状态
|
|
||||||
function showLoading() {
|
|
||||||
loadingElement.style.display = 'flex';
|
|
||||||
errorElement.style.display = 'none';
|
|
||||||
rankListElement.style.display = 'none';
|
|
||||||
}
|
|
||||||
|
|
||||||
// 显示错误状态
|
|
||||||
function showError(message) {
|
|
||||||
loadingElement.style.display = 'none';
|
|
||||||
errorElement.style.display = 'flex';
|
|
||||||
errorMessageElement.textContent = message;
|
|
||||||
rankListElement.style.display = 'none';
|
|
||||||
}
|
|
||||||
|
|
||||||
// 显示榜单列表
|
|
||||||
function showRankList() {
|
|
||||||
loadingElement.style.display = 'none';
|
|
||||||
errorElement.style.display = 'none';
|
|
||||||
rankListElement.style.display = 'block';
|
|
||||||
}
|
|
||||||
|
|
||||||
// 加载榜单列表
|
|
||||||
async function loadRankList() {
|
|
||||||
showLoading();
|
|
||||||
|
|
||||||
try {
|
|
||||||
const data = await fetchRankList();
|
|
||||||
displayRankList(data);
|
|
||||||
showRankList();
|
|
||||||
} catch (error) {
|
|
||||||
console.error('加载榜单列表失败:', error);
|
|
||||||
showError(error.message || '加载榜单列表失败,请重试');
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// 获取榜单列表数据
|
|
||||||
async function fetchRankList() {
|
|
||||||
let lastError = null;
|
|
||||||
let attemptedApis = 0;
|
|
||||||
|
|
||||||
// 尝试所有API接口
|
|
||||||
while (attemptedApis < API_ENDPOINTS.length) {
|
|
||||||
try {
|
|
||||||
const apiUrl = API_ENDPOINTS[currentApiIndex];
|
|
||||||
let url = `${apiUrl}/v2/ncm-rank-list`;
|
|
||||||
|
|
||||||
// 处理本地JSON文件
|
|
||||||
if (apiUrl.includes('返回接口.json')) {
|
|
||||||
url = apiUrl;
|
|
||||||
console.log('使用本地测试数据:', url);
|
|
||||||
}
|
|
||||||
// 针对不同API接口格式进行适配
|
|
||||||
else if (apiUrl.includes('03c3.cn') || apiUrl.includes('vvhan.com')) {
|
|
||||||
// 这些API可能有不同的路径格式,需要特殊处理
|
|
||||||
if (apiUrl.includes('03c3.cn')) {
|
|
||||||
url = `${apiUrl}/ncm/toplist`;
|
|
||||||
} else if (apiUrl.includes('vvhan.com')) {
|
|
||||||
url = `${apiUrl}/music/netease/toplist`;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
console.log(`尝试API ${currentApiIndex + 1}/${API_ENDPOINTS.length}:`, url);
|
|
||||||
|
|
||||||
const controller = new AbortController();
|
|
||||||
const timeoutId = setTimeout(() => controller.abort(), 8000); // 缩短超时时间
|
|
||||||
|
|
||||||
const response = await fetch(url, {
|
|
||||||
signal: controller.signal,
|
|
||||||
headers: {
|
|
||||||
'Accept': 'application/json',
|
|
||||||
},
|
|
||||||
// 添加缓存控制
|
|
||||||
cache: 'no-cache',
|
|
||||||
// 添加模式
|
|
||||||
mode: apiUrl.includes('返回接口.json') ? 'same-origin' : 'cors'
|
|
||||||
});
|
|
||||||
|
|
||||||
clearTimeout(timeoutId);
|
|
||||||
|
|
||||||
if (!response.ok) {
|
|
||||||
throw new Error(`HTTP ${response.status}: ${response.statusText}`);
|
|
||||||
}
|
|
||||||
|
|
||||||
const data = await response.json();
|
|
||||||
|
|
||||||
// 不同API可能有不同的成功状态码
|
|
||||||
if (data.code !== undefined && data.code !== 200 && data.code !== 0) {
|
|
||||||
throw new Error(data.message || data.msg || '获取数据失败');
|
|
||||||
}
|
|
||||||
|
|
||||||
console.log('API调用成功:', data);
|
|
||||||
return data;
|
|
||||||
|
|
||||||
} catch (error) {
|
|
||||||
console.warn(`API ${currentApiIndex + 1} 失败:`, error.message);
|
|
||||||
lastError = error;
|
|
||||||
currentApiIndex = (currentApiIndex + 1) % API_ENDPOINTS.length;
|
|
||||||
attemptedApis++;
|
|
||||||
|
|
||||||
if (error.name === 'AbortError') {
|
|
||||||
lastError = new Error('请求超时,请重试');
|
|
||||||
}
|
|
||||||
|
|
||||||
// 添加短暂延迟,避免过快请求下一个API
|
|
||||||
await new Promise(resolve => setTimeout(resolve, 300));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
throw lastError || new Error('所有API接口都无法访问,请稍后再试');
|
|
||||||
}
|
|
||||||
|
|
||||||
// 显示榜单列表
|
|
||||||
function displayRankList(data) {
|
|
||||||
// 适配不同API返回的数据格式
|
|
||||||
let ranks = [];
|
|
||||||
|
|
||||||
// 标准格式:data.data 是数组
|
|
||||||
if (data.data && Array.isArray(data.data)) {
|
|
||||||
ranks = data.data;
|
|
||||||
}
|
|
||||||
// 03c3.cn API格式:data.result 是数组
|
|
||||||
else if (data.result && Array.isArray(data.result)) {
|
|
||||||
ranks = data.result;
|
|
||||||
}
|
|
||||||
// vvhan.com API格式:data.list 是数组
|
|
||||||
else if (data.list && Array.isArray(data.list)) {
|
|
||||||
ranks = data.list;
|
|
||||||
}
|
|
||||||
// 其他可能的格式
|
|
||||||
else if (Array.isArray(data)) {
|
|
||||||
ranks = data;
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
// 尝试查找数据中的任何数组
|
|
||||||
for (const key in data) {
|
|
||||||
if (Array.isArray(data[key]) && data[key].length > 0) {
|
|
||||||
ranks = data[key];
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (ranks.length === 0) {
|
|
||||||
showError('没有找到榜单数据');
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
rankListElement.innerHTML = '';
|
|
||||||
|
|
||||||
ranks.forEach(rank => {
|
|
||||||
// 适配不同API的字段名
|
|
||||||
const id = rank.id || rank.listId || rank.list_id || '';
|
|
||||||
const name = rank.name || rank.listName || rank.list_name || '未知榜单';
|
|
||||||
const cover = rank.cover || rank.coverImgUrl || rank.picUrl || rank.pic || 'https://p2.music.126.net/DrRIg6CrgDfVLEph9SNh7w==/18696095720518497.jpg';
|
|
||||||
const description = rank.description || rank.desc || rank.updateFrequency || '暂无描述';
|
|
||||||
const updateFrequency = rank.update_frequency || rank.updateFrequency || '定期更新';
|
|
||||||
const updated = rank.updated || rank.updateTime || rank.update_time || '';
|
|
||||||
|
|
||||||
const rankItem = document.createElement('div');
|
|
||||||
rankItem.className = 'rank-item';
|
|
||||||
|
|
||||||
rankItem.innerHTML = `
|
|
||||||
<div class="rank-cover">
|
|
||||||
<img src="${cover}" alt="${name}" onerror="this.src='https://p2.music.126.net/DrRIg6CrgDfVLEph9SNh7w==/18696095720518497.jpg'">
|
|
||||||
</div>
|
|
||||||
<div class="rank-info">
|
|
||||||
<h3 class="rank-name">${name}</h3>
|
|
||||||
<p class="rank-description">${description}</p>
|
|
||||||
<div class="rank-meta">
|
|
||||||
<span class="update-frequency">${updateFrequency}</span>
|
|
||||||
<span class="update-time">更新: ${formatDate(updated)}</span>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<a href="../网易云榜单详情/index.html?id=${id}&name=${encodeURIComponent(name)}" class="view-btn">查看详情</a>
|
|
||||||
`;
|
|
||||||
|
|
||||||
rankListElement.appendChild(rankItem);
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
// 格式化日期
|
|
||||||
function formatDate(dateStr) {
|
|
||||||
if (!dateStr) return '未知';
|
|
||||||
|
|
||||||
try {
|
|
||||||
const date = new Date(dateStr);
|
|
||||||
return date.toLocaleString('zh-CN', {
|
|
||||||
year: 'numeric',
|
|
||||||
month: '2-digit',
|
|
||||||
day: '2-digit',
|
|
||||||
hour: '2-digit',
|
|
||||||
minute: '2-digit'
|
|
||||||
});
|
|
||||||
} catch (e) {
|
|
||||||
return dateStr;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
</script>
|
|
||||||
</body>
|
|
||||||
</html>
|
|
||||||
@@ -1,7 +0,0 @@
|
|||||||
[
|
|
||||||
"https://60s.viki.moe",
|
|
||||||
"https://60s-cf.viki.moe",
|
|
||||||
"https://60s.b23.run",
|
|
||||||
"https://60s.114128.xyz",
|
|
||||||
"https://60s-cf.114128.xyz"
|
|
||||||
]
|
|
||||||
@@ -1,750 +0,0 @@
|
|||||||
{
|
|
||||||
"code": 200,
|
|
||||||
"message": "获取成功。数据来自官方/权威源头,以确保稳定与实时。开源地址 https://github.com/vikiboss/60s,反馈群 595941841",
|
|
||||||
"data": [
|
|
||||||
{
|
|
||||||
"id": 19723756,
|
|
||||||
"name": "飙升榜",
|
|
||||||
"description": "云音乐中每天热度上升最快的100首单曲,每日更新。",
|
|
||||||
"cover": "https://p1.music.126.net/rIi7Qzy2i2Y_1QD7cd0MYA==/109951170048506929.jpg",
|
|
||||||
"update_frequency": "每天更新",
|
|
||||||
"updated": "2025-08-27 01:24:43",
|
|
||||||
"updated_at": 1756257883349,
|
|
||||||
"created": "2014-06-30 07:58:56",
|
|
||||||
"created_at": 1404115136883,
|
|
||||||
"link": "https://music.163.com/#/discover/toplist?id=19723756"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"id": 3779629,
|
|
||||||
"name": "新歌榜",
|
|
||||||
"description": "云音乐新歌榜:云音乐用户一周内收听所有新歌(一月内最新发行) 官方TOP排行榜,每天更新。",
|
|
||||||
"cover": "https://p1.music.126.net/5guhqPBTcIrrhLBotgaT6w==/109951170048511751.jpg",
|
|
||||||
"update_frequency": "每天更新",
|
|
||||||
"updated": "2025-08-27 00:56:52",
|
|
||||||
"updated_at": 1756256212440,
|
|
||||||
"created": "2013-09-09 10:09:58",
|
|
||||||
"created_at": 1378721398225,
|
|
||||||
"link": "https://music.163.com/#/discover/toplist?id=3779629"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"id": 2884035,
|
|
||||||
"name": "原创榜",
|
|
||||||
"description": "云音乐独立原创音乐人作品官方榜单,以推荐优秀原创作品为目的。每周四网易云音乐首发。申请网易音乐人:http://music.163.com/nmusician/",
|
|
||||||
"cover": "https://p1.music.126.net/BaP9nrocNTL3gGThysv4eQ==/109951170091896587.jpg",
|
|
||||||
"update_frequency": "每周四更新",
|
|
||||||
"updated": "2025-08-21 02:53:19",
|
|
||||||
"updated_at": 1755744799157,
|
|
||||||
"created": "2013-07-25 06:05:25",
|
|
||||||
"created_at": 1374732325894,
|
|
||||||
"link": "https://music.163.com/#/discover/toplist?id=2884035"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"id": 3778678,
|
|
||||||
"name": "热歌榜",
|
|
||||||
"description": "云音乐热歌榜:云音乐用户一周内收听所有线上歌曲官方TOP排行榜,每日更新。",
|
|
||||||
"cover": "https://p1.music.126.net/0SUEG8yDACfx0Bw2MYFv4Q==/109951170048519512.jpg",
|
|
||||||
"update_frequency": "每天更新",
|
|
||||||
"updated": "2025-08-27 00:57:07",
|
|
||||||
"updated_at": 1756256227510,
|
|
||||||
"created": "2013-09-09 10:10:06",
|
|
||||||
"created_at": 1378721406014,
|
|
||||||
"link": "https://music.163.com/#/discover/toplist?id=3778678"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"id": 991319590,
|
|
||||||
"name": "网易云中文说唱榜",
|
|
||||||
"description": "网易云原创说唱音乐人作品官方榜单,每周五更新。以网易云用户一周播放热度为主,收录2个月内发行的原创说唱作品,按照综合数据排名取前50名。申请网易音乐人:http://music.163.com/nmusician",
|
|
||||||
"cover": "https://p1.music.126.net/GgHbgDfGXHpE2YTchU7IvA==/109951171510498108.jpg",
|
|
||||||
"update_frequency": "每周五更新",
|
|
||||||
"updated": "2025-08-22 02:45:48",
|
|
||||||
"updated_at": 1755830748504,
|
|
||||||
"created": "2017-11-10 05:06:29",
|
|
||||||
"created_at": 1510290389440,
|
|
||||||
"link": "https://music.163.com/#/discover/toplist?id=991319590"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"id": 71384707,
|
|
||||||
"name": "网易云古典榜",
|
|
||||||
"description": "网易云用户一周内收听所有古典音乐官方TOP排行榜,每周四更新。",
|
|
||||||
"cover": "https://p1.music.126.net/urByD_AmfBDBrs7fA9-O8A==/109951167976973225.jpg",
|
|
||||||
"update_frequency": "每周四更新",
|
|
||||||
"updated": "2025-08-21 02:59:09",
|
|
||||||
"updated_at": 1755745149157,
|
|
||||||
"created": "2015-05-07 03:22:00",
|
|
||||||
"created_at": 1430968920537,
|
|
||||||
"link": "https://music.163.com/#/discover/toplist?id=71384707"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"id": 1978921795,
|
|
||||||
"name": "网易云电音榜",
|
|
||||||
"description": "网易云用户一周内收听电子音乐官方TOP排行榜,每周五更新。喜力星电音,用先锋电音带你解锁全新维度和体验!",
|
|
||||||
"cover": "https://p1.music.126.net/hXGObvXfsGtFjFvRhOYAkA==/109951170091888741.jpg",
|
|
||||||
"update_frequency": "每周五更新",
|
|
||||||
"updated": "2025-08-22 09:07:49",
|
|
||||||
"updated_at": 1755853669156,
|
|
||||||
"created": "2017-11-16 09:47:12",
|
|
||||||
"created_at": 1510825632233,
|
|
||||||
"link": "https://music.163.com/#/discover/toplist?id=1978921795"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"id": 14028249541,
|
|
||||||
"name": "网易云全球说唱榜",
|
|
||||||
"description": "想聆听世界的说唱节奏?全球说唱榜每周五更新,聚焦华语地区以外的优秀说唱作品。根据云音乐用户每周播放热度数据,按照综合数据排名取前 50 名。",
|
|
||||||
"cover": "https://p1.music.126.net/0hhFjP6WyIjHYDXKW5E7BA==/109951171535150782.jpg",
|
|
||||||
"update_frequency": "每周五更新",
|
|
||||||
"updated": "2025-08-22 01:58:14",
|
|
||||||
"updated_at": 1755827894399,
|
|
||||||
"created": "2025-07-24 06:09:26",
|
|
||||||
"created_at": 1753337366883,
|
|
||||||
"link": "https://music.163.com/#/discover/toplist?id=14028249541"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"id": 13372522766,
|
|
||||||
"name": "潮流风向榜",
|
|
||||||
"description": "精心挑选云音乐极具声量的音乐作品,呈现歌曲真实热度趋势,榜单每日更新。",
|
|
||||||
"cover": "https://p1.music.126.net/dIKA5e7jCncz2Br1Toxgaw==/109951170621574552.jpg",
|
|
||||||
"update_frequency": "更新74首",
|
|
||||||
"updated": "2025-08-27 04:05:55",
|
|
||||||
"updated_at": 1756267555368,
|
|
||||||
"created": "2025-02-26 06:01:33",
|
|
||||||
"created_at": 1740549693794,
|
|
||||||
"link": "https://music.163.com/#/discover/toplist?id=13372522766"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"id": 12911403728,
|
|
||||||
"name": "音乐合伙人推荐榜",
|
|
||||||
"description": "音乐合伙人近一个月内推荐过的歌曲官方TOP排行榜,每周一更新。 跟随音乐合伙人的步伐,一起发现那些隐藏的音乐瑰宝。",
|
|
||||||
"cover": "https://p1.music.126.net/s6ITpmGjKbyDpi7DPkqd2w==/109951170187827373.jpg",
|
|
||||||
"update_frequency": "每周一更新",
|
|
||||||
"updated": "2025-08-25 04:06:02",
|
|
||||||
"updated_at": 1756094762192,
|
|
||||||
"created": "2024-11-25 07:14:30",
|
|
||||||
"created_at": 1732518870190,
|
|
||||||
"link": "https://music.163.com/#/discover/toplist?id=12911403728"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"id": 12911589513,
|
|
||||||
"name": "音乐合伙人热歌榜",
|
|
||||||
"description": "音乐合伙人近一周评定过的高分热歌官方TOP排行榜,每周一更新。 跟随音乐合伙人的步伐,一起发现那些隐藏的音乐瑰宝。",
|
|
||||||
"cover": "https://p1.music.126.net/RgYxQmB-ZUjkMRo2N1jWnQ==/109951170187823494.jpg",
|
|
||||||
"update_frequency": "每周一更新",
|
|
||||||
"updated": "2025-08-25 04:05:58",
|
|
||||||
"updated_at": 1756094758751,
|
|
||||||
"created": "2024-11-25 07:13:46",
|
|
||||||
"created_at": 1732518826543,
|
|
||||||
"link": "https://music.163.com/#/discover/toplist?id=12911589513"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"id": 12911619970,
|
|
||||||
"name": "音乐合伙人留名榜",
|
|
||||||
"description": "音乐合伙人近一个月内留名过的所有歌曲官方TOP排行榜,每周一更新。 跟随音乐合伙人的步伐,一起发现那些隐藏的音乐瑰宝。",
|
|
||||||
"cover": "https://p1.music.126.net/aJJzGIxhkVaD7dX0XBNUnw==/109951170187831145.jpg",
|
|
||||||
"update_frequency": "每周一更新",
|
|
||||||
"updated": "2025-08-25 04:05:45",
|
|
||||||
"updated_at": 1756094745722,
|
|
||||||
"created": "2024-11-25 07:12:50",
|
|
||||||
"created_at": 1732518770868,
|
|
||||||
"link": "https://music.163.com/#/discover/toplist?id=12911619970"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"id": 12911379734,
|
|
||||||
"name": "音乐合伙人高分新歌榜",
|
|
||||||
"description": "音乐合伙人近期评定过的所有新歌(一个月内最新发行)官方TOP排行榜,每周一更新。 跟随音乐合伙人的步伐,一起发现那些隐藏的音乐瑰宝。",
|
|
||||||
"cover": "https://p1.music.126.net/bfk15bvanhdPFU7yjPFgWA==/109951170187832038.jpg",
|
|
||||||
"update_frequency": "每周一更新",
|
|
||||||
"updated": "2025-08-25 04:05:50",
|
|
||||||
"updated_at": 1756094750117,
|
|
||||||
"created": "2024-11-25 07:11:53",
|
|
||||||
"created_at": 1732518713161,
|
|
||||||
"link": "https://music.163.com/#/discover/toplist?id=12911379734"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"id": 12768855486,
|
|
||||||
"name": "音乐合伙人高分榜",
|
|
||||||
"description": "音乐合伙人的高分歌曲官方榜单,收录近半年来获得音乐合伙人高分推荐的TOP100首歌曲,每日更新。跟随音乐合伙人的步伐,一起发现那些隐藏的音乐瑰宝。",
|
|
||||||
"cover": "https://p1.music.126.net/fPP5T0Z8Ac15qNvRTcHa6g==/109951170074028970.jpg",
|
|
||||||
"update_frequency": "更新27首",
|
|
||||||
"updated": "2025-08-27 04:05:47",
|
|
||||||
"updated_at": 1756267547739,
|
|
||||||
"created": "2024-10-25 03:51:10",
|
|
||||||
"created_at": 1729828270342,
|
|
||||||
"link": "https://music.163.com/#/discover/toplist?id=12768855486"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"id": 5453912201,
|
|
||||||
"name": "黑胶VIP爱听榜",
|
|
||||||
"description": "云音乐站内会员播放热度TOP100的歌曲,每周四更新。\n黑胶们都爱听什么歌曲?\n热门好歌一站式收听,让你念念不忘~\n做尊贵黑胶,畅听品味好歌~",
|
|
||||||
"cover": "https://p1.music.126.net/qo6-o9n5AhMjNyejev38-A==/109951169743111905.jpg",
|
|
||||||
"update_frequency": "每周四更新",
|
|
||||||
"updated": "2025-08-21 10:05:01",
|
|
||||||
"updated_at": 1755770701110,
|
|
||||||
"created": "2021-01-08 06:30:24",
|
|
||||||
"created_at": 1610087424470,
|
|
||||||
"link": "https://music.163.com/#/discover/toplist?id=5453912201"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"id": 71385702,
|
|
||||||
"name": "网易云ACG榜",
|
|
||||||
"description": "网易云用户一周内收听所有ACG音乐官方TOP排行榜,每周四更新。",
|
|
||||||
"cover": "https://p1.music.126.net/na1kEeCS1iZEkzOrs9r_9g==/109951167976973667.jpg",
|
|
||||||
"update_frequency": "每周四更新",
|
|
||||||
"updated": "2025-08-21 04:05:02",
|
|
||||||
"updated_at": 1755749102516,
|
|
||||||
"created": "2015-05-07 03:22:15",
|
|
||||||
"created_at": 1430968935040,
|
|
||||||
"link": "https://music.163.com/#/discover/toplist?id=71385702"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"id": 745956260,
|
|
||||||
"name": "网易云韩语榜",
|
|
||||||
"description": "网易云用户一周内收听所有韩语歌曲官方TOP排行榜,每周四更新。",
|
|
||||||
"cover": "https://p1.music.126.net/5oN9YaFznwNGXkmi8i2Ytw==/109951167430864741.jpg",
|
|
||||||
"update_frequency": "每周四更新",
|
|
||||||
"updated": "2025-08-21 04:05:01",
|
|
||||||
"updated_at": 1755749101352,
|
|
||||||
"created": "2017-05-31 03:34:51",
|
|
||||||
"created_at": 1496201691281,
|
|
||||||
"link": "https://music.163.com/#/discover/toplist?id=745956260"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"id": 180106,
|
|
||||||
"name": "UK排行榜周榜",
|
|
||||||
"description": "UK排行榜",
|
|
||||||
"cover": "https://p1.music.126.net/fhAqiflLy3eU-ldmBQByrg==/109951165613082765.jpg",
|
|
||||||
"update_frequency": "每天更新",
|
|
||||||
"updated": "2025-08-25 03:59:06",
|
|
||||||
"updated_at": 1756094346206,
|
|
||||||
"created": "2013-02-19 02:09:26",
|
|
||||||
"created_at": 1361239766844,
|
|
||||||
"link": "https://music.163.com/#/discover/toplist?id=180106"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"id": 60198,
|
|
||||||
"name": "美国Billboard榜",
|
|
||||||
"description": "美国Billboard排行榜",
|
|
||||||
"cover": "https://p1.music.126.net/rwRsVIJHQ68gglhA6TNEYA==/109951165611413732.jpg",
|
|
||||||
"update_frequency": "刚刚更新",
|
|
||||||
"updated": "2025-08-27 03:38:38",
|
|
||||||
"updated_at": 1756265918370,
|
|
||||||
"created": "2013-01-22 02:51:16",
|
|
||||||
"created_at": 1358823076818,
|
|
||||||
"link": "https://music.163.com/#/discover/toplist?id=60198"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"id": 3812895,
|
|
||||||
"name": "Beatport全球电子舞曲榜",
|
|
||||||
"description": "Beatport全球电子舞曲排行榜TOP100(本榜每周三更新)",
|
|
||||||
"cover": "https://p1.music.126.net/oT-RHuPBJiD7WMoU7WG5Rw==/109951166093489621.jpg",
|
|
||||||
"update_frequency": "更新20首",
|
|
||||||
"updated": "2025-08-27 02:29:37",
|
|
||||||
"updated_at": 1756261777726,
|
|
||||||
"created": "2013-09-11 08:03:09",
|
|
||||||
"created_at": 1378886589466,
|
|
||||||
"link": "https://music.163.com/#/discover/toplist?id=3812895"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"id": 21845217,
|
|
||||||
"name": "KTV唛榜",
|
|
||||||
"description": "KTV唛榜是目前国内首个以全国超过200家KTV点歌平台真实数据的当红歌曲榜单。所涉及的KTV店铺覆盖全国近100多个城市,囊括一、二、三线各级城市及地区。在综合全国各地KTV点唱数据的前提下进行汇总与统计。为了保证信息的及时性,唛榜每周五更新。提供给K迷们最新和最准确的数据。",
|
|
||||||
"cover": "https://p1.music.126.net/5wDP78s43ydVTKt62C8OjQ==/109951165613100063.jpg",
|
|
||||||
"update_frequency": "每周五更新",
|
|
||||||
"updated": "2021-11-26 09:56:43",
|
|
||||||
"updated_at": 1637920603975,
|
|
||||||
"created": "2014-07-18 03:11:33",
|
|
||||||
"created_at": 1405653093230,
|
|
||||||
"link": "https://music.163.com/#/discover/toplist?id=21845217"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"id": 60131,
|
|
||||||
"name": "日本Oricon榜",
|
|
||||||
"description": "日本Oricon数字单曲周榜,每周三更新,欢迎关注。",
|
|
||||||
"cover": "https://p1.music.126.net/aXUPgImt8hhf4cMUZEjP4g==/109951165611417794.jpg",
|
|
||||||
"update_frequency": "每天更新",
|
|
||||||
"updated": "2025-08-22 02:15:24",
|
|
||||||
"updated_at": 1755828924438,
|
|
||||||
"created": "2013-01-08 08:51:24",
|
|
||||||
"created_at": 1357635084874,
|
|
||||||
"link": "https://music.163.com/#/discover/toplist?id=60131"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"id": 2809513713,
|
|
||||||
"name": "网易云欧美热歌榜",
|
|
||||||
"description": "网易云用户一周内收听所有欧美歌曲官方TOP排行榜,每周四更新。\nWestern Hit Chart (updated every Thursday)",
|
|
||||||
"cover": "https://p1.music.126.net/70_EO_Dc7NT_hhfvsapzcQ==/109951167430862162.jpg",
|
|
||||||
"update_frequency": "每周四更新",
|
|
||||||
"updated": "2025-08-21 15:44:14",
|
|
||||||
"updated_at": 1755791054932,
|
|
||||||
"created": "2019-05-22 02:49:33",
|
|
||||||
"created_at": 1558493373769,
|
|
||||||
"link": "https://music.163.com/#/discover/toplist?id=2809513713"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"id": 2809577409,
|
|
||||||
"name": "网易云欧美新歌榜",
|
|
||||||
"description": "网易云用户一周内收听所有欧美新歌(一月内最新发行)官方TOP排行榜,每天更新。\nWestern New Release Chart (new songs released in last 30 days, updated daily)\n",
|
|
||||||
"cover": "https://p1.music.126.net/0lPWpI9Ejn1OiW2LSbg-qw==/109951167430863224.jpg",
|
|
||||||
"update_frequency": "更新17首",
|
|
||||||
"updated": "2025-08-27 07:16:02",
|
|
||||||
"updated_at": 1756278962152,
|
|
||||||
"created": "2019-05-22 02:46:54",
|
|
||||||
"created_at": 1558493214795,
|
|
||||||
"link": "https://music.163.com/#/discover/toplist?id=2809577409"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"id": 27135204,
|
|
||||||
"name": "法国 NRJ Vos Hits 周榜",
|
|
||||||
"description": "法国NRJ电台(national Radio de Jeunes)成立于1981年,总部位于法国巴黎。是法国最受欢迎的音乐电台和听众最多的广播电台之一。NRJ音乐奖素有法国的“格莱美”之称。此榜单针对NRJ电台法国本土热门歌曲排行。【每周五更新】",
|
|
||||||
"cover": "https://p1.music.126.net/-fyzrPWd06FfWl_0JDAxMQ==/109951165613108584.jpg",
|
|
||||||
"update_frequency": "每周五更新",
|
|
||||||
"updated": "2025-08-22 02:15:42",
|
|
||||||
"updated_at": 1755828942531,
|
|
||||||
"created": "2014-09-04 10:03:33",
|
|
||||||
"created_at": 1409825013948,
|
|
||||||
"link": "https://music.163.com/#/discover/toplist?id=27135204"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"id": 3001835560,
|
|
||||||
"name": "网易云ACG动画榜",
|
|
||||||
"description": "网易云中每天热度上升最快的100首ACG动画单曲,每日更新。",
|
|
||||||
"cover": "https://p1.music.126.net/SkGlKQ6acixthb77VlD9eQ==/109951164432300406.jpg",
|
|
||||||
"update_frequency": "更新84首",
|
|
||||||
"updated": "2025-08-27 04:05:09",
|
|
||||||
"updated_at": 1756267509031,
|
|
||||||
"created": "2019-09-27 02:03:58",
|
|
||||||
"created_at": 1569549838610,
|
|
||||||
"link": "https://music.163.com/#/discover/toplist?id=3001835560"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"id": 3001795926,
|
|
||||||
"name": "网易云ACG游戏榜",
|
|
||||||
"description": "网易云中每天热度上升最快的100首ACG游戏单曲,每日更新。",
|
|
||||||
"cover": "https://p1.music.126.net/hivOOHMwEmnn9s_6rgZwEQ==/109951164432303700.jpg",
|
|
||||||
"update_frequency": "更新87首",
|
|
||||||
"updated": "2025-08-27 04:05:18",
|
|
||||||
"updated_at": 1756267518248,
|
|
||||||
"created": "2019-09-27 02:04:56",
|
|
||||||
"created_at": 1569549896656,
|
|
||||||
"link": "https://music.163.com/#/discover/toplist?id=3001795926"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"id": 3001890046,
|
|
||||||
"name": "网易云ACG VOCALOID榜",
|
|
||||||
"description": "",
|
|
||||||
"cover": "https://p1.music.126.net/Ag7RyRCYiINcd9EtRXf6xA==/109951164432303690.jpg",
|
|
||||||
"update_frequency": "更新87首",
|
|
||||||
"updated": "2025-08-27 04:05:27",
|
|
||||||
"updated_at": 1756267527413,
|
|
||||||
"created": "2019-09-27 02:05:25",
|
|
||||||
"created_at": 1569549925472,
|
|
||||||
"link": "https://music.163.com/#/discover/toplist?id=3001890046"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"id": 5059644681,
|
|
||||||
"name": "网易云日语榜",
|
|
||||||
"description": "网易云用户一周内收听所有日语歌曲官方TOP排行榜,每周二更新。",
|
|
||||||
"cover": "https://p1.music.126.net/YFBFNI2F-4BveUpv6FKFuw==/109951167430864069.jpg",
|
|
||||||
"update_frequency": "每周二更新",
|
|
||||||
"updated": "2025-08-26 06:05:02",
|
|
||||||
"updated_at": 1756188302867,
|
|
||||||
"created": "2020-06-11 08:10:00",
|
|
||||||
"created_at": 1591863000459,
|
|
||||||
"link": "https://music.163.com/#/discover/toplist?id=5059644681"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"id": 5059633707,
|
|
||||||
"name": "网易云摇滚榜",
|
|
||||||
"description": "网易云用户一周内收听所有摇滚歌曲官方TOP排行榜,每周五更新。",
|
|
||||||
"cover": "https://p1.music.126.net/LjkX2hktgFD1NXc3W6w0sA==/109951170048522513.jpg",
|
|
||||||
"update_frequency": "每周五更新",
|
|
||||||
"updated": "2025-08-22 09:12:43",
|
|
||||||
"updated_at": 1755853963904,
|
|
||||||
"created": "2020-06-11 08:13:33",
|
|
||||||
"created_at": 1591863213389,
|
|
||||||
"link": "https://music.163.com/#/discover/toplist?id=5059633707"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"id": 5059642708,
|
|
||||||
"name": "网易云国风榜",
|
|
||||||
"description": "网易云用户一周内收听所有国风歌曲官方TOP排行榜,每周五更新。",
|
|
||||||
"cover": "https://p1.music.126.net/kTJC5OBhg8I477X_ZmXyDQ==/109951168539740982.jpg",
|
|
||||||
"update_frequency": "每周五更新",
|
|
||||||
"updated": "2025-08-22 03:10:57",
|
|
||||||
"updated_at": 1755832257607,
|
|
||||||
"created": "2020-06-11 08:14:18",
|
|
||||||
"created_at": 1591863258438,
|
|
||||||
"link": "https://music.163.com/#/discover/toplist?id=5059642708"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"id": 5338990334,
|
|
||||||
"name": "潜力爆款榜",
|
|
||||||
"description": "全民一起PICK潜力好歌,每周二更新",
|
|
||||||
"cover": "https://p1.music.126.net/Mi4QPklg1mtbWAfq74tEqQ==/109951165498334721.jpg",
|
|
||||||
"update_frequency": "每周二更新",
|
|
||||||
"updated": "2025-08-26 04:05:32",
|
|
||||||
"updated_at": 1756181132964,
|
|
||||||
"created": "2020-11-17 06:24:34",
|
|
||||||
"created_at": 1605594274077,
|
|
||||||
"link": "https://music.163.com/#/discover/toplist?id=5338990334"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"id": 5059661515,
|
|
||||||
"name": "网易云民谣榜",
|
|
||||||
"description": "网易云用户一周内收听所有民谣歌曲官方TOP排行榜,每周五更新。",
|
|
||||||
"cover": "https://p1.music.126.net/Xe9qLTAqtBAWX_hPgFHMyw==/109951170048510929.jpg",
|
|
||||||
"update_frequency": "每周五更新",
|
|
||||||
"updated": "2025-08-22 08:39:36",
|
|
||||||
"updated_at": 1755851976839,
|
|
||||||
"created": "2020-06-11 08:10:52",
|
|
||||||
"created_at": 1591863052757,
|
|
||||||
"link": "https://music.163.com/#/discover/toplist?id=5059661515"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"id": 6688069460,
|
|
||||||
"name": "听歌识曲榜",
|
|
||||||
"description": "网易云音乐站内歌曲按用户“听歌识曲”次数排列,每周四更新",
|
|
||||||
"cover": "https://p1.music.126.net/wJVUAiUuykKk7yGbQxDBug==/109951167430857712.jpg",
|
|
||||||
"update_frequency": "每周四更新",
|
|
||||||
"updated": "2025-08-21 15:35:02",
|
|
||||||
"updated_at": 1755790502462,
|
|
||||||
"created": "2021-03-31 08:45:54",
|
|
||||||
"created_at": 1617180354803,
|
|
||||||
"link": "https://music.163.com/#/discover/toplist?id=6688069460"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"id": 6723173524,
|
|
||||||
"name": "网络热歌榜",
|
|
||||||
"description": "网罗一周热门网络歌曲,反映云音乐用户近一周网络热歌收听趋势。每周五更新。",
|
|
||||||
"cover": "https://p1.music.126.net/_kSxOPqQ5J5etC5DKTFwNA==/109951170048519530.jpg",
|
|
||||||
"update_frequency": "每周五更新",
|
|
||||||
"updated": "2025-08-22 01:59:18",
|
|
||||||
"updated_at": 1755827958008,
|
|
||||||
"created": "2021-04-22 02:41:46",
|
|
||||||
"created_at": 1619059306654,
|
|
||||||
"link": "https://music.163.com/#/discover/toplist?id=6723173524"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"id": 6732051320,
|
|
||||||
"name": "俄语榜",
|
|
||||||
"description": "网易云音乐用户一周内收听所有俄罗斯语歌曲官方TOP排行榜,每周四更新。",
|
|
||||||
"cover": "https://p1.music.126.net/HbJ0BK5doY4I4pEMY6-FQw==/109951167430852698.jpg",
|
|
||||||
"update_frequency": "每周四更新",
|
|
||||||
"updated": "2025-08-21 04:05:27",
|
|
||||||
"updated_at": 1755749127585,
|
|
||||||
"created": "2021-04-28 04:05:12",
|
|
||||||
"created_at": 1619582712108,
|
|
||||||
"link": "https://music.163.com/#/discover/toplist?id=6732051320"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"id": 6732014811,
|
|
||||||
"name": "越南语榜",
|
|
||||||
"description": "网易云音乐用户一周内收听所有越南语歌曲官方TOP排行榜,每周四更新。",
|
|
||||||
"cover": "https://p1.music.126.net/N-Y5maLGWgrowt3TE6RtSg==/109951167430857045.jpg",
|
|
||||||
"update_frequency": "每周四更新",
|
|
||||||
"updated": "2025-08-21 04:05:28",
|
|
||||||
"updated_at": 1755749128002,
|
|
||||||
"created": "2021-04-28 04:05:49",
|
|
||||||
"created_at": 1619582749349,
|
|
||||||
"link": "https://music.163.com/#/discover/toplist?id=6732014811"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"id": 6886768100,
|
|
||||||
"name": "中文慢摇DJ榜",
|
|
||||||
"description": "搜索“DJ”,进入慢摇DJ专区,探索更多网络热歌!",
|
|
||||||
"cover": "https://p1.music.126.net/w_01BfDU012ojxnzLO6tYw==/109951167977358686.jpg",
|
|
||||||
"update_frequency": "刚刚更新",
|
|
||||||
"updated": "2025-08-27 04:00:00",
|
|
||||||
"updated_at": 1756267200565,
|
|
||||||
"created": "2021-07-28 10:09:59",
|
|
||||||
"created_at": 1627466999260,
|
|
||||||
"link": "https://music.163.com/#/discover/toplist?id=6886768100"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"id": 6939992364,
|
|
||||||
"name": "俄罗斯top hit流行音乐榜",
|
|
||||||
"description": "top hit榜根据俄罗斯及全球400多个无线广播的音乐播放量和YouTube播放量计算得来,每周一更新。",
|
|
||||||
"cover": "https://p1.music.126.net/KLVO8PxVZzOoLdWQQNyprA==/109951166327316568.jpg",
|
|
||||||
"update_frequency": "每周五更新",
|
|
||||||
"updated": "2025-08-22 06:10:23",
|
|
||||||
"updated_at": 1755843023964,
|
|
||||||
"created": "2021-08-27 03:30:02",
|
|
||||||
"created_at": 1630035002268,
|
|
||||||
"link": "https://music.163.com/#/discover/toplist?id=6939992364"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"id": 7095271308,
|
|
||||||
"name": "泰语榜",
|
|
||||||
"description": "网易云音乐用户一周内收听所有泰语歌曲官方TOP排行榜,每周四更新。",
|
|
||||||
"cover": "https://p1.music.126.net/4W0WBHBgwYlYfRniuyL47A==/109951167430843284.jpg",
|
|
||||||
"update_frequency": "每周四更新",
|
|
||||||
"updated": "2025-08-21 02:26:07",
|
|
||||||
"updated_at": 1755743167588,
|
|
||||||
"created": "2021-11-29 06:22:17",
|
|
||||||
"created_at": 1638166937809,
|
|
||||||
"link": "https://music.163.com/#/discover/toplist?id=7095271308"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"id": 7356827205,
|
|
||||||
"name": "BEAT排行榜",
|
|
||||||
"description": "嘿~朋友,欢迎来到本周的Beat排行榜\n我们挑选了近一周内热门的Beat作品,一起来感受下大家近期的“口味”吧!\n每周都会更新哦,记得按下收藏,我每天都会在这里等你来与我交流!~\n\n关于Beat的必备小知识\nQ1.什么是Beat?\nBeat即节拍,特指嘻哈音乐中的伴奏,现在也可指所有流行音乐的伴奏\nQ2.Beat有什么用?\n在Beat的帮助下,你只需要填词演唱即可完成一首歌曲的创作,而且Beat也可以作为各种流媒体的背景音乐或是多场景现场演出的得力助手,不同风格的Beat还能为你的音乐创作提供灵感哦~\n搜索关注“BEATSOUL激灵”网易云官号,探索更多炸裂音乐内容~",
|
|
||||||
"cover": "https://p1.music.126.net/yhzlQJCJ9NcT4MvJBG_HgQ==/109951167977014958.jpg",
|
|
||||||
"update_frequency": "每周四更新",
|
|
||||||
"updated": "2025-08-21 12:05:01",
|
|
||||||
"updated_at": 1755777901037,
|
|
||||||
"created": "2022-03-29 11:39:58",
|
|
||||||
"created_at": 1648553998273,
|
|
||||||
"link": "https://music.163.com/#/discover/toplist?id=7356827205"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"id": 7325478166,
|
|
||||||
"name": "星云榜VOL.29 Addison Rae新专来袭,寻找最真实的自己",
|
|
||||||
"description": "精心评审,专业推荐。每周五更新,为你呈现宝藏新歌。\n1、《Aquamarinee》歌手:Addison Rae\n2、《羽毛剑》歌手:秦凡淇\n3、《Take me back》歌手:HAIM\n4、《妈妈的眼睛》歌手:张震岳\n5、《25岁永不停下》歌手:张醒婵\n6、《雨季症候》歌手:SHARK卫彬月\n7、《山东王FREESTYLE》歌手:华云龙KLE\n8、《LOVE I NEED》歌手:陈瑜Estelle\n9、《FFFFF》歌手:刘柏辛Lexie\n10、《Vipaśyanā》歌手:Namunong\n本期封面:Addison Rae,Aquamarine",
|
|
||||||
"cover": "https://p2.music.126.net/u440jFG0N5i06C9ejOeMCQ==/109951171381091309.jpg",
|
|
||||||
"update_frequency": "每周五更新",
|
|
||||||
"updated": "2025-06-30 08:17:26",
|
|
||||||
"updated_at": 1751271446032,
|
|
||||||
"created": "2022-03-09 03:24:46",
|
|
||||||
"created_at": 1646796286440,
|
|
||||||
"link": "https://music.163.com/#/discover/toplist?id=7325478166"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"id": 7603212484,
|
|
||||||
"name": "LOOK直播歌曲榜",
|
|
||||||
"description": "LOOK直播好歌共赏,专属你的声音聊愈场。榜单选取符合条件且近7日热度最高的前50首歌曲,每周二更新。",
|
|
||||||
"cover": "https://p2.music.126.net/u-RQC-LyY0aoeseRumJ14A==/109951167977730469.jpg",
|
|
||||||
"update_frequency": "每周二更新",
|
|
||||||
"updated": "2024-05-07 13:23:03",
|
|
||||||
"updated_at": 1715088183913,
|
|
||||||
"created": "2022-08-23 01:54:56",
|
|
||||||
"created_at": 1661219696017,
|
|
||||||
"link": "https://music.163.com/#/discover/toplist?id=7603212484"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"id": 7775163417,
|
|
||||||
"name": "赏音榜",
|
|
||||||
"description": "云音乐歌曲赏音榜,以让用户鉴赏到更多潜力好歌为目的,以用户对歌曲互动热度为核心,按照综合数据排名取前100名,每日更新",
|
|
||||||
"cover": "https://p2.music.126.net/m9hQzC-d5wefBipedNPaHg==/109951168178601971.jpg",
|
|
||||||
"update_frequency": "更新92首",
|
|
||||||
"updated": "2025-08-27 04:05:36",
|
|
||||||
"updated_at": 1756267536926,
|
|
||||||
"created": "2022-11-28 06:46:19",
|
|
||||||
"created_at": 1669617979380,
|
|
||||||
"link": "https://music.163.com/#/discover/toplist?id=7775163417"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"id": 7785123708,
|
|
||||||
"name": "黑胶VIP新歌榜",
|
|
||||||
"description": "云音乐站内播放热度TOP50的7日内新晋会员歌曲,每日更新。\n更适合黑胶体质的新歌榜单来啦!\n耳机分你一只,新曲一起来听~\n成为尊贵黑胶,不错过每一首VIP新歌!",
|
|
||||||
"cover": "https://p2.music.126.net/vjitpkT9nXBCth6tvdDMWg==/109951169743115266.jpg",
|
|
||||||
"update_frequency": "更新33首",
|
|
||||||
"updated": "2025-08-27 04:05:38",
|
|
||||||
"updated_at": 1756267538662,
|
|
||||||
"created": "2022-12-02 10:51:16",
|
|
||||||
"created_at": 1669978276103,
|
|
||||||
"link": "https://music.163.com/#/discover/toplist?id=7785123708"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"id": 7785066739,
|
|
||||||
"name": "黑胶VIP热歌榜",
|
|
||||||
"description": "云音乐站内播放和付费热度TOP50的会员歌曲,每日更新。\n更适合黑胶体质的热歌榜单来啦!\n哪首是你的单曲循环?\n成为尊贵黑胶,随心畅听热门好歌!",
|
|
||||||
"cover": "https://p2.music.126.net/Ay3mLgQ9weG_c8JjYrD-Bw==/109951169743106495.jpg",
|
|
||||||
"update_frequency": "刚刚更新",
|
|
||||||
"updated": "2025-08-27 04:05:37",
|
|
||||||
"updated_at": 1756267537688,
|
|
||||||
"created": "2022-12-02 10:51:31",
|
|
||||||
"created_at": 1669978291024,
|
|
||||||
"link": "https://music.163.com/#/discover/toplist?id=7785066739"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"id": 7785091694,
|
|
||||||
"name": "黑胶VIP爱搜榜",
|
|
||||||
"description": "云音乐站内会员搜索播放热度TOP50的歌曲,每日更新。\n更适合黑胶体质的搜歌榜单来啦!\n热搜好歌一网打尽,只为有品位的你~\n成为尊贵黑胶,你搜我听畅听不停!",
|
|
||||||
"cover": "https://p2.music.126.net/R7DtZqNraesnsiaIKvzTHA==/109951169743112799.jpg",
|
|
||||||
"update_frequency": "更新36首",
|
|
||||||
"updated": "2025-08-27 04:05:42",
|
|
||||||
"updated_at": 1756267542318,
|
|
||||||
"created": "2022-12-02 10:51:43",
|
|
||||||
"created_at": 1669978303210,
|
|
||||||
"link": "https://music.163.com/#/discover/toplist?id=7785091694"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"id": 8246775932,
|
|
||||||
"name": "实时热度榜",
|
|
||||||
"description": "每天9-23点为你精选当下歌曲热度最高的歌曲",
|
|
||||||
"cover": "https://p2.music.126.net/U7ZbdpWzRdmZVr6Khn_4ag==/109951168673982478.jpg",
|
|
||||||
"update_frequency": "刚刚更新",
|
|
||||||
"updated": "2025-08-27 13:15:01",
|
|
||||||
"updated_at": 1756300501119,
|
|
||||||
"created": "2023-03-20 02:39:59",
|
|
||||||
"created_at": 1679279999154,
|
|
||||||
"link": "https://music.163.com/#/discover/toplist?id=8246775932"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"id": 8537588450,
|
|
||||||
"name": "喜力®星电音派对潮音榜",
|
|
||||||
"description": "乐无界,越未来!《星电音联盟》歌曲官方榜单,每周一更新,让云村村民们随时随地躁起高燃派对氛围!喜力®星电音构建狂欢永不停歇的新奇电音宇宙,激活潮流基因,释放先锋灵感,跨维开启奇妙电音之旅!",
|
|
||||||
"cover": "https://p2.music.126.net/HVu2hGYvzN5XBuvFc_4Bgg==/109951168730309120.jpg",
|
|
||||||
"update_frequency": "每周五更新",
|
|
||||||
"updated": "2024-09-16 04:05:30",
|
|
||||||
"updated_at": 1726459530378,
|
|
||||||
"created": "2023-07-07 02:48:39",
|
|
||||||
"created_at": 1688698119437,
|
|
||||||
"link": "https://music.163.com/#/discover/toplist?id=8537588450"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"id": 8661209031,
|
|
||||||
"name": "乐夏榜",
|
|
||||||
"description": "听乐夏,上网易云,一头扎进爱音乐的人群! 综艺《乐队的夏天3》官方榜单,每周一更新。和三星折叠屏手机一起畅听《乐队的夏天3》官方榜单,折叠看三星,五代更来劲。",
|
|
||||||
"cover": "https://p2.music.126.net/RlStCmE97y0xYFk7rS3Zww==/109951168864907822.jpg",
|
|
||||||
"update_frequency": "每周一更新",
|
|
||||||
"updated": "2025-08-25 04:05:40",
|
|
||||||
"updated_at": 1756094740529,
|
|
||||||
"created": "2023-08-16 09:47:27",
|
|
||||||
"created_at": 1692179247425,
|
|
||||||
"link": "https://music.163.com/#/discover/toplist?id=8661209031"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"id": 8703179781,
|
|
||||||
"name": "特斯拉车友爱听榜",
|
|
||||||
"description": null,
|
|
||||||
"cover": "https://p2.music.126.net/UL8dhobSa3TR6Wd1JmWe_g==/109951168924385363.jpg",
|
|
||||||
"update_frequency": "每周一更新",
|
|
||||||
"updated": "2025-08-25 08:05:04",
|
|
||||||
"updated_at": 1756109104224,
|
|
||||||
"created": "2023-08-31 04:29:59",
|
|
||||||
"created_at": 1693456199735,
|
|
||||||
"link": "https://music.163.com/#/discover/toplist?id=8703179781"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"id": 8703052295,
|
|
||||||
"name": "理想车友爱听榜",
|
|
||||||
"description": null,
|
|
||||||
"cover": "https://p2.music.126.net/U--PWdWupY1ER5cVSjr1jQ==/109951168928365496.jpg",
|
|
||||||
"update_frequency": "每周一更新",
|
|
||||||
"updated": "2025-08-25 08:05:04",
|
|
||||||
"updated_at": 1756109104985,
|
|
||||||
"created": "2023-08-31 04:38:29",
|
|
||||||
"created_at": 1693456709598,
|
|
||||||
"link": "https://music.163.com/#/discover/toplist?id=8703052295"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"id": 8702582160,
|
|
||||||
"name": "比亚迪车友爱听榜",
|
|
||||||
"description": null,
|
|
||||||
"cover": "https://p2.music.126.net/S1OG-OLTaofa3HfrHW48kA==/109951168924393585.jpg",
|
|
||||||
"update_frequency": "每周一更新",
|
|
||||||
"updated": "2025-08-25 08:05:03",
|
|
||||||
"updated_at": 1756109103855,
|
|
||||||
"created": "2023-08-31 04:38:42",
|
|
||||||
"created_at": 1693456722262,
|
|
||||||
"link": "https://music.163.com/#/discover/toplist?id=8702582160"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"id": 8703220480,
|
|
||||||
"name": "蔚来车友爱听榜",
|
|
||||||
"description": null,
|
|
||||||
"cover": "https://p2.music.126.net/r9kBQNsOro1EAB82Ol51WQ==/109951168924380971.jpg",
|
|
||||||
"update_frequency": "每周一更新",
|
|
||||||
"updated": "2025-08-25 08:05:02",
|
|
||||||
"updated_at": 1756109102267,
|
|
||||||
"created": "2023-08-31 04:38:56",
|
|
||||||
"created_at": 1693456736086,
|
|
||||||
"link": "https://music.163.com/#/discover/toplist?id=8703220480"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"id": 8702982391,
|
|
||||||
"name": "极氪车友爱听榜",
|
|
||||||
"description": null,
|
|
||||||
"cover": "https://p2.music.126.net/Cu0RXoKewSPM9Gyc7Cp8jw==/109951168924391596.jpg",
|
|
||||||
"update_frequency": "每周一更新",
|
|
||||||
"updated": "2025-08-25 08:05:03",
|
|
||||||
"updated_at": 1756109103634,
|
|
||||||
"created": "2023-08-31 04:39:19",
|
|
||||||
"created_at": 1693456759762,
|
|
||||||
"link": "https://music.163.com/#/discover/toplist?id=8702982391"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"id": 8532443277,
|
|
||||||
"name": "蛋仔派对听歌榜",
|
|
||||||
"description": "来自蛋仔岛的热播歌曲速递,网易《蛋仔派对》官方榜单,每周五更新。云村村民们,和蛋仔们一起随歌摇摆吧!",
|
|
||||||
"cover": "https://p2.music.126.net/TMb0be5QLMZKOFeuOKT4tg==/109951168717283910.jpg",
|
|
||||||
"update_frequency": "每周五更新",
|
|
||||||
"updated": "2025-08-22 04:05:44",
|
|
||||||
"updated_at": 1755835544365,
|
|
||||||
"created": "2023-07-05 02:32:04",
|
|
||||||
"created_at": 1688524324879,
|
|
||||||
"link": "https://music.163.com/#/discover/toplist?id=8532443277"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"id": 9651277674,
|
|
||||||
"name": "AI歌曲榜",
|
|
||||||
"description": "精心挑选每日最新最热AI生成歌曲,榜单每日更新,一起感受AI的独特魅力吧!",
|
|
||||||
"cover": "https://p2.music.126.net/M0m6GeZ1Y8Osz9jqxaW8Wg==/109951169462048035.jpg",
|
|
||||||
"update_frequency": "更新12首",
|
|
||||||
"updated": "2025-08-27 04:05:43",
|
|
||||||
"updated_at": 1756267543655,
|
|
||||||
"created": "2024-04-02 10:25:12",
|
|
||||||
"created_at": 1712053512213,
|
|
||||||
"link": "https://music.163.com/#/discover/toplist?id=9651277674"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"id": 10131772880,
|
|
||||||
"name": "昊铂车友爱听榜",
|
|
||||||
"description": null,
|
|
||||||
"cover": "https://p2.music.126.net/EL7H4rkKejZY7Uv54EFNXg==/109951169655010112.jpg",
|
|
||||||
"update_frequency": "每周一更新",
|
|
||||||
"updated": "2025-08-25 08:05:01",
|
|
||||||
"updated_at": 1756109101438,
|
|
||||||
"created": "2024-06-04 08:50:00",
|
|
||||||
"created_at": 1717491000945,
|
|
||||||
"link": "https://music.163.com/#/discover/toplist?id=10131772880"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"id": 10162841534,
|
|
||||||
"name": "埃安车友爱听榜",
|
|
||||||
"description": "埃安车友平时都在听什么??",
|
|
||||||
"cover": "https://p2.music.126.net/FcP1U6Bck0wPKqd0XgBwSQ==/109951169679731241.jpg",
|
|
||||||
"update_frequency": "每周一更新",
|
|
||||||
"updated": "2025-08-25 08:05:03",
|
|
||||||
"updated_at": 1756109103115,
|
|
||||||
"created": "2024-06-12 05:31:44",
|
|
||||||
"created_at": 1718170304691,
|
|
||||||
"link": "https://music.163.com/#/discover/toplist?id=10162841534"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"id": 12225155968,
|
|
||||||
"name": "欧美R&B榜",
|
|
||||||
"description": "云音乐用户一周内收听节奏布鲁斯(R&B)官方TOP排行榜,每周五更新。",
|
|
||||||
"cover": "https://p2.music.126.net/0E6MzYzyA5uvQ4CSoIG2mw==/109951169739660034.jpg",
|
|
||||||
"update_frequency": "每周五更新",
|
|
||||||
"updated": "2025-08-22 04:05:46",
|
|
||||||
"updated_at": 1755835546525,
|
|
||||||
"created": "2024-06-25 10:14:05",
|
|
||||||
"created_at": 1719310445382,
|
|
||||||
"link": "https://music.163.com/#/discover/toplist?id=12225155968"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"id": 12344472377,
|
|
||||||
"name": "黑胶VIP限免榜",
|
|
||||||
"description": "云音乐站内热度最高的限免播放歌曲TOP50,每日更新。\n人气旋律一听就会爱上!现在马上进入免费模式(点击云音乐首页左上角侧边栏,选择“免费听歌”)畅听全榜吧!",
|
|
||||||
"cover": "https://p2.music.126.net/WXCSf4ZNcDCdOTY5ixm3Bg==/109951169809318325.jpg",
|
|
||||||
"update_frequency": "更新11首",
|
|
||||||
"updated": "2025-08-27 04:05:44",
|
|
||||||
"updated_at": 1756267544856,
|
|
||||||
"created": "2024-07-23 08:08:37",
|
|
||||||
"created_at": 1721722117311,
|
|
||||||
"link": "https://music.163.com/#/discover/toplist?id=12344472377"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"id": 12717025277,
|
|
||||||
"name": "吉利车友爱听榜",
|
|
||||||
"description": null,
|
|
||||||
"cover": "https://p2.music.126.net/XVmZb3JSyrwMgqu9WVz61A==/109951170037568570.jpg",
|
|
||||||
"update_frequency": "每周一更新",
|
|
||||||
"updated": "2025-08-25 08:05:00",
|
|
||||||
"updated_at": 1756109100809,
|
|
||||||
"created": "2024-10-12 05:44:04",
|
|
||||||
"created_at": 1728711844151,
|
|
||||||
"link": "https://music.163.com/#/discover/toplist?id=12717025277"
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
@@ -1,155 +0,0 @@
|
|||||||
/* 网易云音乐特色背景样式 */
|
|
||||||
body {
|
|
||||||
background: linear-gradient(135deg, #2b2b2b 0%, #1e1e1e 50%, #2b2b2b 100%);
|
|
||||||
background-size: 400% 400%;
|
|
||||||
animation: gradientShift 15s ease infinite;
|
|
||||||
position: relative;
|
|
||||||
color: #fff;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* 背景渐变动画 */
|
|
||||||
@keyframes gradientShift {
|
|
||||||
0% {
|
|
||||||
background-position: 0% 50%;
|
|
||||||
}
|
|
||||||
50% {
|
|
||||||
background-position: 100% 50%;
|
|
||||||
}
|
|
||||||
100% {
|
|
||||||
background-position: 0% 50%;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/* 网易云红色装饰元素 */
|
|
||||||
body::before {
|
|
||||||
content: '';
|
|
||||||
position: fixed;
|
|
||||||
top: 0;
|
|
||||||
left: 0;
|
|
||||||
width: 100%;
|
|
||||||
height: 100%;
|
|
||||||
background-image:
|
|
||||||
radial-gradient(circle at 20% 80%, rgba(236, 65, 65, 0.15) 0%, transparent 50%),
|
|
||||||
radial-gradient(circle at 80% 20%, rgba(236, 65, 65, 0.1) 0%, transparent 50%),
|
|
||||||
radial-gradient(circle at 40% 40%, rgba(236, 65, 65, 0.08) 0%, transparent 50%);
|
|
||||||
pointer-events: none;
|
|
||||||
z-index: -2;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* 音符装饰效果 */
|
|
||||||
body::after {
|
|
||||||
content: '';
|
|
||||||
position: fixed;
|
|
||||||
top: 0;
|
|
||||||
left: 0;
|
|
||||||
width: 100%;
|
|
||||||
height: 100%;
|
|
||||||
background-image:
|
|
||||||
radial-gradient(2px 2px at 20px 30px, rgba(236, 65, 65, 0.4), transparent),
|
|
||||||
radial-gradient(2px 2px at 40px 70px, rgba(236, 65, 65, 0.3), transparent),
|
|
||||||
radial-gradient(1px 1px at 90px 40px, rgba(236, 65, 65, 0.4), transparent),
|
|
||||||
radial-gradient(1px 1px at 130px 80px, rgba(236, 65, 65, 0.3), transparent),
|
|
||||||
radial-gradient(2px 2px at 160px 30px, rgba(236, 65, 65, 0.4), transparent);
|
|
||||||
background-repeat: repeat;
|
|
||||||
background-size: 200px 100px;
|
|
||||||
animation: particleFloat 20s linear infinite;
|
|
||||||
pointer-events: none;
|
|
||||||
z-index: -1;
|
|
||||||
opacity: 0.6;
|
|
||||||
}
|
|
||||||
|
|
||||||
@keyframes particleFloat {
|
|
||||||
0% {
|
|
||||||
transform: translateY(0px);
|
|
||||||
}
|
|
||||||
100% {
|
|
||||||
transform: translateY(-100px);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/* 响应式背景调整 */
|
|
||||||
@media (max-width: 768px) {
|
|
||||||
body::after {
|
|
||||||
background-size: 150px 75px;
|
|
||||||
animation-duration: 25s;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@media (max-width: 480px) {
|
|
||||||
body::after {
|
|
||||||
background-size: 100px 50px;
|
|
||||||
animation-duration: 30s;
|
|
||||||
opacity: 0.4;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/* 音符装饰 */
|
|
||||||
.music-note {
|
|
||||||
position: absolute;
|
|
||||||
font-size: 24px;
|
|
||||||
color: rgba(236, 65, 65, 0.3);
|
|
||||||
animation: floatNote 15s linear infinite;
|
|
||||||
z-index: -1;
|
|
||||||
}
|
|
||||||
|
|
||||||
@keyframes floatNote {
|
|
||||||
0% {
|
|
||||||
transform: translateY(0) rotate(0deg);
|
|
||||||
opacity: 0;
|
|
||||||
}
|
|
||||||
10% {
|
|
||||||
opacity: 0.8;
|
|
||||||
}
|
|
||||||
90% {
|
|
||||||
opacity: 0.8;
|
|
||||||
}
|
|
||||||
100% {
|
|
||||||
transform: translateY(-100vh) rotate(360deg);
|
|
||||||
opacity: 0;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/* 高性能模式 - 减少动画 */
|
|
||||||
@media (prefers-reduced-motion: reduce) {
|
|
||||||
body {
|
|
||||||
animation: none;
|
|
||||||
background: linear-gradient(135deg, #2b2b2b 0%, #1e1e1e 50%, #2b2b2b 100%);
|
|
||||||
}
|
|
||||||
|
|
||||||
body::after {
|
|
||||||
animation: none;
|
|
||||||
}
|
|
||||||
|
|
||||||
.music-note {
|
|
||||||
animation: none;
|
|
||||||
display: none;
|
|
||||||
}
|
|
||||||
|
|
||||||
.title {
|
|
||||||
animation: none;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/* 深色模式支持 */
|
|
||||||
@media (prefers-color-scheme: dark) {
|
|
||||||
body {
|
|
||||||
background: linear-gradient(135deg, #1B5E20 0%, #2E7D32 25%, #388E3C 50%, #43A047 75%, #4CAF50 100%);
|
|
||||||
}
|
|
||||||
|
|
||||||
body::before {
|
|
||||||
background-image:
|
|
||||||
radial-gradient(circle at 20% 80%, rgba(255, 255, 255, 0.05) 0%, transparent 50%),
|
|
||||||
radial-gradient(circle at 80% 20%, rgba(255, 255, 255, 0.03) 0%, transparent 50%),
|
|
||||||
radial-gradient(circle at 40% 40%, rgba(255, 255, 255, 0.02) 0%, transparent 50%);
|
|
||||||
}
|
|
||||||
|
|
||||||
body::after {
|
|
||||||
background-image:
|
|
||||||
radial-gradient(1px 1px at 20px 30px, rgba(255, 255, 255, 0.1), transparent),
|
|
||||||
radial-gradient(1px 1px at 40px 70px, rgba(255, 255, 255, 0.08), transparent),
|
|
||||||
radial-gradient(1px 1px at 90px 40px, rgba(255, 255, 255, 0.06), transparent),
|
|
||||||
radial-gradient(1px 1px at 130px 80px, rgba(255, 255, 255, 0.04), transparent),
|
|
||||||
radial-gradient(1px 1px at 160px 30px, rgba(255, 255, 255, 0.05), transparent);
|
|
||||||
opacity: 0.3;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,395 +0,0 @@
|
|||||||
/* 背景样式 */
|
|
||||||
.background-container {
|
|
||||||
position: fixed;
|
|
||||||
top: 0;
|
|
||||||
left: 0;
|
|
||||||
width: 100%;
|
|
||||||
height: 100%;
|
|
||||||
z-index: -1;
|
|
||||||
overflow: hidden;
|
|
||||||
background-color: #f8f9fa;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* 返回链接样式 */
|
|
||||||
.back-link {
|
|
||||||
display: inline-block;
|
|
||||||
margin-top: 10px;
|
|
||||||
color: #1DB954;
|
|
||||||
text-decoration: none;
|
|
||||||
font-weight: 500;
|
|
||||||
transition: color 0.3s ease;
|
|
||||||
}
|
|
||||||
|
|
||||||
.back-link:hover {
|
|
||||||
color: #1ed760;
|
|
||||||
text-decoration: underline;
|
|
||||||
}
|
|
||||||
|
|
||||||
.modern-gradient {
|
|
||||||
position: absolute;
|
|
||||||
top: -50%;
|
|
||||||
left: -50%;
|
|
||||||
width: 200%;
|
|
||||||
height: 200%;
|
|
||||||
background: linear-gradient(
|
|
||||||
135deg,
|
|
||||||
rgba(64, 169, 255, 0.4) 0%,
|
|
||||||
rgba(120, 192, 255, 0.3) 25%,
|
|
||||||
rgba(255, 175, 64, 0.2) 50%,
|
|
||||||
rgba(255, 140, 50, 0.3) 75%,
|
|
||||||
rgba(255, 122, 69, 0.4) 100%
|
|
||||||
);
|
|
||||||
animation: gradient-flow 20s ease-in-out infinite;
|
|
||||||
border-radius: 30% 70% 70% 30% / 30% 30% 70% 70%;
|
|
||||||
}
|
|
||||||
|
|
||||||
.modern-gradient::before {
|
|
||||||
content: '';
|
|
||||||
position: absolute;
|
|
||||||
top: 0;
|
|
||||||
left: 0;
|
|
||||||
width: 100%;
|
|
||||||
height: 100%;
|
|
||||||
background: radial-gradient(
|
|
||||||
circle at 30% 70%,
|
|
||||||
rgba(64, 169, 255, 0.5) 0%,
|
|
||||||
transparent 50%
|
|
||||||
), radial-gradient(
|
|
||||||
circle at 70% 30%,
|
|
||||||
rgba(255, 140, 50, 0.4) 0%,
|
|
||||||
transparent 50%
|
|
||||||
);
|
|
||||||
animation: pulse-effect 15s ease-in-out infinite alternate;
|
|
||||||
border-radius: 30% 70% 70% 30% / 30% 30% 70% 70%;
|
|
||||||
}
|
|
||||||
|
|
||||||
@keyframes gradient-flow {
|
|
||||||
0%, 100% {
|
|
||||||
transform: rotate(0deg) scale(1);
|
|
||||||
opacity: 0.8;
|
|
||||||
}
|
|
||||||
25% {
|
|
||||||
transform: rotate(90deg) scale(1.1);
|
|
||||||
opacity: 0.6;
|
|
||||||
}
|
|
||||||
50% {
|
|
||||||
transform: rotate(180deg) scale(0.9);
|
|
||||||
opacity: 0.9;
|
|
||||||
}
|
|
||||||
75% {
|
|
||||||
transform: rotate(270deg) scale(1.05);
|
|
||||||
opacity: 0.7;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@keyframes pulse-effect {
|
|
||||||
0% {
|
|
||||||
transform: scale(1) rotate(0deg);
|
|
||||||
opacity: 0.5;
|
|
||||||
}
|
|
||||||
50% {
|
|
||||||
transform: scale(1.2) rotate(180deg);
|
|
||||||
opacity: 0.8;
|
|
||||||
}
|
|
||||||
100% {
|
|
||||||
transform: scale(1) rotate(360deg);
|
|
||||||
opacity: 0.6;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/* 主样式 */
|
|
||||||
* {
|
|
||||||
margin: 0;
|
|
||||||
padding: 0;
|
|
||||||
box-sizing: border-box;
|
|
||||||
}
|
|
||||||
|
|
||||||
body {
|
|
||||||
font-family: 'PingFang SC', 'Microsoft YaHei', sans-serif;
|
|
||||||
color: #333;
|
|
||||||
background-color: #f8f9fa;
|
|
||||||
position: relative;
|
|
||||||
min-height: 100vh;
|
|
||||||
overflow-x: hidden;
|
|
||||||
}
|
|
||||||
|
|
||||||
.container {
|
|
||||||
max-width: 1200px;
|
|
||||||
margin: 0 auto;
|
|
||||||
padding: 24px;
|
|
||||||
position: relative;
|
|
||||||
z-index: 1;
|
|
||||||
background-color: rgba(255, 255, 255, 0.9);
|
|
||||||
border-radius: 16px;
|
|
||||||
box-shadow: 0 10px 30px rgba(0, 0, 0, 0.08);
|
|
||||||
backdrop-filter: blur(10px);
|
|
||||||
}
|
|
||||||
|
|
||||||
header {
|
|
||||||
text-align: center;
|
|
||||||
margin-bottom: 28px;
|
|
||||||
padding-bottom: 20px;
|
|
||||||
border-bottom: 1px solid rgba(0, 0, 0, 0.06);
|
|
||||||
}
|
|
||||||
|
|
||||||
header h1 {
|
|
||||||
background: linear-gradient(135deg, #4096ff, #ff7a45);
|
|
||||||
-webkit-background-clip: text;
|
|
||||||
background-clip: text;
|
|
||||||
color: transparent;
|
|
||||||
margin-bottom: 14px;
|
|
||||||
font-size: 2.4rem;
|
|
||||||
font-weight: 700;
|
|
||||||
letter-spacing: -0.5px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.update-time {
|
|
||||||
color: #666;
|
|
||||||
font-size: 0.9rem;
|
|
||||||
background-color: rgba(0, 0, 0, 0.03);
|
|
||||||
padding: 8px 16px;
|
|
||||||
border-radius: 24px;
|
|
||||||
display: inline-block;
|
|
||||||
box-shadow: 0 2px 8px rgba(0, 0, 0, 0.04);
|
|
||||||
}
|
|
||||||
|
|
||||||
.hot-list {
|
|
||||||
list-style: none;
|
|
||||||
}
|
|
||||||
|
|
||||||
.hot-item {
|
|
||||||
padding: 20px;
|
|
||||||
margin-bottom: 16px;
|
|
||||||
border-radius: 12px;
|
|
||||||
background-color: white;
|
|
||||||
box-shadow: 0 4px 12px rgba(0, 0, 0, 0.04);
|
|
||||||
transition: all 0.3s ease;
|
|
||||||
display: flex;
|
|
||||||
align-items: center;
|
|
||||||
border: 1px solid rgba(0, 0, 0, 0.03);
|
|
||||||
}
|
|
||||||
|
|
||||||
.hot-item:hover {
|
|
||||||
transform: translateY(-3px);
|
|
||||||
box-shadow: 0 8px 24px rgba(0, 0, 0, 0.08);
|
|
||||||
border-color: rgba(64, 169, 255, 0.3);
|
|
||||||
}
|
|
||||||
|
|
||||||
.hot-rank {
|
|
||||||
font-size: 1.2rem;
|
|
||||||
font-weight: bold;
|
|
||||||
color: #4096ff;
|
|
||||||
margin-right: 18px;
|
|
||||||
min-width: 38px;
|
|
||||||
text-align: center;
|
|
||||||
background-color: rgba(64, 169, 255, 0.1);
|
|
||||||
border-radius: 50%;
|
|
||||||
width: 38px;
|
|
||||||
height: 38px;
|
|
||||||
display: flex;
|
|
||||||
align-items: center;
|
|
||||||
justify-content: center;
|
|
||||||
}
|
|
||||||
|
|
||||||
.hot-rank.top-1 {
|
|
||||||
background: linear-gradient(135deg, #ff4d4f, #ff7a45);
|
|
||||||
color: white;
|
|
||||||
}
|
|
||||||
|
|
||||||
.hot-rank.top-2 {
|
|
||||||
background: linear-gradient(135deg, #ff7a45, #ffa940);
|
|
||||||
color: white;
|
|
||||||
}
|
|
||||||
|
|
||||||
.hot-rank.top-3 {
|
|
||||||
background: linear-gradient(135deg, #ffa940, #ffec3d);
|
|
||||||
color: white;
|
|
||||||
}
|
|
||||||
|
|
||||||
.hot-content {
|
|
||||||
flex: 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
.hot-title {
|
|
||||||
font-size: 1.15rem;
|
|
||||||
margin-bottom: 8px;
|
|
||||||
color: #333;
|
|
||||||
text-decoration: none;
|
|
||||||
display: block;
|
|
||||||
line-height: 1.5;
|
|
||||||
font-weight: 500;
|
|
||||||
transition: color 0.2s ease;
|
|
||||||
}
|
|
||||||
|
|
||||||
.hot-title:hover {
|
|
||||||
color: #4096ff;
|
|
||||||
text-decoration: none;
|
|
||||||
}
|
|
||||||
|
|
||||||
.loading {
|
|
||||||
text-align: center;
|
|
||||||
padding: 40px;
|
|
||||||
color: #666;
|
|
||||||
font-size: 1.1rem;
|
|
||||||
}
|
|
||||||
|
|
||||||
footer {
|
|
||||||
text-align: center;
|
|
||||||
margin-top: 30px;
|
|
||||||
padding-top: 20px;
|
|
||||||
border-top: 1px solid rgba(0, 0, 0, 0.06);
|
|
||||||
color: #666;
|
|
||||||
font-size: 0.9rem;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* 音符装饰样式 */
|
|
||||||
.music-note {
|
|
||||||
position: fixed;
|
|
||||||
font-size: 24px;
|
|
||||||
color: rgba(236, 65, 65, 0.6);
|
|
||||||
z-index: 0;
|
|
||||||
pointer-events: none;
|
|
||||||
animation: floatNote 20s linear infinite;
|
|
||||||
text-shadow: 0 0 5px rgba(255, 255, 255, 0.7);
|
|
||||||
}
|
|
||||||
|
|
||||||
@keyframes floatNote {
|
|
||||||
0% {
|
|
||||||
transform: translateY(0) rotate(0deg);
|
|
||||||
opacity: 0.7;
|
|
||||||
}
|
|
||||||
50% {
|
|
||||||
transform: translateY(-100px) rotate(180deg);
|
|
||||||
opacity: 0.9;
|
|
||||||
}
|
|
||||||
100% {
|
|
||||||
transform: translateY(-200px) rotate(360deg);
|
|
||||||
opacity: 0;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/* 响应式设计 */
|
|
||||||
@media (max-width: 1024px) and (min-width: 768px) {
|
|
||||||
.container {
|
|
||||||
max-width: 90%;
|
|
||||||
padding: 20px;
|
|
||||||
}
|
|
||||||
|
|
||||||
header h1 {
|
|
||||||
font-size: 2.2rem;
|
|
||||||
}
|
|
||||||
|
|
||||||
.hot-item {
|
|
||||||
padding: 18px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.hot-title {
|
|
||||||
font-size: 1.1rem;
|
|
||||||
}
|
|
||||||
|
|
||||||
.music-note {
|
|
||||||
font-size: 22px;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@media (max-width: 768px) {
|
|
||||||
body {
|
|
||||||
background-color: #f8f9fa;
|
|
||||||
}
|
|
||||||
|
|
||||||
.container {
|
|
||||||
max-width: 95%;
|
|
||||||
margin: 12px auto;
|
|
||||||
padding: 16px;
|
|
||||||
border-radius: 12px;
|
|
||||||
}
|
|
||||||
|
|
||||||
header {
|
|
||||||
margin-bottom: 20px;
|
|
||||||
padding-bottom: 16px;
|
|
||||||
}
|
|
||||||
|
|
||||||
header h1 {
|
|
||||||
font-size: 1.8rem;
|
|
||||||
margin-bottom: 10px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.update-time {
|
|
||||||
font-size: 0.85rem;
|
|
||||||
padding: 6px 12px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.hot-item {
|
|
||||||
padding: 16px;
|
|
||||||
margin-bottom: 12px;
|
|
||||||
border-radius: 10px;
|
|
||||||
flex-direction: row;
|
|
||||||
align-items: flex-start;
|
|
||||||
}
|
|
||||||
|
|
||||||
.hot-rank {
|
|
||||||
font-size: 1.1rem;
|
|
||||||
margin-right: 14px;
|
|
||||||
min-width: 32px;
|
|
||||||
width: 32px;
|
|
||||||
height: 32px;
|
|
||||||
margin-top: 2px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.hot-title {
|
|
||||||
font-size: 1rem;
|
|
||||||
line-height: 1.5;
|
|
||||||
margin-bottom: 6px;
|
|
||||||
}
|
|
||||||
|
|
||||||
footer {
|
|
||||||
margin-top: 24px;
|
|
||||||
padding-top: 16px;
|
|
||||||
font-size: 0.85rem;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@media (max-width: 480px) {
|
|
||||||
.container {
|
|
||||||
margin: 8px auto;
|
|
||||||
padding: 14px;
|
|
||||||
}
|
|
||||||
|
|
||||||
header h1 {
|
|
||||||
font-size: 1.6rem;
|
|
||||||
}
|
|
||||||
|
|
||||||
.hot-item {
|
|
||||||
padding: 14px;
|
|
||||||
margin-bottom: 10px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.hot-rank {
|
|
||||||
font-size: 1rem;
|
|
||||||
margin-right: 12px;
|
|
||||||
min-width: 30px;
|
|
||||||
width: 30px;
|
|
||||||
height: 30px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.hot-title {
|
|
||||||
font-size: 0.95rem;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/* 减少动画以节省电池 */
|
|
||||||
@media (prefers-reduced-motion: reduce) {
|
|
||||||
.modern-gradient,
|
|
||||||
.modern-gradient::before {
|
|
||||||
animation: none;
|
|
||||||
}
|
|
||||||
|
|
||||||
.modern-gradient {
|
|
||||||
background: linear-gradient(
|
|
||||||
135deg,
|
|
||||||
rgba(64, 169, 255, 0.3) 0%,
|
|
||||||
rgba(255, 175, 64, 0.2) 50%,
|
|
||||||
rgba(255, 122, 69, 0.25) 100%
|
|
||||||
);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,110 +0,0 @@
|
|||||||
<!DOCTYPE html>
|
|
||||||
<html lang="zh-CN">
|
|
||||||
<head>
|
|
||||||
<meta charset="UTF-8">
|
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
||||||
<title>网易云音乐榜单详情</title>
|
|
||||||
<link rel="stylesheet" href="css/style.css">
|
|
||||||
<link rel="stylesheet" href="css/loading.css">
|
|
||||||
<link rel="stylesheet" href="css/background.css">
|
|
||||||
</head>
|
|
||||||
<body>
|
|
||||||
<!-- 音符装饰 -->
|
|
||||||
<div id="musicNotes"></div>
|
|
||||||
|
|
||||||
<div class="container">
|
|
||||||
<header class="header">
|
|
||||||
<h1 class="title">🎵 网易云榜单详情</h1>
|
|
||||||
<p class="subtitle">发现音乐的魅力</p>
|
|
||||||
<a href="../网易云榜单列表/index.html" class="back-link" id="backLink">← 返回榜单列表</a>
|
|
||||||
</header>
|
|
||||||
|
|
||||||
<div class="rank-info" id="rankInfo" style="display: none;">
|
|
||||||
<div class="rank-header">
|
|
||||||
<img class="rank-cover" id="rankCover" src="" alt="榜单封面">
|
|
||||||
<div class="rank-details">
|
|
||||||
<h2 class="rank-name" id="rankName"></h2>
|
|
||||||
<p class="rank-description" id="rankDescription"></p>
|
|
||||||
<div class="rank-meta">
|
|
||||||
<span class="update-time" id="updateTime"></span>
|
|
||||||
<span class="update-frequency" id="updateFrequency"></span>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="controls">
|
|
||||||
<div class="input-group">
|
|
||||||
<label for="rankId">榜单ID:</label>
|
|
||||||
<input type="text" id="rankId" placeholder="请输入榜单ID,如:3778678">
|
|
||||||
<button id="loadBtn" class="load-btn">加载榜单</button>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="loading" id="loading" style="display: none;">
|
|
||||||
<div class="spinner"></div>
|
|
||||||
<p>正在加载榜单数据...</p>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="error" id="error" style="display: none;">
|
|
||||||
<div class="error-icon">⚠️</div>
|
|
||||||
<p class="error-message" id="errorMessage"></p>
|
|
||||||
<button class="retry-btn" id="retryBtn">重试</button>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="song-list" id="songList" style="display: none;">
|
|
||||||
<div class="list-header">
|
|
||||||
<h3>歌曲列表</h3>
|
|
||||||
<div class="song-count" id="songCount"></div>
|
|
||||||
</div>
|
|
||||||
<div class="songs" id="songs"></div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="back-to-list">
|
|
||||||
<a href="../网易云榜单列表/index.html" class="back-btn" id="backBtnBottom">← 返回榜单列表</a>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<footer class="footer">
|
|
||||||
<p>© 2025 网易云榜单详情 - 数据来源于官方API</p>
|
|
||||||
</footer>
|
|
||||||
|
|
||||||
<script>
|
|
||||||
// 创建音符装饰
|
|
||||||
function createMusicNotes() {
|
|
||||||
const musicNotes = document.getElementById('musicNotes');
|
|
||||||
const noteSymbols = ['♪', '♫', '♬', '♩', '♭', '♮', '♯'];
|
|
||||||
const containerWidth = window.innerWidth;
|
|
||||||
const containerHeight = window.innerHeight;
|
|
||||||
|
|
||||||
// 创建20个音符
|
|
||||||
for (let i = 0; i < 20; i++) {
|
|
||||||
const note = document.createElement('div');
|
|
||||||
note.className = 'music-note';
|
|
||||||
note.textContent = noteSymbols[Math.floor(Math.random() * noteSymbols.length)];
|
|
||||||
|
|
||||||
// 随机位置
|
|
||||||
const left = Math.random() * containerWidth;
|
|
||||||
const top = Math.random() * containerHeight;
|
|
||||||
|
|
||||||
// 随机动画延迟
|
|
||||||
const delay = Math.random() * 15;
|
|
||||||
const duration = 10 + Math.random() * 20;
|
|
||||||
|
|
||||||
note.style.left = `${left}px`;
|
|
||||||
note.style.top = `${top}px`;
|
|
||||||
note.style.animationDelay = `${delay}s`;
|
|
||||||
note.style.animationDuration = `${duration}s`;
|
|
||||||
|
|
||||||
musicNotes.appendChild(note);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// 页面加载完成后创建音符
|
|
||||||
document.addEventListener('DOMContentLoaded', () => {
|
|
||||||
createMusicNotes();
|
|
||||||
});
|
|
||||||
</script>
|
|
||||||
<script src="js/script.js"></script>
|
|
||||||
</body>
|
|
||||||
</html>
|
|
||||||
@@ -1,507 +0,0 @@
|
|||||||
// 网易云榜单详情 JavaScript
|
|
||||||
class NeteaseMusicRankDetail {
|
|
||||||
constructor() {
|
|
||||||
this.apiUrls = [];
|
|
||||||
this.currentApiIndex = 0;
|
|
||||||
this.rankData = null;
|
|
||||||
this.init();
|
|
||||||
}
|
|
||||||
|
|
||||||
async init() {
|
|
||||||
try {
|
|
||||||
await this.loadApiUrls();
|
|
||||||
this.bindEvents();
|
|
||||||
this.checkUrlParams();
|
|
||||||
} catch (error) {
|
|
||||||
console.error('初始化失败:', error);
|
|
||||||
this.showError('初始化失败,请刷新页面重试');
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// 加载API接口列表
|
|
||||||
async loadApiUrls() {
|
|
||||||
try {
|
|
||||||
const response = await fetch('./接口集合.json');
|
|
||||||
if (!response.ok) {
|
|
||||||
throw new Error('无法加载API接口配置');
|
|
||||||
}
|
|
||||||
this.apiUrls = await response.json();
|
|
||||||
console.log('API接口加载成功:', this.apiUrls);
|
|
||||||
} catch (error) {
|
|
||||||
console.error('加载API接口失败:', error);
|
|
||||||
// 使用默认接口
|
|
||||||
this.apiUrls = [
|
|
||||||
'https://60s.viki.moe',
|
|
||||||
'https://60s-cf.viki.moe',
|
|
||||||
'https://60s.b23.run',
|
|
||||||
'https://60s.114128.xyz',
|
|
||||||
'https://60s-cf.114128.xyz',
|
|
||||||
'https://60s.api.shumengya.top',
|
|
||||||
'https://api.03c3.cn/api/zb',
|
|
||||||
'https://api.vvhan.com/api/60s'
|
|
||||||
];
|
|
||||||
}
|
|
||||||
|
|
||||||
// 确保至少有一个API接口
|
|
||||||
if (!this.apiUrls || this.apiUrls.length === 0) {
|
|
||||||
this.apiUrls = [
|
|
||||||
'https://60s.viki.moe',
|
|
||||||
'https://60s-cf.viki.moe',
|
|
||||||
'https://60s.b23.run',
|
|
||||||
'https://60s.114128.xyz',
|
|
||||||
'https://60s-cf.114128.xyz',
|
|
||||||
'https://60s.api.shumengya.top',
|
|
||||||
'https://api.03c3.cn/api/zb',
|
|
||||||
'https://api.vvhan.com/api/60s'
|
|
||||||
];
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// 绑定事件
|
|
||||||
bindEvents() {
|
|
||||||
const loadBtn = document.getElementById('loadBtn');
|
|
||||||
const rankIdInput = document.getElementById('rankId');
|
|
||||||
const retryBtn = document.getElementById('retryBtn');
|
|
||||||
const backLink = document.getElementById('backLink');
|
|
||||||
const backBtnBottom = document.getElementById('backBtnBottom');
|
|
||||||
|
|
||||||
loadBtn.addEventListener('click', () => this.loadRankDetail());
|
|
||||||
retryBtn.addEventListener('click', () => this.loadRankDetail());
|
|
||||||
|
|
||||||
// 回车键加载
|
|
||||||
rankIdInput.addEventListener('keypress', (e) => {
|
|
||||||
if (e.key === 'Enter') {
|
|
||||||
this.loadRankDetail();
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
// 输入验证
|
|
||||||
rankIdInput.addEventListener('input', (e) => {
|
|
||||||
const value = e.target.value.trim();
|
|
||||||
loadBtn.disabled = !value || !/^\d+$/.test(value);
|
|
||||||
});
|
|
||||||
|
|
||||||
// 处理返回链接
|
|
||||||
if (backLink) {
|
|
||||||
backLink.addEventListener('click', (e) => {
|
|
||||||
console.log('返回榜单列表');
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
if (backBtnBottom) {
|
|
||||||
backBtnBottom.addEventListener('click', (e) => {
|
|
||||||
console.log('返回榜单列表');
|
|
||||||
});
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// 检查URL参数
|
|
||||||
checkUrlParams() {
|
|
||||||
const urlParams = new URLSearchParams(window.location.search);
|
|
||||||
const rankId = urlParams.get('id');
|
|
||||||
const rankName = urlParams.get('name');
|
|
||||||
|
|
||||||
if (rankId && /^\d+$/.test(rankId)) {
|
|
||||||
document.getElementById('rankId').value = rankId;
|
|
||||||
|
|
||||||
// 如果有榜单名称,更新页面标题
|
|
||||||
if (rankName) {
|
|
||||||
document.title = `${decodeURIComponent(rankName)} - 网易云榜单详情`;
|
|
||||||
document.querySelector('.title').textContent = `🎵 ${decodeURIComponent(rankName)}`;
|
|
||||||
document.querySelector('.subtitle').textContent = '正在加载榜单详情...';
|
|
||||||
}
|
|
||||||
|
|
||||||
this.loadRankDetail();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// 加载榜单详情
|
|
||||||
async loadRankDetail() {
|
|
||||||
const rankId = document.getElementById('rankId').value.trim();
|
|
||||||
|
|
||||||
if (!rankId) {
|
|
||||||
this.showError('请输入榜单ID');
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!/^\d+$/.test(rankId)) {
|
|
||||||
this.showError('榜单ID必须是数字');
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
this.showLoading();
|
|
||||||
this.currentApiIndex = 0;
|
|
||||||
|
|
||||||
try {
|
|
||||||
const data = await this.fetchRankDetail(rankId);
|
|
||||||
this.rankData = data;
|
|
||||||
this.displayRankDetail(data);
|
|
||||||
this.hideLoading();
|
|
||||||
|
|
||||||
// 更新URL
|
|
||||||
const newUrl = new URL(window.location);
|
|
||||||
newUrl.searchParams.set('id', rankId);
|
|
||||||
if (data.playlist && data.playlist.name) {
|
|
||||||
newUrl.searchParams.set('name', encodeURIComponent(data.playlist.name));
|
|
||||||
document.title = `${data.playlist.name} - 网易云榜单详情`;
|
|
||||||
}
|
|
||||||
window.history.replaceState({}, '', newUrl);
|
|
||||||
|
|
||||||
} catch (error) {
|
|
||||||
console.error('加载榜单详情失败:', error);
|
|
||||||
this.hideLoading();
|
|
||||||
this.showError(error.message || '加载失败,请检查榜单ID是否正确');
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// 获取榜单详情数据
|
|
||||||
async fetchRankDetail(rankId) {
|
|
||||||
let lastError = null;
|
|
||||||
let attemptedApis = 0;
|
|
||||||
|
|
||||||
// 尝试所有API接口
|
|
||||||
while (attemptedApis < this.apiUrls.length) {
|
|
||||||
try {
|
|
||||||
const apiUrl = this.apiUrls[this.currentApiIndex];
|
|
||||||
let url = `${apiUrl}/v2/ncm-rank/${rankId}`;
|
|
||||||
|
|
||||||
// 处理本地JSON文件
|
|
||||||
if (apiUrl.includes('返回接口.json')) {
|
|
||||||
url = apiUrl;
|
|
||||||
console.log('使用本地测试数据:', url);
|
|
||||||
}
|
|
||||||
// 针对不同API接口格式进行适配
|
|
||||||
else if (apiUrl.includes('03c3.cn') || apiUrl.includes('vvhan.com')) {
|
|
||||||
// 这些API可能有不同的路径格式,需要特殊处理
|
|
||||||
if (apiUrl.includes('03c3.cn')) {
|
|
||||||
url = `${apiUrl}/ncm/playlist?id=${rankId}`;
|
|
||||||
} else if (apiUrl.includes('vvhan.com')) {
|
|
||||||
url = `${apiUrl}/music/netease/playlist?id=${rankId}`;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
console.log(`尝试API ${this.currentApiIndex + 1}/${this.apiUrls.length}:`, url);
|
|
||||||
|
|
||||||
const controller = new AbortController();
|
|
||||||
const timeoutId = setTimeout(() => controller.abort(), 8000); // 缩短超时时间
|
|
||||||
|
|
||||||
const response = await fetch(url, {
|
|
||||||
signal: controller.signal,
|
|
||||||
headers: {
|
|
||||||
'Accept': 'application/json',
|
|
||||||
},
|
|
||||||
// 添加缓存控制
|
|
||||||
cache: 'no-cache',
|
|
||||||
// 添加模式
|
|
||||||
mode: apiUrl.includes('返回接口.json') ? 'same-origin' : 'cors'
|
|
||||||
});
|
|
||||||
|
|
||||||
clearTimeout(timeoutId);
|
|
||||||
|
|
||||||
if (!response.ok) {
|
|
||||||
throw new Error(`HTTP ${response.status}: ${response.statusText}`);
|
|
||||||
}
|
|
||||||
|
|
||||||
const data = await response.json();
|
|
||||||
|
|
||||||
// 如果是本地测试数据,直接使用
|
|
||||||
if (apiUrl.includes('返回接口.json')) {
|
|
||||||
// 查找对应ID的榜单
|
|
||||||
if (data.data && Array.isArray(data.data)) {
|
|
||||||
const rank = data.data.find(item => item.id == rankId);
|
|
||||||
if (rank) {
|
|
||||||
// 构造一个符合详情页面期望的数据结构
|
|
||||||
return {
|
|
||||||
code: 200,
|
|
||||||
playlist: rank,
|
|
||||||
data: [] // 模拟空歌曲列表
|
|
||||||
};
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// 不同API可能有不同的成功状态码
|
|
||||||
if (data.code !== undefined && data.code !== 200 && data.code !== 0) {
|
|
||||||
throw new Error(data.message || data.msg || '获取数据失败');
|
|
||||||
}
|
|
||||||
|
|
||||||
console.log('API调用成功:', data);
|
|
||||||
return data;
|
|
||||||
|
|
||||||
} catch (error) {
|
|
||||||
console.warn(`API ${this.currentApiIndex + 1} 失败:`, error.message);
|
|
||||||
lastError = error;
|
|
||||||
this.currentApiIndex = (this.currentApiIndex + 1) % this.apiUrls.length;
|
|
||||||
attemptedApis++;
|
|
||||||
|
|
||||||
if (error.name === 'AbortError') {
|
|
||||||
lastError = new Error('请求超时,请重试');
|
|
||||||
}
|
|
||||||
|
|
||||||
// 添加短暂延迟,避免过快请求下一个API
|
|
||||||
await new Promise(resolve => setTimeout(resolve, 300));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
throw lastError || new Error('所有API接口都无法访问,请稍后再试');
|
|
||||||
}
|
|
||||||
|
|
||||||
// 显示榜单详情
|
|
||||||
displayRankDetail(data) {
|
|
||||||
this.rankData = data;
|
|
||||||
|
|
||||||
// 适配不同API返回的数据格式
|
|
||||||
let songs = [];
|
|
||||||
let rankInfo = null;
|
|
||||||
|
|
||||||
// 标准格式:data.data 是数组
|
|
||||||
if (data.data && Array.isArray(data.data)) {
|
|
||||||
songs = data.data;
|
|
||||||
rankInfo = data.playlist || {};
|
|
||||||
}
|
|
||||||
// 03c3.cn API格式:data.result 或 data.playlist
|
|
||||||
else if (data.result) {
|
|
||||||
if (data.result.tracks && Array.isArray(data.result.tracks)) {
|
|
||||||
songs = data.result.tracks;
|
|
||||||
rankInfo = data.result;
|
|
||||||
} else if (Array.isArray(data.result)) {
|
|
||||||
songs = data.result;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
// vvhan.com API格式:data.playlist 和 data.playlist.tracks
|
|
||||||
else if (data.playlist && data.playlist.tracks) {
|
|
||||||
songs = data.playlist.tracks;
|
|
||||||
rankInfo = data.playlist;
|
|
||||||
}
|
|
||||||
// 其他可能的格式
|
|
||||||
else {
|
|
||||||
// 尝试查找数据中的任何数组
|
|
||||||
for (const key in data) {
|
|
||||||
if (Array.isArray(data[key]) && data[key].length > 0) {
|
|
||||||
songs = data[key];
|
|
||||||
break;
|
|
||||||
} else if (data[key] && data[key].tracks && Array.isArray(data[key].tracks)) {
|
|
||||||
songs = data[key].tracks;
|
|
||||||
rankInfo = data[key];
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (songs.length === 0) {
|
|
||||||
throw new Error('未找到歌曲数据或数据格式不兼容');
|
|
||||||
}
|
|
||||||
|
|
||||||
// 显示榜单信息(如果有的话)
|
|
||||||
this.displayRankInfo(songs[0], rankInfo);
|
|
||||||
|
|
||||||
// 显示歌曲列表
|
|
||||||
this.displaySongList(songs);
|
|
||||||
|
|
||||||
// 显示相关区域
|
|
||||||
document.getElementById('songList').style.display = 'block';
|
|
||||||
document.getElementById('error').style.display = 'none';
|
|
||||||
}
|
|
||||||
|
|
||||||
// 显示榜单信息
|
|
||||||
displayRankInfo(firstSong, rankInfoData) {
|
|
||||||
const rankInfoElement = document.getElementById('rankInfo');
|
|
||||||
|
|
||||||
// 获取URL参数中的榜单名称
|
|
||||||
const urlParams = new URLSearchParams(window.location.search);
|
|
||||||
const rankNameFromUrl = urlParams.get('name');
|
|
||||||
|
|
||||||
// 尝试从多个来源获取榜单名称
|
|
||||||
let rankName = rankNameFromUrl || '';
|
|
||||||
if (!rankName) {
|
|
||||||
if (rankInfoData && rankInfoData.name) {
|
|
||||||
rankName = rankInfoData.name;
|
|
||||||
} else if (firstSong) {
|
|
||||||
rankName = firstSong.rank_name || firstSong.rankName || firstSong.playlist_name || '';
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (rankName) {
|
|
||||||
document.getElementById('rankName').textContent = rankName;
|
|
||||||
document.getElementById('rankDescription').textContent = `${rankName} - 网易云音乐官方榜单`;
|
|
||||||
document.title = `${rankName} - 网易云音乐榜单详情`;
|
|
||||||
|
|
||||||
// 尝试获取榜单封面
|
|
||||||
let coverUrl = '';
|
|
||||||
if (rankInfoData && rankInfoData.coverImgUrl) {
|
|
||||||
coverUrl = rankInfoData.coverImgUrl;
|
|
||||||
} else if (rankInfoData && rankInfoData.picUrl) {
|
|
||||||
coverUrl = rankInfoData.picUrl;
|
|
||||||
} else if (firstSong && firstSong.album && firstSong.album.cover) {
|
|
||||||
coverUrl = firstSong.album.cover;
|
|
||||||
} else if (firstSong && firstSong.album && firstSong.album.picUrl) {
|
|
||||||
coverUrl = firstSong.album.picUrl;
|
|
||||||
} else if (firstSong && firstSong.al && firstSong.al.picUrl) {
|
|
||||||
coverUrl = firstSong.al.picUrl;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (coverUrl) {
|
|
||||||
document.getElementById('rankCover').src = coverUrl;
|
|
||||||
document.getElementById('rankCover').alt = rankName;
|
|
||||||
}
|
|
||||||
|
|
||||||
// 尝试获取更新时间
|
|
||||||
let updateTime = '';
|
|
||||||
if (rankInfoData && rankInfoData.updateTime) {
|
|
||||||
updateTime = this.formatDate(new Date(rankInfoData.updateTime));
|
|
||||||
} else if (rankInfoData && rankInfoData.updateFrequency) {
|
|
||||||
updateTime = rankInfoData.updateFrequency;
|
|
||||||
} else {
|
|
||||||
updateTime = this.formatDate(new Date());
|
|
||||||
}
|
|
||||||
|
|
||||||
document.getElementById('updateTime').textContent = `更新时间: ${updateTime}`;
|
|
||||||
document.getElementById('updateFrequency').textContent = rankInfoData?.updateFrequency || '定期更新';
|
|
||||||
|
|
||||||
rankInfoElement.style.display = 'block';
|
|
||||||
} else {
|
|
||||||
rankInfoElement.style.display = 'none';
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// 显示歌曲列表
|
|
||||||
displaySongList(songs) {
|
|
||||||
const songsContainer = document.getElementById('songs');
|
|
||||||
const songCount = document.getElementById('songCount');
|
|
||||||
|
|
||||||
songCount.textContent = `共 ${songs.length} 首歌曲`;
|
|
||||||
|
|
||||||
songsContainer.innerHTML = '';
|
|
||||||
|
|
||||||
songs.forEach((song, index) => {
|
|
||||||
const songElement = this.createSongElement(song, index);
|
|
||||||
songsContainer.appendChild(songElement);
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
// 创建歌曲元素
|
|
||||||
createSongElement(song) {
|
|
||||||
const songDiv = document.createElement('div');
|
|
||||||
songDiv.className = 'song-item';
|
|
||||||
|
|
||||||
// 处理艺术家信息
|
|
||||||
const artists = Array.isArray(song.artist) ? song.artist : [song.artist].filter(Boolean);
|
|
||||||
const artistNames = artists.map(artist =>
|
|
||||||
typeof artist === 'object' ? artist.name : artist
|
|
||||||
).join(', ') || '未知艺术家';
|
|
||||||
|
|
||||||
// 处理专辑信息
|
|
||||||
const albumName = song.album && song.album.name ? song.album.name : '未知专辑';
|
|
||||||
|
|
||||||
// 处理时长
|
|
||||||
const duration = song.duration_desc || this.formatDuration(song.duration);
|
|
||||||
|
|
||||||
// 处理热度
|
|
||||||
const popularity = song.popularity || song.score || 0;
|
|
||||||
|
|
||||||
songDiv.innerHTML = `
|
|
||||||
<div class="song-rank ${song.rank <= 3 ? 'top3' : ''}">${song.rank}</div>
|
|
||||||
<div class="song-info">
|
|
||||||
<div class="song-title">${this.escapeHtml(song.title)}</div>
|
|
||||||
<div class="song-artist">${this.escapeHtml(artistNames)}</div>
|
|
||||||
<div class="song-album">${this.escapeHtml(albumName)}</div>
|
|
||||||
</div>
|
|
||||||
<div class="song-meta">
|
|
||||||
<div class="song-duration">${duration}</div>
|
|
||||||
<div class="song-popularity">${popularity}%</div>
|
|
||||||
</div>
|
|
||||||
`;
|
|
||||||
|
|
||||||
// 添加点击事件
|
|
||||||
if (song.link) {
|
|
||||||
songDiv.style.cursor = 'pointer';
|
|
||||||
songDiv.addEventListener('click', () => {
|
|
||||||
window.open(song.link, '_blank');
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
return songDiv;
|
|
||||||
}
|
|
||||||
|
|
||||||
// 格式化时长
|
|
||||||
formatDuration(duration) {
|
|
||||||
if (!duration) return '--:--';
|
|
||||||
|
|
||||||
const seconds = Math.floor(duration / 1000);
|
|
||||||
const minutes = Math.floor(seconds / 60);
|
|
||||||
const remainingSeconds = seconds % 60;
|
|
||||||
|
|
||||||
return `${minutes}:${remainingSeconds.toString().padStart(2, '0')}`;
|
|
||||||
}
|
|
||||||
|
|
||||||
// 格式化日期
|
|
||||||
formatDate(date) {
|
|
||||||
return date.toLocaleString('zh-CN', {
|
|
||||||
year: 'numeric',
|
|
||||||
month: '2-digit',
|
|
||||||
day: '2-digit',
|
|
||||||
hour: '2-digit',
|
|
||||||
minute: '2-digit'
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
// HTML转义
|
|
||||||
escapeHtml(text) {
|
|
||||||
const div = document.createElement('div');
|
|
||||||
div.textContent = text;
|
|
||||||
return div.innerHTML;
|
|
||||||
}
|
|
||||||
|
|
||||||
// 显示加载状态
|
|
||||||
showLoading() {
|
|
||||||
document.getElementById('loading').style.display = 'block';
|
|
||||||
document.getElementById('error').style.display = 'none';
|
|
||||||
document.getElementById('songList').style.display = 'none';
|
|
||||||
document.getElementById('loadBtn').disabled = true;
|
|
||||||
}
|
|
||||||
|
|
||||||
// 隐藏加载状态
|
|
||||||
hideLoading() {
|
|
||||||
document.getElementById('loading').style.display = 'none';
|
|
||||||
document.getElementById('loadBtn').disabled = false;
|
|
||||||
}
|
|
||||||
|
|
||||||
// 显示错误信息
|
|
||||||
showError(message) {
|
|
||||||
document.getElementById('error').style.display = 'block';
|
|
||||||
document.getElementById('errorMessage').textContent = message;
|
|
||||||
document.getElementById('loading').style.display = 'none';
|
|
||||||
document.getElementById('songList').style.display = 'none';
|
|
||||||
document.getElementById('loadBtn').disabled = false;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// 全局错误处理
|
|
||||||
window.addEventListener('error', (event) => {
|
|
||||||
console.error('全局错误:', event.error);
|
|
||||||
});
|
|
||||||
|
|
||||||
window.addEventListener('unhandledrejection', (event) => {
|
|
||||||
console.error('未处理的Promise拒绝:', event.reason);
|
|
||||||
});
|
|
||||||
|
|
||||||
// 页面加载完成后初始化
|
|
||||||
document.addEventListener('DOMContentLoaded', () => {
|
|
||||||
new NeteaseMusicRankDetail();
|
|
||||||
});
|
|
||||||
|
|
||||||
// 添加CSS动画类
|
|
||||||
document.addEventListener('DOMContentLoaded', () => {
|
|
||||||
// 为页面元素添加淡入动画
|
|
||||||
const elements = document.querySelectorAll('.container > *');
|
|
||||||
elements.forEach((el, index) => {
|
|
||||||
el.style.opacity = '0';
|
|
||||||
el.style.transform = 'translateY(20px)';
|
|
||||||
el.style.transition = 'opacity 0.6s ease, transform 0.6s ease';
|
|
||||||
|
|
||||||
setTimeout(() => {
|
|
||||||
el.style.opacity = '1';
|
|
||||||
el.style.transform = 'translateY(0)';
|
|
||||||
}, index * 100);
|
|
||||||
});
|
|
||||||
});
|
|
||||||
@@ -1,4 +0,0 @@
|
|||||||
[
|
|
||||||
"https://60s.api.shumengya.top",
|
|
||||||
"../返回接口.json"
|
|
||||||
]
|
|
||||||
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user