逆引きFormula 2.0 に戻る
これまで YouTube のサムネール画像の URL はこんな感じで取得していました。https の部分は決めうちで、macOS で Save to Notion した時に作られる URL で作っています。たまに、iPhone や iPad から共有するとモバイル版の URL になってしまい、これがうまく動かなく URL を修正する手間がありました。
concat("<https://img.youtube.com/vi/>", replace(prop("URL"), "<https://www.youtube.com/watch\\\\?v=>", ""), "/sddefault.jpg")
なぜ、こんなことをしていたかというと、replace や replaceAll でマッチした部分の文字列を取得できないと思っていたためでした。ところが、いつもお世話になっている熊倉さんから、$1 や $2 が使えるとツイートで教えてもらいました。それを受けて書いたツイートが右のものです。ということで一番最初に思いついたのが、上の Formula でした。
https://twitter.com/yoshihiko_k/status/1537501156611567619
https://twitter.com/hkob/status/1537524725328801792
$2 を使った例です。正規表現を頑張ったので、今回は短縮リンクやモバイルリンク、余計なオプションの削除にも対応しています。作成後にメディア&ファイルにコピーします。
prop("YouTube URL").replace("[^]+/(watch.v=|)([^#&]*)(.*|)", "<https://img.youtube.com/vi/$2/mqdefault.jpg>")
→ replace