v6 迁移指南
从 v5.x 升级到 v6.x 的迁移指南
v6 迁移指南
本文档帮助你从 amagi v5.x 升级到 v6.x。
v6 正式版已发布。自 v6.5.0 起,v6.0 中标记为废弃的兼容 API 已彻底移除。
核心变更
v6 是一次重大重构,主要变更:
- 移除
getXxxDataAPI - 所有getDouyinData、getBilibiliData等方法已删除(v6.0 ~ v6.4 调用会抛出错误,v6.5.0 起彻底移除) - 统一使用 Fetcher API - 通过
client.平台.fetcher.方法名()调用 - 日志系统重构 - 移除
log4js,改用事件驱动架构 - 方法名英文化 - 所有 API 方法名改为英文
安装
npm install @ikenxuan/amagiAPI 调用方式迁移
v5 用法 (已移除)
// ❌ v6 中这些 API 已移除,无法导入
import { getDouyinData, getBilibiliData } from '@ikenxuan/amagi'
await getDouyinData('视频作品数据', { aweme_id: '123' }, cookie)
await getBilibiliData('单个视频作品数据', { bvid: 'BV1xx' }, cookie)v6 用法
import amagi from '@ikenxuan/amagi'
const client = amagi({
cookies: {
bilibili: 'SESSDATA=xxx; ...',
douyin: 'ttwid=...; ...',
kuaishou: 'did=...; ...',
xiaohongshu: 'a1=...; ...',
}
})
// 无需再传递 cookie
const video = await client.bilibili.fetcher.fetchVideoInfo({ bvid: 'BV1xx411c7mD' })
const work = await client.douyin.fetcher.fetchVideoWork({ aweme_id: '123' })
日志系统迁移
v5 用法 (已移除)
// ❌ v6 中已移除
import { logger, initLogger } from '@ikenxuan/amagi'
initLogger()
logger.info('消息')v6 用法
import { amagiEvents } from '@ikenxuan/amagi'
// 监听日志事件
amagiEvents.on('log:info', (data) => console.log(data.message))
amagiEvents.on('log:error', (data) => console.error(data.message))
// 监听 API 事件
amagiEvents.on('api:success', (data) => {
console.log(`[${data.platform}] ${data.methodType} 成功`)
})详见 事件系统。
方法名对照表
参数变更
抖音搜索类型
type 参数从中文改为英文:
import amagi from '@ikenxuan/amagi'
const client = amagi({ cookies: { bilibili: '', douyin: '', kuaishou: '', xiaohongshu: '' } })
// v5: type: '用户' | '视频' | '综合'
// v6: type: 'user' | 'video' | 'general'
await client.douyin.fetcher.searchContent({
query: '关键词',
type: 'user' // 而不是 '用户'
})迁移示例
获取视频信息
import amagi from '@ikenxuan/amagi'
// v5 ❌
// const data = await getBilibiliData('单个视频作品数据', { bvid: 'BV1xx' }, cookie)
// v6 ✅
const client = amagi({ cookies: { bilibili: 'SESSDATA=xxx', douyin: '', kuaishou: '', xiaohongshu: '' } })
const data = await client.bilibili.fetcher.fetchVideoInfo({ bvid: 'BV1xx411c7mD' })获取评论
import amagi from '@ikenxuan/amagi'
// v5 ❌
// const data = await getDouyinData('评论数据', { aweme_id: '123', number: 20 }, cookie)
// v6 ✅
const client = amagi({ cookies: { bilibili: '', douyin: 'ttwid=xxx', kuaishou: '', xiaohongshu: '' } })
const data = await client.douyin.fetcher.fetchWorkComments({
aweme_id: '123',
number: 20
})自定义日志
import { amagiEvents } from '@ikenxuan/amagi'
import pino from 'pino'
const logger = pino()
// 将 amagi 日志转发到 pino
amagiEvents.on('log:info', (data) => logger.info(data.message))
amagiEvents.on('log:warn', (data) => logger.warn(data.message))
amagiEvents.on('log:error', (data) => logger.error(data.message))常见问题
Q: 调用 getXxxData 报错怎么办?
这些方法已完全移除。请按照上面的对照表,将调用改为对应的 fetcher 方法。
Q: 如何监控 API 调用性能?
import { amagiEvents } from '@ikenxuan/amagi'
amagiEvents.on('api:success', (data) => {
console.log(`[${data.platform}] ${data.methodType} 耗时 ${data.duration}ms`)
})
amagiEvents.on('api:error', (data) => {
console.error(`[${data.platform}] ${data.methodType} 失败: ${data.errorMessage}`)
})Q: client.平台.api 和 client.平台.fetcher 有什么区别?
api 已在 v6.5.0 中移除,请统一使用 fetcher。fetcher 是 v6 的调用方式。
最后更新于 2026-09-24