LinkSwiftは、ブラウザ上で動作するユーザースクリプトであり、主要なクラウドストレージサービスからファイルの生のダウンロードURLを抽出する。公式クライアントや速度制限を回避し、外部ダウンローダーと組み合わせて高速な取得を実現する。
動作の仕組み
本スクリプトは、各ストレージが提供する公開APIエンドポイントに対して正規のHTTPリクエストを送信し、ファイルのメタデータやダウンロード用トークンを解析する。一切の改変やクラッキングは行っておらず、ログイン状態を維持したままAPIの仕様に従って直リンクを生成する。解析処理はサービスごとに独立したモジュールとして実装され、設定はconfigディレクトリ内のJSONファイルで管理される。
{
"endpoint": "https://api.example.com/v2/file",
"method": "GET",
"headers": {
"Authorization": "Bearer {access_token}"
},
"query_params": ["file_id", "share_key"],
"response_path": "data.download_url"
}
上記のような構造化された設定によって、新しいストレージへの対応が容易になり、API変更時も設定ファイルの修正だけで追随できる。
導入と基本構成
利用にはユーザースクリプトマネージャ(Tampermonkeyなど)が必須である。ブラウザに拡張機能を追加した後、スクリプトファイルをインストールする。プロジェクトにはメインスクリプトとストレージ固有の設定ファイルが含まれており、マネージャのインポート機能で読み込むだけで有効化される。
ファイル構造は以下のようになっている。
.
├── disk_link_extractor.user.js
├── config
│ ├── pan_baidu.json
│ ├── aliyun_pan.json
│ ├── tianyi_pan.json
│ ├── xunlei_pan.json
│ ├── quark_pan.json
│ └── cmcc_pan.json
├── README.md
└── LICENSE
メインスクリプトはページのDOMを監視し、対応するストレージのページにアクセスすると自動的に「直リンク解析」ボタンを挿入する。ユーザーはファイルを選択してボタンを押すだけで、利用可能なダウンロードモードが一覧表示される。
ダウンロードモードと外部ツール連携
抽出された直リンクは、複数の方法でダウンロードできる。ブラウザのネイティブダウンロードに加え、以下のようなモードが用意されている。
- Aria2モード:マルチスレッド・分割ダウンロード用のコマンドやRPCペイロードを生成する。例:
aria2c -s 10 -x 10 --dir=/downloads "URL" - cURLモード:ターミナルから直接実行可能なcurlコマンドを発行する。ヘッダやCookieも自動で付与される。
- IDM / Motrix向けエクスポート:ダウンロードマネージャが解釈できる形式でリンクを渡し、帯域を最大限に活用する。
これにより、バッチファイルやCI/CDパイプラインへの組み込みも容易になる。
よくある質問とトラブルシューティング
- 解析ボタンが表示されない
- ページを再読み込みし、Tampermonkeyの実行状態を確認する。スクリプトが有効になっていて、かつサポート対象のURLパターンに合致していることを確かめる。
- ダウンロード速度が上がらない
- Aria2のコネクション数や分割サイズを調整する(例:
--split=16 --min-split-size=1M)。また、アカウントの権限によってはAPIレベルで転送レートが制限される場合もある。 - リンクがすぐに期限切れになる
- 直リンクは動的に生成されるため、有効期限はサービスによって異なる。再解析を実行すれば新しいURLが得られる。ファイルが削除または移動されている可能性も考慮する。
設計上の配慮
このスクリプトはオープンソースであり、すべての通信はブラウザの開発者ツールで監視可能である。API呼び出しに使用するトークンやセッション情報はローカルでのみ処理され、外部サーバーには一切送信されない。また、設定ファイルを個別に管理することで、各ストレージのポリシー変更に迅速に対応できる構造になっている。