配信・動画の自動シェアツール "CASTRA 《キャストラ》"
リハビリの一環で作成していた習作WEBサービスが完成を見たので、リリースしました。CASTRAと言います。
CASTRAとは一体どんなWEBサービスなのか?簡単に説明すると・・・
CASTRA は、めんどくさがりな配信者(e.g.開発者自身)のための、配信・動画の自動シェアツールです。 YouTube Live で配信を開始するだけで・あるいは YouTube に動画をアップして公開するだけで、 後は自動的に CASTRA が あなたに代わって SNS へ視聴URLをシェアします。 また、配信が続く限り、一定の間隔でシェアすることもできます。
何のことはないYouTube Live配信や動画を自動的にSNSでシェアするだけの簡単で地味なWEBサービスです。配信や動画投稿をしない人には無用の長物です。
動画・配信プラットフォームとしてはYouTubeのみ対応。シェアする先はTwitter, Facebook(Pageのみ対応), Discord に対応しています。
特殊な機能として、CASTRA自身がWebhook URLを発行でき、外部からステータスを受信して、SNSへの投稿文に埋め込むことが出来ます。私が趣味で行っている車載配信で、位置情報を送るのに使っています。
CASTRA はどなたでも無料で使用できるサービスです。日頃より趣味で配信を行われており、かつ面倒くさがりの方はぜひ活用してください!
使い方
本サービスを利用するには以下の物が最低限必要です。
YouTubeチャンネル(Googleアカウント)
以下のいずれかのSNSアカウント
- Facebook (Page)
- Discord
1. サインイン
トップにアクセスしたら Sign in with Google ボタンをクリックし、目的の YouTube チャンネルを接続してください(もちろん、「ブランドアカウント」にも対応しています)
2. SNSとの接続
次に「設定」を開いて各種 SNS アカウントと接続を行ってください。 使用するものだけ接続すればOKです。とは言え、どれか一つは接続しないと意味がないです。
3. 設定
各 SNS でシェアするタイミングと文言を設定してください。 以下のタイミングが有効です。
TwitterとDiscord
- 配信開始
- 配信中(一定間隔)
- 配信終了後アーカイブ公開時
- 動画公開時
Facebook
- 配信開始
- 配信終了後アーカイブ公開時
- 動画公開時
注意
当然の事ですが、公開設定されてない配信や動画はシェアされません。
APIアクセスにはレート制限があるので、配信は最大5分、動画は最大10分の誤差があることを念頭に置いてください(詳しい仕組みは割愛しますが、比較的遠慮気味にAPIを叩いています)
4. Background Worker の起動
後は、配信や動画のアップロードを始める前にBackground Workerを起動してください。 サーバーサイドで、配信や動画投稿の状態をチェックするもので、ブラウザを閉じても動作します。 ただし、Background Workerは起動から1週間、配信も動画投稿も行われなかった場合自動停止しますから、 継続的に稼働させるには定期的に再起動を行ってください。
5. 自動シェアの停止
自動シェアして欲しくない時は Background Worker を停止するか、 設定でシェアを「無効」に変更してください。CASTRAはイベントの取りこぼしをしない様に30分前まで遡ってチェックするのでWorkerを再起動する際は注意してください。
6. 手動でシェアもできます
ダッシュボードの「管理」から手動でシェアすることもできます。接続中の全てのSNSにシェアします。
公開でない配信・動画はシェアできません。
あくまでも自動シェアを手動で強制実行する機能なので文章の確認・修正することはできません(それをしたい場合は、SNSサイトの方で個別にシェアしてください・・・)
タッチデバイスの方は左にスライドすると「管理」ボタンが出てきます。
なんでこんなWEBサービスを開発したの?
ここからは単なる雑記ですが、
理由は、YouTubeのSNS連携機能がいつの間にか無くなったのと、自分が配信をする際に使いたかったからです。YouTubeからSNS連携が廃止された理由は「自動でシェアされるより、手動の方がユーザーとそのフォロワーの利便性が向上するから」だそうで、確かに、最終的には手間暇かけたクリエイティブの方が良い結果を生むのでしょうし、それには完全に同意なのですが、結局のところ我々のような日曜趣味配信者は、どちらかといえば手間を減らして配信へのエンゲージメントを高める方がよい気がします。配信は色々と手順があって放送開始するのにも準備作業が多いので、なるべく手間を減らせないかと日々考えておりました。
IFTTTのようなプラットフォームを使えば出来そうですが、動画投稿のみで配信には対応してない感じでした。あとはRestreamとかは同じ機能があります。ただし、Restream経由で配信する必要があります。
まあ、既存の物も色々あるのは承知の上で、自分好みの感じでもなかったので作ることにしました。
やっと、Works に乗っけるものが一個出来たね!
昔、同じ名前のサービス作ってなかった?
作ってました。「全配信プラットフォームの全配信を取って来て検索エンジンにしちゃうぞ!」と息巻いて作っては見たものの、出来上がったのは複雑怪奇なシステムで、メンテが死ぬ程面倒臭かったので、最終的にほっぽって黒歴史にしちゃいました。
名前は気に入ってるので、今回名前再利用で復活という形にしました。
技術的トピックは?
すごい技術が使われてるわけではないですが、何を使っているかのリストです。
- 言語: TypeScript
- フレームワーク: Next.js
- バックグラウンドワーカー: Node.js
- クラウドアプリケーションプラットフォーム: Heroku
- ストレージ: Redis
- CSSフレームワーク: Bulma
等です。
感想
ほとんど自分用の小規模なサービスで、スケールもあまり考えてないですが、妥協はしたくなかったので、ちゃんと API 使用の認証を受けています。Sign in する時に変な警告は出ないはずです。正直、一番時間が掛かった部分です。
今のところ、サーバースペックとAPI割り当てが弱いです。利用者が増えそうだったらスケールを検討します!バグはたぶんあると思いますので自己責任でご利用ください。
「配信や動画を取って来てSNSに投稿するだけ」の単純なサービスでもかなりたくさんの技術的課題があったので、習作としては有意義なものになったなと思いました。技術的トピックに上げたもの(特にReactを使ったWEB開発)について、かなり深い理解が出来ました。いずれ本ブログのネタにしていきたいと思います。