AVBUZZ — FANZA AV Query Skill
⚠️ Adult Content (R18+) — This skill indexes adult video (AV) content from FANZA. Users must be 18+ and comply with local laws.
Query AV new releases, rankings, actress info, and search from FANZA's free GraphQL API. No API keys or authentication required.
API Overview
Endpoint: INLINECODE0
Authentication: None (public API)
Content-Type: INLINECODE1
All queries use the legacySearchPPV GraphQL operation. Results include: video code (番號), title, actresses, maker/studio, release date, cover image URL, star ratings, and bookmark count.
Determining Today's JST Date
FANZA uses JST (Japan Standard Time, UTC+9). To get today's date in JST:
CODEBLOCK0
On macOS:
CODEBLOCK1
Use this date value in any deliveryStartDate filter. For yesterday, subtract 1 day:
date -u -d '+9 hours -1 day' '+%Y-%m-%d'
Query Operations
1. Today's New Releases
Fetch videos released on a specific date (use JST date, format YYYY-MM-DD):
CODEBLOCK3
Change deliveryStartDate to any YYYY-MM-DD date. Use offset for pagination (0, 10, 20...).
2. Today's Hot (by Popularity)
Same as new releases but sorted by sales rank:
CODEBLOCK4
3. Rankings
Top videos by different criteria. Change sort value:
Sales ranking (best-selling):
CODEBLOCK5
Review ranking (highest rated):
CODEBLOCK6
Bookmark ranking (most saved):
CODEBLOCK7
Available sort values:
| Sort Value | Use When |
|---|
| INLINECODE10 | User asks for "latest" / "newest" / "最新" — sorted by release date |
| INLINECODE11 |
User asks for "popular" / "best-selling" / "熱門" / "銷售" |
|
REVIEW_RANK_SCORE | User asks for "highest rated" / "best reviewed" / "評分" |
|
BOOKMARK_COUNT | User asks for "most saved" / "most bookmarked" / "收藏" |
4. Search by Keyword
Search by actress name, title, video code, or any keyword:
CODEBLOCK8
Replace 蒼井空 with any search term. Works with:
- - Actress names (Japanese):
波多野結衣, 蒼井 空 (space may help) - Video codes:
SSNI, INLINECODE18 - Keywords:
VR, 4K, studio names - English terms work too
Important notes on search:
- - Keyword search is fuzzy/broad — partial kanji matches may return unrelated results. If searching for a specific actress returns unexpected results, try adding a space between family and given name, or search for just the family name
- Video code format: Users typically write
SSIS-001 but FANZA uses ssis00001 (lowercase, no hyphen, 5-digit zero-padded number). Try both formats — the API handles uppercase/lowercase, but removing the hyphen and padding zeros improves accuracy - For exact actress works, prefer the Actress ID search (Section 5) over keyword search
5. Search by Actress ID
If you know the actress ID (from a previous search result), fetch all her works:
CODEBLOCK9
Replace 26225 with the actress ID. Note the nested object syntax: actressIds: { ids: [{ id: "ID" }] }.
Response Format
All queries return the same structure:
CODEBLOCK10
Field Reference
| Field | Description |
|---|
| INLINECODE25 | FANZA product code / 番號 (e.g., ssni00001) — display as UPPERCASE |
| INLINECODE27 |
Video title (Japanese) |
|
deliveryStartAt | Release date (
YYYY-MM-DD) |
|
contentType |
TWO_DIMENSION for normal,
VR for VR content |
|
maker.name | Studio/maker name |
|
actresses | Array of
{ id, name } — performer info |
|
packageImage.largeUrl | Cover image URL (DMM CDN) |
|
review.average | Star rating 1.0–5.0 |
|
review.count | Number of reviews |
|
bookmarkCount | Number of user bookmarks/saves |
|
pageInfo.totalCount | Total matching results (for pagination) |
Pagination
Use limit and offset parameters:
- - Page 1: INLINECODE43
- Page 2: INLINECODE44
- Page 3: INLINECODE45
Maximum limit is 50.
FANZA Product Page URL
To link to a video's FANZA page:
https://www.dmm.co.jp/digital/videoa/-/detail/=/cid={id}/
Replace
{id} with the product code (lowercase).
Error Handling
| HTTP Code | Meaning | Action |
|---|
| 200 | Success | Parse INLINECODE48 |
| 200 + INLINECODE49 |
GraphQL validation error (wrong syntax) | Check query syntax against examples above |
| 429 | Rate limited | Retry after 2-10 seconds (exponential backoff) |
| 500 | Server error | Retry after 5 seconds; if persistent, API may be temporarily down |
| 503 | Service unavailable | API is temporarily down; retry after 30 seconds |
| Timeout | Network issue | Check connectivity; retry after 5 seconds |
Empty results (contents: [], totalCount: 0) are NOT errors — they mean no matching content was found.
VR Content Filtering
The GraphQL API does NOT support filtering by contentType (VR vs normal). To find VR content:
- 1. Query normally (by date, keyword, ranking, etc.)
- Filter results client-side: check
contentType === "VR" in the response - Recommended fallback: If client-side filtering returns no VR results (e.g., top-rated are all 2D), combine
queryWord: "VR" with your desired sort to get VR-specific results
Tips for Effective Queries
- 1. Date format is JST — Japan is UTC+9. "Today" in JST may differ from your timezone
- Actress names — Try with and without spaces:
蒼井空 and INLINECODE55 - Sort wisely — Use
SALES_RANK_SCORE for popular, DELIVERY_START_DATE for newest - VR content — Check
contentType === "VR" (normal content is "TWO_DIMENSION") and mark with 🥽 - Cover images —
packageImage.largeUrl works directly in Discord embeds, Telegram, web, etc. - Error responses — API returns
{"errors":[...]} on invalid queries. HTTP 429 means rate limited — retry after a few seconds.
Daily Notifications
This skill provides on-demand queries only. The AI queries FANZA when you ask, but cannot autonomously push daily notifications.
For automatic daily new release alerts, deploy the AVBUZZ Discord bot to a VPS (see "Advanced: Discord Bot Deployment" below). The bot supports:
- - Daily digest at configurable JST time (default 00:05)
- Actress tracking alerts every 6 hours
- INLINECODE62 /
/notify off to toggle daily push per channel
Disclaimer
FANZA GraphQL API is undocumented and unofficial. This skill uses a reverse-engineered API endpoint (api.video.dmm.co.jp/graphql) that is not publicly supported by DMM/FANZA. The API could change or become unavailable at any time without notice. Use at your own risk. This project is not affiliated with DMM, FANZA, or any content producers.
Advanced: Discord Bot Deployment
AVBUZZ can also run as a persistent Discord bot with slash commands, automatic daily digests, actress tracking alerts, and Telegram integration.
GitHub: github.com/zxcnny930/avbuzz
Quick Setup
CODEBLOCK12
Requires: node, npm, INLINECODE67
Configuration
All settings in config.json:
CODEBLOCK13
Discord Setup
- 1. Create app at discord.com/developers → Bot tab → Add Bot → copy Token
- OAuth2 → URL Generator → scopes:
bot → permissions: Send Messages, Embed Links → invite bot - Right-click server → Copy Server ID (enable Developer Mode first)
- Right-click channel → Copy Channel ID
Telegram Setup (Optional)
- 1. Message
@BotFather on Telegram → /newbot → copy Token - Send a message, then visit
https://api.telegram.org/bot<TOKEN>/getUpdates → find INLINECODE75 - Leave both fields empty to run Discord-only
Discord Slash Commands
| Command | Description |
|---|
| INLINECODE76 | New releases for date (default: today JST) |
| INLINECODE77 |
Today's trending (by sales rank) |
|
/ranking <sales\|review\|bookmark> | Top 10 by category |
|
/search <keyword> | Search by actress, title, code |
|
/track <name> | Track actress — alerts on new releases |
|
/untrack <name> | Stop tracking |
|
/tracklist | Show all tracked actresses |
|
/random | Random video recommendation |
|
/status | System status and API health check |
|
/code <id> | Exact video code lookup (e.g., SSIS-001) |
|
/digest | Weekly top picks (rating, bookmark, sales) |
Scheduling
| Task | Frequency | Description |
|---|
| Daily Digest | Once/day (configurable JST time) | Top 20 new releases → Discord + Telegram |
| Actress Check |
Every 6h (configurable) | New releases for tracked actresses → alerts |
| Weekly Digest | Sunday JST 20:00 | Top rated, bookmarked, best-selling → Discord + Telegram |
VPS Deployment (systemd)
CODEBLOCK14
Create /etc/systemd/system/avbuzz.service:
CODEBLOCK15
CODEBLOCK16
Reconfiguring
CODEBLOCK17
License
Dual License — Non-commercial use is free under PolyForm Noncommercial 1.0.0. Commercial use requires a separate license from the author.
GitHub: github.com/zxcnny930/avbuzz
AVBUZZ — FANZA AV 查询技能
⚠️ 成人内容(R18+) — 本技能索引来自 FANZA 的成人视频(AV)内容。用户必须年满 18 岁并遵守当地法律。
查询 AV 新作发布、排行榜、女演员信息,并通过 FANZA 的免费 GraphQL API 进行搜索。无需 API 密钥或身份验证。
API 概述
端点: POST https://api.video.dmm.co.jp/graphql
身份验证: 无(公共 API)
内容类型: application/json
所有查询均使用 legacySearchPPV GraphQL 操作。结果包括:视频番号、标题、女演员、制作商/工作室、发布日期、封面图片 URL、星级评分和收藏数。
确定今天的日本标准时间(JST)日期
FANZA 使用日本标准时间(JST,UTC+9)。要获取 JST 下的今天日期:
bash
date -u -d +9 hours +%Y-%m-%d
在 macOS 上:
bash
TZ=Asia/Tokyo date +%Y-%m-%d
在任何 deliveryStartDate 过滤器中使用此日期值。对于昨天,减去 1 天:
bash
date -u -d +9 hours -1 day +%Y-%m-%d
查询操作
1. 今日新作发布
获取特定日期发布的视频(使用 JST 日期,格式 YYYY-MM-DD):
bash
curl -s -X POST https://api.video.dmm.co.jp/graphql \
-H Content-Type: application/json \
-d {query:{ legacySearchPPV(limit: 10, offset: 0, sort: DELIVERYSTARTDATE, floor: AV, filter: { deliveryStartDate: \2026-03-03\ }) { result { contents { id title deliveryStartAt contentType maker { name } actresses { id name } packageImage { largeUrl } review { average count } bookmarkCount } pageInfo { totalCount } } } }}
将 deliveryStartDate 更改为任何 YYYY-MM-DD 格式的日期。使用 offset 进行分页(0, 10, 20...)。
2. 今日热门(按人气排序)
与新作发布相同,但按销售排名排序:
bash
curl -s -X POST https://api.video.dmm.co.jp/graphql \
-H Content-Type: application/json \
-d {query:{ legacySearchPPV(limit: 10, offset: 0, sort: SALESRANKSCORE, floor: AV, filter: { deliveryStartDate: \2026-03-03\ }) { result { contents { id title deliveryStartAt contentType maker { name } actresses { id name } packageImage { largeUrl } review { average count } bookmarkCount } pageInfo { totalCount } } } }}
3. 排行榜
按不同标准排列的顶级视频。更改 sort 值:
销售排行榜(最畅销):
bash
curl -s -X POST https://api.video.dmm.co.jp/graphql \
-H Content-Type: application/json \
-d {query:{ legacySearchPPV(limit: 10, sort: SALESRANKSCORE, floor: AV) { result { contents { id title deliveryStartAt contentType maker { name } actresses { id name } packageImage { largeUrl } review { average count } bookmarkCount } pageInfo { totalCount } } } }}
评价排行榜(评分最高):
bash
curl -s -X POST https://api.video.dmm.co.jp/graphql \
-H Content-Type: application/json \
-d {query:{ legacySearchPPV(limit: 10, sort: REVIEWRANKSCORE, floor: AV) { result { contents { id title deliveryStartAt contentType maker { name } actresses { id name } packageImage { largeUrl } review { average count } bookmarkCount } pageInfo { totalCount } } } }}
收藏排行榜(最多保存):
bash
curl -s -X POST https://api.video.dmm.co.jp/graphql \
-H Content-Type: application/json \
-d {query:{ legacySearchPPV(limit: 10, sort: BOOKMARK_COUNT, floor: AV) { result { contents { id title deliveryStartAt contentType maker { name } actresses { id name } packageImage { largeUrl } review { average count } bookmarkCount } pageInfo { totalCount } } } }}
可用的 sort 值:
| 排序值 | 使用场景 |
|---|
| DELIVERYSTARTDATE | 用户询问最新/最新发布 — 按发布日期排序 |
| SALESRANKSCORE |
用户询问热门/最畅销/熱門/銷售 |
| REVIEW
RANKSCORE | 用户询问评分最高/评价最好/評分 |
| BOOKMARK_COUNT | 用户询问最多收藏/最多保存/收藏 |
4. 按关键词搜索
按女演员姓名、标题、视频番号或任何关键词搜索:
bash
curl -s -X POST https://api.video.dmm.co.jp/graphql \
-H Content-Type: application/json \
-d {query:{ legacySearchPPV(limit: 10, offset: 0, sort: SALESRANKSCORE, floor: AV, queryWord: \蒼井空\) { result { contents { id title deliveryStartAt contentType maker { name } actresses { id name } packageImage { largeUrl } review { average count } bookmarkCount } pageInfo { totalCount } } } }}
将 蒼井空 替换为任何搜索词。适用于:
- - 女演员姓名(日文):波多野結衣、蒼井 空(空格可能有帮助)
- 视频番号:SSNI、IPZ-123
- 关键词:VR、4K、工作室名称
- 英文词也适用
关于搜索的重要说明:
- - 关键词搜索是模糊/宽泛的 — 部分汉字匹配可能会返回不相关的结果。如果搜索特定女演员返回意外结果,请尝试在姓氏和名字之间添加空格,或仅搜索姓氏
- 视频番号格式: 用户通常写 SSIS-001,但 FANZA 使用 ssis00001(小写,无连字符,5 位零填充数字)。尝试两种格式 — API 处理大小写,但去除连字符和填充零可提高准确性
- 对于精确的女演员作品,优先使用女演员 ID 搜索(第 5 节)而不是关键词搜索
5. 按女演员 ID 搜索
如果您知道女演员 ID(来自之前的搜索结果),获取她的所有作品:
bash
curl -s -X POST https://api.video.dmm.co.jp/graphql \
-H Content-Type: application/json \
-d {query:{ legacySearchPPV(limit: 20, sort: DELIVERYSTARTDATE, floor: AV, filter: { actressIds: { ids: [{ id: \26225\ }] } }) { result { contents { id title deliveryStartAt contentType maker { name } actresses { id name } packageImage { largeUrl } review { average count } bookmarkCount } pageInfo { totalCount } } } }}
将 26225 替换为女演员 ID。注意嵌套对象语法:actressIds: { ids: [{ id: ID }] }。
响应格式
所有查询返回相同的结构:
json
{
data: {
legacySearchPPV: {
result: {
contents: [
{
id: ssni00001,
title: 日文标题,
deliveryStartAt: 2026-03-03,
contentType: TWO_DIMENSION,
maker: { name: 工作室名称 },
actresses: [
{ id: 26225, name: 波多野結衣 }
],
packageImage: {
largeUrl: https://pics.dmm.co.jp/...
},
review: { average: 4.5, count: 123 },
bookmarkCount: 456
}
],
pageInfo: { totalCount: 42 }
}
}
}
}
字段参考
FANZA 产品代码/番号(例如 ssni00001)—