bluesky-text-to-audio

Blueskyのタイムラインの投稿にplayボタンを表示するChrome拡張です。

機能

ユーザー向けインストール方法

  1. このリポジトリをクローンまたはダウンロードする
    git clone https://github.com/cat2151/bluesky-text-to-audio.git
    
  2. Chromeで chrome://extensions/ を開く
  3. 「デベロッパーモード」を有効にする
  4. 「パッケージ化されていない拡張機能を読み込む」をクリックし、dist フォルダを選択する

Note: ビルド済みの dist/ フォルダはリポジトリに含まれているため、Bunやビルドツールのインストールは不要です。

使い方

  1. Bluesky を開く
  2. タイムラインの各投稿に表示される「▶ textareaを開く」ボタンをクリックしてtextareaを開く
  3. textareaにMML文字列を入力する
  4. 「🎵 mmlabcでplay」ボタンをクリックすると、MMLを解析して五線譜を表示し演奏する
  5. 「▶ Play」ボタンをクリックすると、textareaの内容をABC記譜法として直接演奏する

投稿ごとの自動モード検出

各投稿の先頭行または末尾行に特定のキーワードが含まれている場合、ボタンの初期モードを自動的に決定します。

キーワード(先着優先) 自動選択されるモード
Chord または コード 🎸 chord2mmlでplay
YM2151 または OPM 🎶 YM2151でplay
Tonejs または Tone.js 🎹 Tone.jsでplay
MML 🎵 mmlabcでplay
abc ▶ abcjsでplay
(上記以外) 🔊 投稿を読み上げる(ずんだもん)

検出に使用された行(先頭行または末尾行)は、textareaに内容をセットするときに自動的に除去されます。

優先順位の詳細: まず先頭行を上の表の順でスキャンし、マッチしなければ末尾行を同じ順でスキャンします。

開発者向け

技術スタック

セットアップ手順

1. Bunのインストール

curl -fsSL https://bun.sh/install | bash

2. リポジトリのクローン

git clone https://github.com/cat2151/bluesky-text-to-audio.git
cd bluesky-text-to-audio

3. 依存パッケージのインストール

bun install

4. ビルド

bun run build

ビルド成果物は dist/ ディレクトリに出力されます。

5. Chromeへの読み込み

  1. Chromeで chrome://extensions/ を開く
  2. 「デベロッパーモード」を有効にする
  3. 「パッケージ化されていない拡張機能を読み込む」をクリックし、dist フォルダを選択する

開発コマンド

コマンド 説明
bun run dev 開発モード(ウォッチ + HMR)
bun run build プロダクションビルド
bun run type-check TypeScript型チェック

ディレクトリ構成

bluesky-text-to-audio/
├── src/
│   └── content.ts      # コンテンツスクリプト(TypeScript)
├── manifest.json        # Chrome拡張マニフェスト(Manifest V3)
├── vite.config.ts       # Vite設定
├── tsconfig.json        # TypeScript設定
├── package.json         # パッケージ設定・スクリプト
└── dist/                # ビルド成果物(CIが自動コミット)

用途、なぜこの機能があるの?

PoC

目指すこと

後回し

目指さないこと(スコープ外)