この記事は、
Twitch公式やIFTTTなどのツールにBlueskyが対応されないことに
面倒くささを感じた私が、なら投稿ツール作ればいいじゃんと
作ったアプリの記事です。
※バグ対応のため現在一時的に配布を中止しております。
お知らせ(2025/06/03現在)
- 使用する際のドメイン保有要件は撤廃しました
- 全設定はGUIからでも設定・管理できます
- GUIはダークモード対応です
- YouTubeLiveの放送終了通知にも対応しました
- Twitchアカウント設定は必須ではなくなりました
- 投稿テンプレートで使える項目が増えました
- 開発はほぼ完了しているため今後は最終的な検証を行います
対応配信プラットフォーム
・Twitch
・YouTube(Live/動画投稿)
・ニコニコ(生放送/動画)
主な特徴
基本機能
- Twitch EventSub Webhookで配信開始・終了を自動検知
- 不要なTwitchAPIへのアクセストークンの自動クリーンアップ
- YouTubeLiveの放送開始・終了の検知に対応
- ニコニコ生放送の放送開始の検知に対応(API仕様により終了は非対応)
- Youtube動画/ニコニコ動画のアップロード検知(App起動後の新着のみ)に対応
- ドメイン不要でローカル環境でもWebhook受信
- 設定ファイルで設定を細かくカスタマイズ可能
- Discord へのエラー通知・通知レベルの管理や機能オフも可能
- ログファイル・コンソール出力のログレベルは設定ファイルで調整可能
- APIエラー時の自動リトライ機能(回数や間隔も調整可能)
投稿関連
- Blueskyへ自動で配信開始/終了通知を投稿(個別On/Off可能)
- Blueskyへ投稿する内容はテンプレートで個別に切り替え可能
- Blueskyへ投稿するとき特定の画像を添付することも可能
- Bluesky投稿した内容をCSVで投稿履歴として記録
安全・保守機能
- Webhook署名のタイムスタンプ検証によるリプレイ攻撃対策
- 監査ログの保存機能を実装しているので、操作履歴の確認に活用可能
- 自動テスト機能による品質管理を実装(tests/ディレクトリ)
- 拡張性・保守性を考慮したモジュール分割設計
2. 使用に必要なもの(2025/05/16時点)
インターネット回線
・当然ですがインターネット回線が必要です。
- 固定IPアドレスである必要はありません。
- IPv6(IPoE/v6プラス等々)の回線でも問題はありません。
Blueskyのアカウント
- 配信通知を投稿するために使うBlueskyのアカウントとアプリパスワードを用意してください
パソコン(Windows10以降)
- MacやLinuxには対応していません。今のところWindows専用です。
- Python 3.10 以上 推奨
- Git 2.49 以上 推奨
- cloudflared (CloudflareTunnelを使う場合は事前インストール必須)
- ngrok/localtunnelにも対応はしています。
アカウント関連
-
Twitch のユーザーID・Twitch APIのAPIキー
-
YouTubeのユーザーID・YouTubeDataAPIのAPIキー
-
ニコニコアカウント
のいずれか一つが必要です。 -
Bluesky アカウント(IDとアプリパスワード)
3. 残りのタスク(2025/06/04時点)
・本番配信による最終検証
実際のTwitch配信開始イベント(ガチの配信開始通知)で
Bluesky投稿が行われるかは、
配信環境が整い次第テストが必要である。
・Dockerイメージの生成と動作確認
一応生成はしましたが動作確認はまだ完全には終わってません。
releaseにも含んではいますが同様でです。
4. 今後の課題とか実装予定とか
流石にもう機能追加は十分したと思うので、
気が向いたらなんか追加するかもくらいにしておきます。