誰かのツイートから選曲する音楽ストリーミングwebサイト「Tmtmbox」
-
どこかの誰かが投稿したツイートをもとに音楽を選曲して再生する web サイト「Tmtmbox」を公開したので、ここで宣伝します。
Tmtmbox
Tmtmbox | play music from someone's recommend.
機能
Tmtmbox は、Spotify に登録されている楽曲リンクが含まれるツイートから曲を選択してブラウザ上で再生する web サイトです。「どこかの誰か」がツイートでオススメする曲には、これまで縁がなかった楽曲に出会える可能性が秘められています。Tmtmbox はそのような偶然の出会いを提供するかもしれません。
楽曲の再生はブラウザ上で行われ、再生中の曲が終了すると自動で次の選曲が行われます。
注意点として Spotify Premium プランに加入している Spotify アカウントで認証を行った場合のみ、楽曲再生が可能になります。対応ブラウザは Windows / Mac / Linux の Chrome / Firefox / Microsoft Edge のみです。iOS / Android / Safari ブラウザには対応していません。
技術的なこと
楽曲再生には Spotify Web Playback SDK を使っています。現在は beta 版ではありますが、楽曲の再生や停止、トラック情報取得、音量調整などプレイヤーとしての最低限の機能は用意されています。そのため Tmtmbox のような簡易音楽プレイヤーであれば比較的簡単に実装できました。
Spotify API を使うときに必要となるアクセストークンの有効期限は 1 時間です。Web Playback SDK
経由で音楽を再生した場合も同様の有効期限が設けられています。そのため Tmtmbox ではアクセストークンのリフレッシュを行うことで 1 時間以上の連続再生を実装しています。
また、Twitter からツイートを引っ張ってきたり、Spotify のリフレッシュトークンを管理したりする Tmtmbox API の実装には Rust の actix-web を使っています。Rust じゃないとダメな理由はないですが、Rust に触れていきたいという理由はあったので、入門者でも扱えそうな actix-web を選択しました。
今後の予定
Spotify に登録されている楽曲には 30 秒間のサンプル音声が存在するものがあり、この音声ファイルは Spotify アカウントのプランに関係なく再生できます。そのため Premium アカウントでない場合はこのサンプル音声を再生することで Tmtmbox を使えるようにしたいと考えています。
また現状では楽曲スキップ機能は実装されてませんが、そういった基本的な機能も整備していきたいなと思います。