Spotifyのリンクからツイート用のテキストをぱっと作るのが面倒なので、ブックマークレットで実現しました。
Spotifyをブラウザで開ければ、スマホでもPCでも動くと思います。
方法
ブックマークレットを作る
- 適当なページをブックマークに登録
- ブックマークの名前を自分の分かりやすいもの(「なうぷれ」など)に置き換える
- ブックマークのURLを以下のコード(ブックマークレット)に置き換える
javascript:(function(){ const title = document.title; const pattern = /^(?<song>.+) ‑ (曲・歌詞:|by )(?<artist>.+) \| Spotify$/u; const groups = title.match(pattern).groups; const text = `#nowplaying ${groups.song} / ${groups.artist}`; const url = location.href.replace(/\?.*$/,""); const intent = `https://twitter.com/intent/tweet?text=${encodeURIComponent(text)}&url=${encodeURIComponent(url)}`; open(intent); })();
もし手順で詰まった場合は「ブックマークレート 登録」などで調べてみてください。
動かしてみる
おわり。
解説
ツイートのテキストはtitle要素から正規表現で引き抜いています。
const title = document.title;
const pattern = /^(?<song>.+) ‑ (曲・歌詞:|by )(?<artist>.+) \| Spotify$/u;
const groups = title.match(pattern).groups;
const text = `#nowplaying ${groups.song} / ${groups.artist}`;
正規表現パターンはPC版とスマホ版のページ(2024/11/03現在)を見つつ適当に作っているので、Spotifyの仕様変更で引き抜けなくなる場合があります。その場合はページタイトルを見て良い感じにブックマークレットを書き換えてください。
また、URLは開いているページのURLをそのまま使いつつ、クエリパラメータは除去しています。
const url = location.href.replace(/\?.*$/,"");
次に、TwitterのIntent機能を使ったシェアリンクを生成します。
const intent = `https://twitter.com/intent/tweet?text=${encodeURIComponent(text)}&url=${encodeURIComponent(url)}`;
最後にそのページを開けば終了です。
open(intent);
備考
解説の通り、正規表現パターンが変わるとこのブックマークレットは容易に動かなくなります。動かなくなった場合はブックマークレットを良い感じに調整してください。