Humanity

Edit the world by your favorite way

YouTube 動画ページからサムネイル画像を表示する Chrome 拡張・ブックマークレット

YouTube の動画を見ていてふとコメント欄に「サムネwwwww」の様なコメントを見つけてサムネを見返したいと思った事はありませんか?

僕は思ったのですぐさまブックマークレットを作り、暇だったのでやっつけで Chrome 拡張も作り、アイコン等の素材探しやスクリーンショットに使う動画を漁っていたらいつの間にか日が変わっていたので公開します。

最近はすぐ Chrome 拡張が作られる風潮ですが、僕はあまり無駄な拡張は入れたくないので最初古の技術(ブックマークレット)で作り、 Chrome 拡張作ってみたら案外便利だったので掌をツルリと返し今は Chrome 拡張の方を使っています。*1

Chrome 拡張版

現在見ている動画のサムネをポップアップで表示します。 どんな感じか見たいと思うので、リンク先にスクリーンショットも置いておきました。

chrome.google.com

github.com

ブックマークレット:ポップアップ版(※少なくとも Chrome ではブロックされてしまうので許可が必要です)

javascript:(_=>{location.search.replace(/v=([^&?=]+)/,(_,id)=>window.open('https://i.ytimg.com/vi/'+id+'/maxresdefault.jpg','popup','width=1280,height=720'))})()

ブックマークレット:画像をタブで開く版

javascript:(_=>{location.search.replace(/v=([^&?=]+)/,(_,id)=>window.open('https://i.ytimg.com/vi/'+id+'/maxresdefault.jpg'))})()

補足:YouTube のサムネイル画像の URL

ちなみに上記ブックマークレットmaxresdefault.jpg の部分を変える事でサイズの変更が可能です。

  • default.jpg (120 x 90)
  • mqdefault.jpg (320 x 180)
  • hqdefault.jpg (480 x 360)
  • sddefault.jpg (640 x 480)
  • maxresdefault.jpg (1280 x 720)

Chrome 拡張の方でもこの画像を直接表示しています。

*1:そしてまたその内使っていない事に気付いてアンインストールする気がします

Vim で無名バッファを復元する方法

TL;DR

  1. スワップファイルを残したディレクトリに :cd して、
  2. :new 等で)無名バッファを開き、
  3. :recover を実行する。

説明

デフォルトだと Vim はそのファイルを開いた時点に復元するかどうかのダイアログを表示すると思います。 というか自分はスワップファイルから復元したい場合は常にその方法で復元していました。

recover - Vim日本語ドキュメント

:rec[over] [file]       スワップファイルから[file]を回復するよう試みる。もし
                        [file]が与えられていない場合は、現在のバッファの名前が
                        用いられる。現在のバッファの内容は失われる。このコマン
                        ドはバッファが修正を加えられている場合に失敗する。

:rec[over]! [file]      ":recover" と同じだが、現在のバッファに対するどんな変
                        更も失われる。

ご覧の通り :recover はファイル名を指定する事でそのファイルをスワップから復元できます。 しかし無名バッファの場合は [file] が渡せないので、無名バッファを開いた状態で :recover と引数無しで呼ぶ事で無名バッファの復元を行えます。

(どうでもいい)経緯

自分は今まで無名バッファの場合もスワップファイルが作られるのを知りながらなぜかいつも諦めたりしていました(まぁ無名バッファに書く内容なんて大した事ないメモ書きが多い事もありますが)。 ただ今回失われるのも惜しいって事で初めて調べた結果、冒頭の方法が分かりました(初めて)。 習慣とか思考停止怖い。

おまけ: :retab! でインデントをタブやスペースに変換したりできる

これまで自分は :retab はタブからスペースへの変換にしか使えないと思い込んでいましたが、 :retab!! を付ければ、'expandtab' オプションがオンであればスペース、オフであればタブに変換されます。

普通に知ってるよって人も多いでしょうが、思い込みって怖いですね(わざわざタブへの変換用に :Unretab とかいうコマンドを自作していた思い出)。

Google Apps Script で Gmail の添付ファイルを自動で Google Drive に保存

そういえばこんなもの作ってたので、備忘録がてらブログにも書きます(2ヵ月近く経ってますが…)。

使用方法

使う時は

  1. 専用の Google Drive フォルダを作成
  2. 専用の Gmail のラベル(保存済み用マーカー)を作成
  3. Google Apps Script の Home から以下のコードをコピペ
  4. SAVE_FOLDER_ID (保存したい Google Drive のフォルダの ID)を 1 で作ったフォルダの ID に変更
  5. READ_LABEL_NAMEGmail ラベル)を 2 で作ったラベル名に変更
  6. あとはお好みで定期的に自動実行させたい場合はトリガーを作成
    • (あんまりいないと思いますが)手動実行で運用したい人は不必要

保存したい Google Drive のフォルダを指定

var SAVE_FOLDER_ID = 'フォルダのID';

の部分を保存したい Google Drive のフォルダの ID に変えて下さい。 フォルダの ID はコメントにも書いてある通り Google Drive でフォルダに移動した時のURLで分かります。

例: https://drive.google.com/drive/u/1/folders/{フォルダのID}

既読マーカー用 Gmail のラベルを指定

添付ファイルを保存したかどうかチェックするために付けるラベルです。

var READ_LABEL_NAME = '添付ファイル保存済み';

の部分を作った Gmail のラベルに変えて下さい。

特定のメールの添付ファイルのみ保存

var SEARCH_CONDITION = 'has:attachment -label:' + READ_LABEL_NAME;

の部分を好きなように変えて下さい。 例えば以下の様に件名で絞り込んだりできます。

var SEARCH_CONDITION = 'subject:"重要書類" has:attachment -label:' + READ_LABEL_NAME;

自動実行させるためにトリガーを作成

とりあえず現在だとエディター画面の上部メニューから「編集→現在のプロジェクトのトリガー」でトリガーの画面を開いた後、右下の「トリガーを追加」ボタンから作成できます。 自分はこんな感じで作りました。

f:id:tyru:20190321123620p:plain
給与明細保存スクリプト - トリガー設定

コード