blog.mahoroi.com

誰かのツイートから選曲する音楽ストリーミングwebサイト「Tmtmbox」

-

どこかの誰かが投稿したツイートをもとに音楽を選曲して再生する web サイト「Tmtmbox」を公開したので、ここで宣伝します。

Tmtmbox

Tmtmbox | play music from someone's recommend.

Tmtmbox

機能

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 を使えるようにしたいと考えています。

また現状では楽曲スキップ機能は実装されてませんが、そういった基本的な機能も整備していきたいなと思います。