/DailyHotApi

今日热榜 API,一个聚合热门数据的 API 接口,支持 Vercel 部署 | 前端页面:https://github.com/imsyy/DailyHot

Primary LanguageJavaScriptMIT LicenseMIT

logo

今日热榜

一个聚合热门数据的 API 接口

示例

这里是使用该 API 的示例站点

总览

🟢 状态正常 🟠 可能失效 ❌ 无法使用

站点 类别 调用名称 状态
哔哩哔哩 热门榜 bilibili 🟢
微博 热搜榜 weibo 🟢
知乎 热榜 zhihu 🟢
百度 热搜榜 baidu 🟢
抖音 热点榜 douyin / douyin_new 🟢
抖音 热歌榜 douyin_music 🟢
豆瓣 新片榜 douban_new 🟢
豆瓣讨论小组 讨论精选 douban_group 🟢
百度贴吧 热议榜 tieba 🟢
少数派 热榜 sspai 🟢
IT 之家 热榜 ithome 🟠
澎湃新闻 热榜 thepaper 🟢
今日头条 热榜 toutiao 🟢
36 氪 热榜 36kr 🟢
稀土掘金 热榜 juejin 🟢
腾讯新闻 热点榜 newsqq 🟢
网易新闻 热点榜 netease 🟢
英雄联盟 更新公告 lol 🟢
原神 最新消息 genshin 🟢
微信读书 飙升榜 weread 🟢
快手 热榜 kuaishou 🟢
网易云音乐 排行榜 netease_music_toplist 🟢
QQ音乐 排行榜 qq_music_toplist 🟢
NGA 热帖 ngabbs 🟢
Github Trending github 🟢
V2EX 热榜 v2ex 🟠
历史上的今天 指定日期 calendar 🟢

特殊接口说明

网易云音乐

调用网易云音乐排行榜需要传入指定榜单类别

参数名 参数值 说明
type 1 飙升榜
type 2 新歌榜
type 3 原创榜
type 4 热歌榜
GET https://example.com/netease_music_toplist?type=1

QQ音乐

调用QQ音乐排行榜需要传入指定榜单类别

参数名 参数值 说明
type 1 飙升榜
type 2 热歌榜
type 3 新歌榜
type 4 流行指数榜
type 5 腾讯音乐人原创榜
type 6 听歌识曲榜
GET https://example.com/qq_music_toplist?type=1

获取全部接口信息

获取除了下方特殊接口外的全部接口列表

GET https://example.com/all

历史上的今天(指定日期)

将指定的月份和日期传入即可得到当天数据,请注意格式

GET https://example.com/calendar/date?month=06&day=01

部署

# 安装依赖
pnpm install

# 运行
pnpm start

Docker 部署

安装及配置 Docker 将不在此处说明,请自行解决

本地构建

# 构建
docker build -t dailyhot-api .
# 运行
docker run -p 6688:6688 -d dailyhot-api
# 或使用 Docker Compose
docker-compose up -d

在线部署

# 拉取
docker pull imsyy/dailyhot-api:latest
# 运行
docker run -p 6688:6688 -d imsyy/dailyhot-api:latest

Vercel 部署

现已支持 Vercel 部署,无需服务器

操作方法

  1. fork 本项目
  2. Vercel 官网点击 New Project
  3. 点击 Import Git Repository 并选择你 fork 的此项目并点击 import
  4. PROJECT NAME自己填,FRAMEWORK PRESETOther 然后直接点 Deploy 接着等部署完成即可

调用

获取榜单数据

获取数据只需在域名后面加上上方列表中的调用名称即可

GET https://api-hot.imsyy.top/bilibili/
调用示例
{
    "code": 200,
    "message": "获取成功",
    "title": "哔哩哔哩", // 榜单名称
    "subtitle": "热门榜", // 榜单类别
    "from": "server", // 此处返回是最新数据还是缓存
    "total": 100, // 数据总数
    "updateTime": "2023-03-14T07:40:51.846Z", // 数据获取时间
    "data": [
        {
            "id": "BV1E84y1A7z2",
            "title": "假如我的校园是一款RPG游戏!",
            "desc": "所有取景都是在学校里面拍的,都是真实存在的场景哦!",
            "pic": "http://i2.hdslb.com/bfs/archive/a24e442d0aae6d488db023c4ddcb450e9f2bf5f3.jpg",
            "owner": {
                "mid": 424658638,
                "name": "四夕小田木_已黑化_",
                "face": "https://i1.hdslb.com/bfs/face/afd9ba47933edc4842ccbeba2891a25465d1cf77.jpg"
            },
            "data": {
                "aid": 610872610,
                "view": 4178745,
                "danmaku": 4229,
                "reply": 5317,
                "favorite": 91020,
                "coin": 133596,
                "share": 46227,
                "now_rank": 0,
                "his_rank": 1,
                "like": 616519,
                "dislike": 0,
                "vt": 0,
                "vv": 0
            },
            "url": "https://b23.tv/BV1E84y1A7z2",
            "mobileUrl": "https://m.bilibili.com/video/BV1E84y1A7z2"
        },
        ...
    ]
}

获取榜单最新数据

获取最新数据只需在原链接后面加上 /new,这样就会直接从服务端拉取最新数据,不会从本地缓存中读取

GET https://api-hot.imsyy.top/bilibili/new
调用示例
{
    "code": 200,
    "message": "获取成功",
    "title": "哔哩哔哩", // 榜单名称
    "subtitle": "热门榜", // 榜单类别
    "total": 100, // 数据总数
    "updateTime": "2023-03-14T07:40:51.846Z", // 数据获取时间
    "data": [
        {
            "id": "BV1E84y1A7z2",
            "title": "假如我的校园是一款RPG游戏!",
            "desc": "所有取景都是在学校里面拍的,都是真实存在的场景哦!",
            "pic": "http://i2.hdslb.com/bfs/archive/a24e442d0aae6d488db023c4ddcb450e9f2bf5f3.jpg",
            "owner": {
                "mid": 424658638,
                "name": "四夕小田木_已黑化_",
                "face": "https://i1.hdslb.com/bfs/face/afd9ba47933edc4842ccbeba2891a25465d1cf77.jpg"
            },
            "data": {
                "aid": 610872610,
                "view": 4178745,
                "danmaku": 4229,
                "reply": 5317,
                "favorite": 91020,
                "coin": 133596,
                "share": 46227,
                "now_rank": 0,
                "his_rank": 1,
                "like": 616519,
                "dislike": 0,
                "vt": 0,
                "vv": 0
            },
            "url": "https://b23.tv/BV1E84y1A7z2",
            "mobileUrl": "https://m.bilibili.com/video/BV1E84y1A7z2"
        },
        ...
    ]
}

其他

  • 本项目为了避免频繁请求官方数据,默认对数据做了缓存处理,默认为 30 分钟,如需更改,请自行前往 utils\cacheData.js 文件修改
  • 本项目部分接口使用了 页面爬虫,若违反对应页面的相关规则,请 及时通知我去除该接口

免责声明

  • 本项目提供的 API 仅供开发者进行技术研究和开发测试使用。使用该 API 获取的信息仅供参考,不代表本项目对信息的准确性、可靠性、合法性、完整性作出任何承诺或保证。本项目不对任何因使用该 API 获取信息而导致的任何直接或间接损失负责。本项目保留随时更改 API 接口地址、接口协议、接口参数及其他相关内容的权利。本项目对使用者使用 API 的行为不承担任何直接或间接的法律责任
  • 本项目并未与相关信息提供方建立任何关联或合作关系,获取的信息均来自公开渠道,如因使用该 API 获取信息而产生的任何法律责任,由使用者自行承担
  • 本项目对使用 API 获取的信息进行了最大限度的筛选和整理,但不保证信息的准确性和完整性。使用 API 获取信息时,请务必自行核实信息的真实性和可靠性,谨慎处理相关事项
  • 本项目保留对 API 的随时更改、停用、限制使用等措施的权利。任何因使用本 API 产生的损失,本项目不负担任何赔偿和责任