FlowPick v1.1.1:保護リソースのプレビューとダウンロード
v1.1.0は「もっと検出する」だった。v1.1.1は「検出したものを実際に落とす」だ——具体的には、ダウンロードしようとするとコケるあれらのもの。
ずっとぶつかっていた壁:FlowPickがメディアリソースを嗅ぎつけ、リストに表示し、ユーザーがダウンロードをクリック、そして……何も起きない。あるいはもっと悪く、HTMLエラーページが image.jpg として保存される。原因?アンチホットリンク保護。サーバーが Referer ヘッダーをチェックし、ブラウザ拡張機能だと見なして403か「ログインしてください」のHTMLページを返す。FlowPickのURLは合っているが、そのリクエストが「正当な来源」だと証明できない。
v1.1.1はプロキシレイヤーでこれを解決する——プロキシが正しいヘッダーを運ぶ。FlowPickを使っているなら GitHub Releasesからアップデート。初めてなら v1.0.0リリースノート から。
アンチホットリンクプロキシでプレビュー
最初に気づくこと:壊れたプレースホルダーだった画像が読み込まれるようになった。
- プロキシ経由画像プレビュー。 画像リスト、カバーアート、ホバープレビュー、フルサイズ表示がすべてプロキシを経由し、利用可能な
RefererとCookieを運ぶ。直接リクエストをブロックしていたクロスオリジン制限を回避。 - Cookieの自動転送。 元ページに画像を認可するセッションCookieがあれば、プロキシがそれを運ぶ。手動ヘッダー設定は不要。
これは視覚的バグの第1位だった——FlowPickがギャラリーページで50枚の画像を検出し、半数のサムネイルが空白になる。CDNが一致する Referer のないクロスオリジンリクエストを拒否するからだ。今は全部読み込まれる。
統一プロキシダウンロード
プレビューは一つのこと。ダウンロードは別——v1.1.0には厄介なバグがあった。アンチホットリンク保護されたダウンロードが、HTMLエラーページを要求されたファイルとして静かに保存する。cover.jpg を開くとログインフォームが出てくる。
v1.1.1は統一プロキシダウンロードを追加:
- 画像 —— JPG、PNG、GIF、WebP、SVG、AVIF
- 音声 —— MP3、AAC、WAV、OGG、FLAC、M4A
- ドキュメント —— PDF、DOC、DOCX、XLS、XLSX、PPT、PPTX、EPUB、CSV、RTF
- 字幕 —— SRT、VTT
プロキシは Referer、Cookie、認証ヘッダーを運ぶ。保存前にレスポンスをチェック——サーバーがHTMLページを返した場合(あの「ログインしてください」リダイレクト)、FlowPickは保存を拒否し、ゴミを書き込まない。これが「画像をダウンロードしたらHTMLファイルになった」報告の修正。
動画カバーの読み込み高速化
v1.0.0とv1.1.0の動画カバーの扱いは馬鹿だった:まず直接クロスオリジンリクエストを試し、タイムアウトを待ち(10秒以上かかる)、それからプロキシにフォールバック。v1.1.1はこの待ち時間を飛ばす。
- 直接プロキシプリロード。
Referer付きの動画カバーは直接プロキシリソースに行く。クロスオリジンリクエストが失敗するのを待ってから切り替える必要がない。 - ポップアップ高速化。 メディアリストのカバー填充が目に見えて速くなる。特に画像・動画が密集したページで20以上のカバーが同時に読み込まれる時。
小さな変更だが体感の改善が大きい。ポップアップが機敏になった。サムネイルが15秒かけてポツポツ出てくるのを眺める必要がない。
Firefoxサポート強化
Firefoxはv1.1.0で損をしていた——Chromeの declarativeNetRequest APIはヘッダー注入が素直だったが、Firefoxの実装には隙があった。v1.1.1がそれを埋める。
webRequestBlockingでヘッダー注入。 FirefoxはwebRequestBlockingを使い、メディアリクエストにRefererと認証ヘッダーを注入する。このAPIはChromeは非推奨化したがFirefoxはまだサポートしている——この用途には正しいツール。Originヘッダーを削除。 FirefoxのデフォルトOriginヘッダーが一部のサーバーでクロスオリジンメディアリクエストを拒否される原因だった。v1.1.1はメディアリソースについて自動的にこれを削除。- クロスオリジン読み込みの安定化。 保護された画像、音声、動画、その他メディアがFirefoxで安定して読み込めるようになった。以前は多くのFirefoxユーザーが「FlowPickはリソースを見つけるがダウンロードできない」と報告——CORS + ヘッダー不足が原因、修正済み。
Firefoxユーザー、このバージョンは君たちのためにある。v1.0.0リリースノート が機能パリティを約束し、私たちは本気だった——v1.1.1はその約束を保護リソースで実現する。
バグ修正
アンチホットリンク書き直しは、エッジケースの山も片付けた:
- アンチホットリンク保護で画像が表示されない問題を修正。
- 画像ダウンロードが実際の画像ではなくHTMLエラーページを静かに保存する問題を修正。
- 必須リクエストヘッダー不足で音声・ドキュメントのダウンロードが失敗する問題を修正。
- FirefoxでクロスオリジンCORSリソースの読み込みが失敗する問題を修正。
- 一部の動画カバーの読み込みが遅すぎる問題を修正。
- プロキシリクエストがキャッシュヘッダーを運び、レスポンスが不正確または不完全になる問題を修正。
次は何
v1.1.1は信頼性リリース——FlowPickが既に検出したものを実際にダウンロード可能にする。次のリリースはフォーマット変換(TS→MP4は動くが、MKV/MP3エクスポートが最もリクエストの多い機能)と4Kストリームのパフォーマンスに集中する。
v1.1.1でも検出されたリソースがダウンロードできないサイトがあれば、GitHubでissueを立ててほしい。URLとブラウザのバージョンを添えて。changelogページ が全バージョンを追跡している。
関連記事
- FlowPick v1.1.0:よりスマートなメディア検出 —— 前のリリースが検出を改善;v1.1.1はその検出されたリソースをダウンロード可能にする
- FlowPick v1.0.0:最初の公開リリース —— このアップデートが基づくリリース
- FlowPickはどうやってブラウザで数百の動画セグメントを1つのMP4にまとめるのか —— リソースダウンロード後のWebAssembly FFmpegマージパイプライン
おすすめ記事
- FlowPick vs. yt-dlp —— ブラウザキャプチャモデル vs コマンドラインツール
- ウェブサイトの画像を一括ダウンロード —— アンチホットリンクプロキシの恩恵を最も受ける画像機能
- Bilibili動画のダウンロード方法 —— Refererヘッダーが鍵になる現実のテストケース