bing_wallpaper:自前で動かすBing壁紙API
概要
このリポジトリは「Bing Wallpaper」を自分のCloudflare Workers環境で動かすための軽量な実装です。毎日必応(Bing)が公開するデスクトップ壁紙を自動取得し、Cloudflare KVに保存/管理します。保存した壁紙はランダムリダイレクトや一覧取得用のJSON APIで配信でき、解像度(1920x1080 / UHD)を選択可能です。デプロイはワンクリックでCloudflareへ導入でき、初期状態では当日の壁紙のみKVに入る仕様のため、urls.txtを利用して過去画像のシード投入が可能。定期実行タスク(毎日更新)と手動リフレッシュ機能を備え、個人や小規模サービスの壁紙配信に向いています。(約300字)
リポジトリの統計情報
- スター数: 8
- フォーク数: 5
- ウォッチャー数: 8
- コミット数: 4
- ファイル数: 6
- メインの言語: JavaScript
主な特徴
- 毎日自動でBing壁紙を取得してCloudflare KVに保存
- ランダムリダイレクトおよびJSONでの一覧取得APIを提供
- 複数解像度(1920x1080、UHD)に対応
- ワンクリックでCloudflare Workersへデプロイ可能、urls.txtで過去画像をシード可能
技術的なポイント
このプロジェクトはCloudflare Workers(サーバーレス)とCloudflare KV(キー・バリューストア)を中心に構成されています。Workers上で定期ジョブ(scheduled trigger)を設定し、Bingの公開APIやエンドポイントから当日の壁紙メタ情報や画像URLを取得、KVへ保存する流れが基本です。KVには画像本体ではなくURLやメタ情報(解像度別URL、タイトル、取得日など)を保持する設計が一般的で、READMEの説明からもその方針が推測できます。ランダムアクセスはKVに蓄えたURLリストからランダム選択してリダイレクトする実装で、これによりトラフィックはCloudflareのエッジで処理され高いレスポンスが得られます。JSONエンドポイントは保存されたメタを整形して返すだけなので軽量です。デプロイはCloudflareの「Deploy to Workers」ボタンにより、環境変数(KVバインディングなど)を設定すれば即時稼働します。注意点としては、KVの読み書き一貫性やサイズ制限、Bingの取得頻度とレート制限、クロスオリジンやキャッシュヘッダの設計、UHDなど大きな画像配信時の帯域やキャッシュ戦略が挙げられます。urls.txtをKVへ取り込むことで過去の壁紙コレクションを補完でき、手動更新エンドポイントで即時反映も可能です。(約700字)
プロジェクトの構成
主要なファイルとディレクトリ:
- LICENSE: file
- README.md: file
- package.json: file
- src: dir
- urls.txt: file
…他 1 ファイル
まとめ
シンプルで導入しやすいCloudflare WorkersベースのBing壁紙配信ツール。個人利用に最適。
リポジトリ情報:
- 名前: bing_wallpaper
- 説明: 自建 bing 随机壁纸 API
- スター数: 8
- 言語: JavaScript
- URL: https://github.com/SunXin121/bing_wallpaper
- オーナー: SunXin121
- アバター: https://avatars.githubusercontent.com/u/111034439?v=4
READMEの抜粋:
🌅 Bing Wallpaper
自动抓取每日必应壁纸,并提供随机访问功能。
✨ 功能特性
- 每天自动抓取最新必应壁纸并保存到 Cloudflare KV
- 随机重定向访问壁纸
- 支持不同分辨率(
1920x1080/UHD) - 提供 JSON 接口以获取完整壁纸列表
- 支持手动刷新当日壁纸
- 内置定时任务:每日自动更新
🚀 一键部署
点击下方按钮即可一键部署至 Cloudflare Workers:
部署完成后,KV 中只会有今天的一张壁纸,可以将 urls.txt 中的数据复制到 KV 以获得更多壁纸。
🌐 路由说明
| 路径 | 方法 | 说明…