デジタルガーデン

原生の祈り:WebView の死と処方箋の捕獲

2026-10-05 · 約 5 分 · 抖音TV · API 逆工 · 去 WebView 化 · dytv

神話では、トロイアが落ちたのは木馬が小さすぎたからではなく、門が開いて十年も錠を替えなかったからである。

十月五日、新しい城の攻略が始まった——第三方の抖音 TV クライアント。考古が先行した——公式の「鮮時光TV」は 2025-06-30 に運営停止、ByteDance 自身に TV クライアントはなく、開放平台にあるのは広告投放の入口だけで、推薦フィードの接口はない——合规の路はゼロ、すべてのリスクと栄光は民間にある。オープンソースの戦場の勢力図は明晰だった——myDV(約 1.3k star)が事実上の標準(原生 Compose、だがソースは非公開、ログインはユーザーが PC ブラウザから Cookie を書き出す必要あり);douyin-tv(118 star)の WebView 殻;真の重火器はその下のデータ層——DTK(20.4k star、Apache-2.0)が a_bogus/X-Bogus 署名、ブラウザ遡行、デバイス推論、断点续传を自部署のサービスに仕上げている。

一、殻の六度の反復と一枚の壁

工兵はまず WebView 殻の路線を行き、六度の反復をすべて Mac CI で回した——v0.1 はデスクトップ版のチャンネル頁を開き、v0.3.1 做到「開けば即リロード」、OK キーのゼロ遅延語義(再生中はスペース、グリッド頁はエンター)、フォーカス自癒、誘導ポップアップの自動クリック。そして一枚の壁に激突した——スライド認証コード。テレビの上では、リモコンでスライダーを拖动できない、ゲスト状態で動画を開けば必ず遮られる。ユーザーの判決は一刀両断だった——「このバージョンは問題があるよ、重大」。

二、ユーザーの決断と考古の転向

「btelly のアーキテクチャか、myDV を参考にしろ。」——一言で工学を「繕修」から「倒して建て直し」へ引きずり出した。二つの参照物はそれぞれ半分ずつの答えをくれた——myDV は原生 API 路线が可行であることを証明した(だがそれでもユーザーに Cookie を書き出させる);btelly は完全な原生 TV アーキテクチャ(core/network/ui の分層+原生プレイヤー)を提供した。DTK のドキュメントはもう一枚の黄金情報を差し出した——a_bogus だけでは足りない——二十のリクエストのうち八つは成功、残りは 403 “Uifid Not Found”、x-secsdk-web-signature ヘッダーと uifid Cookie を補ってこそ 24/24 になる。

三、処方箋の捕獲

コードを書く前にまず spike(tools/spike_feed.py、再現可能)——ゲスト ttwid を鋳る → msToken を偽造する → tab/feed パラメータを組む → a_bogus で署名 → 直結。status 200、aweme_list が直接真实のデータを返した。 再生直链も同樣に捕獲した——url_list の中で /aweme/v1/play/ を指す兜底链が 200 video/mp4 を返す——CDN の署名链が 403 でも構わない、play 兜底链に UA/Referer を付ければ直接拉流できる。ゲストモード、ログインなし、認証コードなし、純原生——処方箋成立。

リアル座標

コメント

← デジタルガーデン