2年前に作ったYoutubeでタイトルを通知する拡張機能をストア公開しました

chrome.google.com

2年前に作ったもの

f:id:ehu_J:20190327192045g:plain
再生している動画をタイトル付きで通知

参考程度にGooglePlayは設定で通知をONにすることができて、こんな感じ動作していた。

f:id:ehu_J:20190403181115p:plain
GooglePlayの通知 設定からONに出来る

メンテする理由

  • Chromeのバージョンアップにより、通知音がピコォーン♪ってなるようになったため(Chrome 70?)

正直うざかったので、切ってました。(放置) どうせメンテするなら、直したい->リファレンスを読む限りsilent:trueでできそう。

  • 公開しないの?って言われたため

就活中に、公開しないのって言われた。それだけ

できた

Githubリポジトリ

github.com

この拡張機能の仕組みについて

ページリロードを検出し、読み込みが完了したら通知を出すようにしています。サムネイルはurlからmovieIDをsubstringしてvar thumbnailUrl = "http://i.ytimg.com/vi/" + movieID + "/default.jpg";で取得しています。

chrome.tabs - Google Chrome

      chrome.notifications.create(
        getNotificationId(),
        {
          type : 'basic',
          iconUrl : thumbnailUrl,
          title : pageTitle,
          message : 'YouTitleの通知',
          silent : true,
        },
        function(){})

youTitle_extension/myscript.js at a1a672ccd209ff2db55629beb348eeea74e5ba22 · ehu-151/youTitle_extension · GitHub

タブの更新は

chrome.tabs - Google Chrome

でこんな感じに...

chrome.tabs.onUpdated.addListener(function (tabId, changeInfo, tab) {
  //ページのURLを取得
  var strUrl = String(tab.url);
  //通知の生成
  //statusがcompleteになった時に通知
  if (changeInfo.status == "complete" && isYoutubeTrack(strUrl)) {
    var thumbnailUrl = getThumbnailUrl(strUrl);
    var pageTitle= tab.title;
    //ページタイトルの余分な部分(末尾の" - Youtube")を削除する
    pageTitle=pageTitle.substr( 0, pageTitle.length-10);
    //通知開始
    creatNotification(thumbnailUrl,pageTitle);
  }
});

ちょっと疑問に感じたこと:onUpdated.addListenerは何故か5回通知される()

teratail.com

公開しました

5$払って公開

chrome.google.com