MemRelay-Operation: memory-save:rapt-cdn-heap-revise-20260925 MemRelay-Resource: 19447a9a-2d0a-42d9-a258-ad9046bd1505
32 lines
1.6 KiB
Markdown
32 lines
1.6 KiB
Markdown
---
|
||
title: 免费集播放后内存里有完整 BunnyCDN m3u8
|
||
type: experience
|
||
permalink: main/projects/280dd2a0-d23d-4a71-91e1-dce4353163be/免费集播放后内存里有完整-bunny-cdn-m3u8
|
||
stable_id: 19447a9a-2d0a-42d9-a258-ad9046bd1505
|
||
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-cdn-heap-revise-20260925
|
||
created_at: '2026-09-24T22:41:27.398226+00:00'
|
||
updated_at: '2026-09-25T15:15:08.390927+00:00'
|
||
tags:
|
||
- cdn
|
||
- playlistv2
|
||
- bunnycdn
|
||
---
|
||
|
||
后续更正:66 秒就是完整短视频,不是预览。playlistv2 改用 apasstk 和 JSON 之后,脚本已经能批量拿到免费集地址,不要再按本文末尾去扫堆或拦截 Dio。下面保留当时的抓包现象。
|
||
|
||
现象:即使 Google 登录后,外部用 Authorization Bearer 和 form 调 /app/video/playlistv2 仍返回 299;但 App 内播放免费集时播放器确实拿到了 CDN 地址。
|
||
|
||
Flutter 日志 PlayerPage url预览会把签名截成 bcdn_token=HS256...,完整串不在 logcat。用 Frida 16.5.9 扫进程 rw- 堆里的 bcdn_token= 可拿到完整 URL。
|
||
|
||
URL 形状:https://vz-<pull>.b-cdn.net/bcdn_token=<sig>&token_path=%2F<video-uuid>%2F&expires=<unix>/<video-uuid>/playlist.m3u8
|
||
这是 Bunny token authentication 路径前缀。token_path 覆盖该视频目录,同一前缀可访问子播放列表和 ts。
|
||
|
||
已验证:主播放列表 HTTP 200,指向 1080p/video.m3u8(1082x1920);子列表为 VOD,带 #EXT-X-ENDLIST。
|
||
|
||
不要把签名本体写进普通记忆。不要再走 mitmproxy transparent、reFlutter、iptables DNAT。 |