100 lines
4.9 KiB
HTML

<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<title>网易云音乐 API Enhanced</title>
<style>
:root {
--fg: #111827; /* gray-900 */
--muted: #6b7280; /* gray-500 */
--border: #e5e7eb; /* gray-200 */
--bg: #ffffff;
--panel: #f9fafb; /* gray-50 */
--accent: #2563eb; /* blue-600 */
}
* { box-sizing: border-box; }
html, body { height: 100%; }
body { margin: 0; font-family: system-ui, -apple-system, Segoe UI, PingFang SC, Helvetica, Arial, sans-serif; color: var(--fg); background: var(--bg); line-height: 1.6; }
.container { max-width: 960px; margin: 40px auto; padding: 0 20px; }
header.site-header { margin-bottom: 24px; }
header.site-header h1 { font-size: 28px; font-weight: 700; margin: 0; }
.badge { display: inline-block; margin-left: 8px; padding: 2px 8px; border: 1px solid var(--border); border-radius: 14px; font-size: 12px; color: var(--muted); }
.sub { margin-top: 6px; color: var(--muted); }
.block { background: var(--panel); border: 1px solid var(--border); border-radius: 8px; padding: 16px; margin-bottom: 16px; }
.block h2 { margin: 0 0 10px; font-size: 18px; }
.kvs { display: grid; grid-template-columns: 140px 1fr; gap: 8px 16px; align-items: center; }
.kvs div:first-child { color: var(--muted); }
ul.links { list-style: none; padding: 0; margin: 0; }
ul.links li { margin: 6px 0; }
ul.links a { color: var(--fg); text-decoration: none; border-bottom: 1px dotted var(--border); }
ul.links a:hover { color: var(--accent); border-bottom-color: var(--accent); }
pre { margin: 0; background: #fff; border: 1px solid var(--border); border-radius: 6px; padding: 12px; overflow: auto; }
code { font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, "Liberation Mono", monospace; font-size: 13px; }
footer.site-footer { margin-top: 24px; padding-top: 12px; border-top: 1px solid var(--border); color: var(--muted); }
footer.site-footer a { color: var(--fg); text-decoration: none; }
footer.site-footer a:hover { color: var(--accent); }
</style>
</head>
<body>
<main class="container">
<header class="site-header">
<h1>网易云音乐 API Enhanced <span id="api-version" class="badge"></span></h1>
<p class="sub">🔍 A revival project for NeteaseCloudMusicApi Node.js Api Services || 网易云音乐 API 备份 + 增强 || 本项目自原版v4.28.0版本后开始自行维护</p>
</header>
<section class="block">
<h2>状态</h2>
<div class="kvs">
<div>Base URL</div><div id="base-url"></div>
<div>当前页</div><div id="current-url"></div>
</div>
</section>
<section class="block">
<h2>文档</h2>
<p><a href="/docs" target="_blank">查看在线文档</a></p>
</section>
<section class="block">
<h2>常用接口</h2>
<ul class="links">
<li><a href="/search?keywords=这么可爱真是抱歉">搜索音乐: <code>GET /search</code></a></li>
<li><a href="/song/detail?ids=1969519579">获取音乐详情: <code>GET /song/detail</code></a></li>
<li><a href="/comment/music?id=1969519579&limit=1">获取音乐评论: <code>GET /comment/music</code></a></li>
<li><a href="/song/url/v1?id=1969519579&level=exhigh">获取音乐播放链接: <code>GET /song/url/v1</code></a></li>
</ul>
</section>
<section class="block">
<h2>调试部分</h2>
<pre><code>curl -s {origin}/inner/version
curl -s {origin}/search?keywords=网易云</code></pre>
<p style="margin-top:10px"> · <a href="/api.html">交互式调试</a> · <a href="/qrlogin.html">二维码登录示例</a> · <a href="/unblock_test.html">解灰测试</a></p> · <a href="/audio_match_demo/index.html">听歌识曲 Demo</a></p> · <a href="/unblock_test.html">云盘上传</a></p> · <a href="/playlist_import.html">歌单导入</a></p> · <a href="/eapi_decrypt.html">EAPI 解密</p>
</section>
<footer class="site-footer">
<a href="https://github.com/neteasecloudmusicapienhanced/api-enhanced" target="_blank">GitHub</a>
</footer>
</main>
<script>
document.addEventListener('DOMContentLoaded', function () {
var origin = window.location.origin;
document.getElementById('base-url').textContent = origin;
document.getElementById('current-url').textContent = window.location.href;
fetch('/inner/version', { method: 'POST' })
.then(function (r) { return r.json(); })
.then(function (data) {
var v = data && data.data && data.data.version;
if (v) document.getElementById('api-version').textContent = 'v' + v;
var pre = document.querySelector('pre code');
if (pre) pre.textContent = pre.textContent.replace(/\{origin\}/g, origin);
})
.catch(function () {});
});
</script>
</body>
</html>