Files
MemRelay/projects/280dd2a0-d23d-4a71-91e1-dce4353163be/playlistv2 用 apasstk 和 JSON 按剧分页.md
T
memrelay 7ac3289356 update: playlistv2 用 apasstk 和 JSON 按剧分页
MemRelay-Operation: memory-save:rapt-playlist-revise-20260925
MemRelay-Resource: f2a9f710-4c97-46ed-963b-7f0e5f8484d4
2026-09-25 23:15:35 +08:00

34 lines
2.0 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
---
title: playlistv2 用 apasstk 和 JSON 按剧分页
type: experience
permalink: main/projects/280dd2a0-d23d-4a71-91e1-dce4353163be/playlistv2-用-apasstk-和-json-按剧分页
stable_id: f2a9f710-4c97-46ed-963b-7f0e5f8484d4
scope: project
memory_type: experience
project_id: 280dd2a0-d23d-4a71-91e1-dce4353163be
usage_profile_id: 0c9feb46-d06e-43cd-9ef0-c5813c84a998
status: active
revision: 2
request_id: rapt-playlist-revise-20260925
created_at: '2026-09-24T23:13:54.617444+00:00'
updated_at: '2026-09-25T15:15:33.875012+00:00'
tags:
- playlistv2
- apasstk
- scraper
---
批量拿 CDN 必须复刻 App 真实请求,不能用 Authorization: Bearer 加 form 表单。
基址:https://apis.raptdrama.com
认证头:apasstk,值就是登录后 FlutterSharedPreferences 里的 accessToken。另外要带 User-Agent: RaptDrama/1.1.81 (Android 12; 23113RKC6C; Redmi),X-Device-Type: phone,以及设备指纹那组 X- 头。正文是 application/json。
Passion 列表:POST /app/open/classify_video,body {"page":从1开始,"limit":10,"type":20}。参数名是 type,不是 tstype 或 classify。空页结束。
分集:GET /app/video/getchapters?vid=剧id&start=&limit=
播放地址:POST /app/video/playlistv2,body {"vid":剧id,"page":n,"before":第一页为1其余为0}。vid 是整部剧的 id,不是单集 id。每页 10 集,data.count 是总集数。list 项里 cid 是集 id,idx 是集号,src 是主 m3u8;未解锁集 src 为空字符串。
主 m3u8 指向 1080p/video.m3u8,ts 为同目录下 videoN.ts,共用 Bunny token path。
已验证:rapt_scraper.py 一次跑完 Passion:37 部、1607 集、118 集免费且全部有 m3u8 和 ts,1489 集锁定且 src 为空。结果在 raptdrama_passion_full.json。签名地址会过期,重新跑脚本即可刷新。默认用游客 autologin;指定账号用环境变量 RAPTD_TOKEN,或在已 root 的设备上加 --from-device。连接偶尔会被对端直接断开,脚本里已做重试。
不要把 accessToken 或 CDN 签名写进普通记忆。不要再用 Bearer 或 form 去调 playlistv2。