内容相关接口
GET
content
获取章节内容
请求示例
# 单章节内容
/api?api=content&item_id=7276663560427471412
# 多章节批量获取
/api?api=content&item_ids=id1,id2,id3&api_type=batch
# 听书模式(获取音频链接)
/api?api=content&item_id=123&ts=听书
请求参数
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| item_id / item_ids | string | 必填 | 章节 ID,多个用逗号分隔 |
| api_type | string | 可选 | batch=批量获取 |
| ts | string | 可选 | 设为 "听书" 获取音频播放链接 |
响应示例
{
"success": true,
"data": {
"item_id": "7276663560427471412",
"title": "第1章 戏鬼回家",
"content": "我……是谁?...",
"word_count": 2126
}
}
响应字段说明
| 字段 | 类型 | 说明 |
|---|---|---|
| item_id | string | 章节 ID |
| title | string | 章节标题 |
| content | string | 章节正文内容 |
| word_count | number | 字数统计 |
错误示例
{
"code": 400,
"message": "缺少必要参数: item_ids"
}
GET
search
搜索书籍
请求示例
# 搜索小说
/api?api=search&key=斗破苍穹&tab_type=1
# 搜索漫画
/api?api=search&key=斗破苍穹&tab_type=8
# 带偏移量
/api?api=search&key=玄幻&tab_type=1&offset=14
# 获取原始数据
/api?api=search&key=玄幻&tab_type=1&format=raw
成功响应字段(视频存在时)
| 字段 | 类型 | 说明 |
|---|---|---|
| video_id | string | 视频 ID |
| video_url | string | 视频播放地址 |
| expire_time | string | 播放地址过期时间 |
请求参数
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| query / key / keyword | string | 必填 | 搜索关键词 |
| tab_type | number | 必填 | 搜索类型:1=小说,8=漫画 |
| offset | number | 可选 | 偏移量,默认 0(用于翻页) |
| format | string | 可选 | 返回格式:simple=精简(默认),raw=原始数据 |
响应示例
{
"success": true,
"data": {
"keyword": "斗破苍穹",
"tab_type": 1,
"offset": 0,
"has_more": true,
"next_offset": 14,
"total": 11,
"books": [
{
"book_id": "7132355050277440548",
"book_name": "一剑一酒一乾坤",
"author": "关",
"cover": "https://p3-reading-sign.fqnovelpic.com/...",
"abstract": "【剑道+酒仙+玄幻仙侠...】",
"category": "传统玄幻",
"tags": "传统玄幻,无后宫",
"word_count": 4561588,
"chapter_count": 1902,
"score": "9.4",
"status": "已完结",
"readers": "13.2万人在读",
"gender": "男频",
"is_manga": false
}
]
}
}
响应字段说明
| 字段 | 类型 | 说明 |
|---|---|---|
| keyword | string | 搜索关键词 |
| tab_type | number | 搜索类型 |
| offset | number | 当前偏移量 |
| has_more | boolean | 是否还有更多 |
| next_offset | number | 下次请求偏移量 |
| total | number | 本次返回数量 |
| books | array | 书籍列表 |
books 数组字段说明
| 字段 | 类型 | 说明 |
|---|---|---|
| book_id | string | 书籍 ID |
| book_name | string | 书籍名称 |
| author | string | 作者名 |
| cover | string | 封面图片 URL |
| abstract | string | 书籍简介 |
| category | string | 分类 |
| tags | string | 标签列表(逗号分隔) |
| word_count | number | 总字数 |
| chapter_count | number | 章节数量 |
| score | string | 评分 |
| status | string | 连载状态 |
| readers | string | 在读人数 |
| gender | string | 频道(男频/女频) |
| is_manga | boolean | 是否漫画结果 |
错误示例
{
"success": false,
"error": "缺少搜索关键词参数: key"
}
GET
POST
full
批量获取章节内容
此接口支持批量获取章节内容,单次最多 300 章,使用 DH 密钥交换加密。
请求示例
# GET 请求
/api?api=full&book_id=7132355050277440548&item_ids=7132355331921084967,7132731585715143182
# POST 请求
POST /api?api=full
Content-Type: application/json
{
"book_id": "7132355050277440548",
"item_ids": ["7132355331921084967", "7132731585715143182"]
}
请求参数
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| book_id | string | 必填 | 书籍 ID |
| item_ids | array/string | 必填 | 章节 ID 数组(POST)或逗号分隔字符串(GET),最多 300 个 |
响应示例
{
"success": true,
"data": [
{
"item_id": "",
"title": "小说:少年坟前祭拜逝去的父亲,儿时同伴的一句话,让他瞬间暴怒",
"content": "春雨沥沥...(略)"
},
{
"item_id": "",
"title": "小说:他偶遇仙人,跪地许愿想娶七个媳妇,仙人却让他赶紧滚",
"content": "那老先生究竟是谁...(略)"
}
]
}
响应字段说明
| 字段 | 类型 | 说明 |
|---|---|---|
| item_id | string | 章节 ID(可能为空) |
| title | string | 章节标题 |
| content | string | 章节内容 |
错误示例
{
"success": false,
"error": "缺少必要参数: item_ids"
}
GET
item_info
获取章节元信息
请求示例
# 单个章节
/api?api=item_info&item_id=7132355331921084967
# 多个章节
/api?api=item_info&item_ids=7132355331921084967,7132731585715143182
请求参数
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| item_id / item_ids | string | 必填 | 章节 ID,多个用逗号分隔(仅数字) |
响应示例
{
"success": true,
"data": {
"http_code": 200,
"data": {
"code": 0,
"data": [
{
"item_id": "7132355331921084967",
"title": "第1章 那年桃花酒,负剑入青云",
"book_id": "7132355050277440548",
"book_name": "一剑一酒一乾坤",
"author": "关",
"chapter_word_number": "3356",
"version": "1947907db17a7e4763278860434d606e"
}
],
"log_id": "20260126000912F44235CB7059D2BFC732",
"message": "success"
}
}
}
响应字段说明
| 字段 | 类型 | 说明 |
|---|---|---|
| http_code | number | 上游 HTTP 状态 |
| data | object | 上游原始数据 |
data.data[].常见字段
| 字段 | 类型 | 说明 |
|---|---|---|
| item_id | string | 章节 ID |
| title | string | 章节标题 |
| book_id | string | 书籍 ID |
| book_name | string | 书籍名称 |
| author | string | 作者名 |
| chapter_word_number | string | 章节字数 |
| version | string | 版本标识 |
错误示例
{
"success": false,
"error": "缺少 item_ids 参数",
"example": "/api?api=item_info&item_ids=7507512821328904729,7507960973773242905"
}
GET
manga
获取漫画图片
如果请求的不是漫画章节,会自动回退到普通文字内容模式。
请求示例
# 获取漫画图片 URL 列表
/api?api=manga&item_ids=7132355331921084967
# 直接显示 HTML 图片页面
/api?api=manga&item_ids=7132355331921084967&show_html=1
请求参数
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| item_ids | string | 必填 | 漫画章节 ID |
| show_html | string | 可选 | 设为 1 返回可浏览的 HTML 页面 |
响应示例
{
"success": true,
"data": {
"item_id": "7132355331921084967",
"title": "第1章 那年桃花酒,负剑入青云",
"content": "春雨沥沥...(略)",
"word_count": 3515,
"is_manga": false
}
}
响应字段说明(非漫画回退)
| 字段 | 类型 | 说明 |
|---|---|---|
| item_id | string | 章节 ID |
| title | string | 章节标题 |
| content | string | 章节文本内容 |
| word_count | number | 字数统计 |
| is_manga | boolean | 是否为漫画 |
响应字段说明(漫画章节)
| 字段 | 类型 | 说明 |
|---|---|---|
| item_id | string | 章节 ID |
| images | array | 图片路径数组 |
| count | number | 图片数量 |
| is_manga | boolean | 是否为漫画 |
错误示例
{
"code": 400,
"message": "缺少必要参数: item_ids"
}
GET
video
获取短剧视频链接
请求示例
/api?api=video&ts=短剧&item_id=v0d00fg10000abcdefg
请求参数
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| ts | string | 必填 | 必须为 "短剧" |
| item_id | string | 必填 | 视频 ID |
响应示例
{
"success": false,
"error": "视频数据不存在",
"raw": {
"Code": 110001,
"Message": "未知异常",
"BaseResp": {
"StatusMessage": "unknown error",
"StatusCode": 110001
}
}
}
错误示例
{
"success": false,
"error": "缺少参数: ts"
}
GET
content (ts=听书)
获取章节音频
音频链接有防盗链限制,无法直接在浏览器打开。需要嵌入到 HTML 的
<audio> 标签中播放。不是所有章节都支持听书功能。
请求示例
/api?api=content&ts=听书&item_ids=7092241301621441059
请求参数
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| ts | string | 必填 | 必须为 "听书" |
| item_ids | string | 必填 | 章节 ID |
响应示例
{
"success": true,
"data": {
"item_id": "7092241301621441059",
"title": "第1章 黑暗降临",
"audio_url": "https://v9-fq-tts.fqnovelvod.com/...",
"duration": 360
}
}
前端播放示例
<!-- HTML 播放器 -->
<audio controls>
<source src="音频URL" type="audio/mpeg">
</audio>
书籍相关接口
GET
book
获取书籍详情
请求示例
/api?api=book&book_id=7132355050277440548
请求参数
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| book_id / bookId | string | 必填 | 书籍 ID |
响应示例
{
"success": true,
"data": {
"book_id": "7132355050277440548",
"title": "一剑一酒一乾坤",
"author": "关",
"cover": "https://p3-reading-sign.fqnovelpic.com/...",
"description": "【剑道+酒仙+玄幻仙侠...】",
"word_count": 4561588,
"chapter_count": "1902",
"category": "传统玄幻",
"status": "已完结"
}
}
响应字段说明
| 字段 | 类型 | 说明 |
|---|---|---|
| book_id | string | 书籍 ID |
| title | string | 书籍名称 |
| author | string | 作者名 |
| cover | string | 封面图片 URL |
| description | string | 书籍简介 |
| word_count | number | 总字数 |
| chapter_count | string | 章节总数 |
| category | string | 分类 |
| status | string | 连载状态 |
错误示例
{
"code": 400,
"message": "缺少必要参数: bookId 或 book_id"
}
GET
directory
获取章节目录
请求示例
/api?api=directory&book_id=7132355050277440548
请求参数
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| book_id / fq_id / bookId | string | 必填 | 书籍 ID |
响应示例
{
"success": true,
"data": [
{
"title": "第1章 那年桃花酒,负剑入青云",
"item_id": "7132355331921084967",
"version": "1947907db17a7e4763278860434d606e_1_0d11847f354f779"
},
{
"title": "第2章 傲娇莫晚云,跌落顾余生",
"item_id": "7132731585715143182",
"version": "7d6e4bb069e88aa956a2ef4da424e948_1_ef64d4d6a7cd831"
}
]
}
数组字段说明
| 字段 | 类型 | 说明 |
|---|---|---|
| title | string | 章节标题 |
| item_id | string | 章节 ID |
| version | string | 章节版本标识 |
错误示例
{
"code": 400,
"message": "缺少必要参数: fq_id 或 book_id"
}
错误处理
错误响应格式
{
"success": false,
"error": "错误描述信息",
"code": 400
}
常见错误码
| 状态码 | 说明 | 处理建议 |
|---|---|---|
| 400 | 请求参数错误或缺少必要参数 | 检查请求参数是否完整正确 |
| 404 | 请求的资源不存在 | 检查 ID 是否正确 |
| 429 | 请求频率超过限制 | 降低请求频率,稍后重试 |
| 500 | 服务器内部错误 | 稍后重试或联系管理员 |
| 503 | 服务暂时不可用 | 服务维护中,稍后重试 |