0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Spotifyから #nowplaying のツイートを作る

Posted at

Spotifyのリンクからツイート用のテキストをぱっと作るのが面倒なので、ブックマークレットで実現しました。
Spotifyをブラウザで開ければ、スマホでもPCでも動くと思います。

方法

ブックマークレットを作る

  1. 適当なページをブックマークに登録
  2. ブックマークの名前を自分の分かりやすいもの(「なうぷれ」など)に置き換える
  3. ブックマークの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);
    })();
    

もし手順で詰まった場合は「ブックマークレート 登録」などで調べてみてください。

動かしてみる

  1. Spotifyで、楽曲の「シェア」→「リンクのコピー」でリンクをコピーする

  2. そのリンクをChromeやSafariなどブラウザで開く

  3. 登録したブックマークを開く
    スマホの場合は、アドレスバーからブックマークの名前を探すと開けます

  4. ツイート画面に遷移する

おわり。

解説

ツイートのテキストは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);

備考

解説の通り、正規表現パターンが変わるとこのブックマークレットは容易に動かなくなります。動かなくなった場合はブックマークレットを良い感じに調整してください。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?