Skip to content

ニコ生にてBGMとしてニコニコ動画を流す際、開いた動画のIDを自動でニコ生のコンテンツツリーに転送(登録)するChrome拡張機能/Firefoxアドオン

License

istallia/niconicolive-tree-transfer

main
Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
Code

Latest commit

 

Git stats

Files

Permalink
Failed to load latest commit information.
Type
Name
Latest commit message
Commit time
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

niconicolive-tree-transfer

ニコ生にてBGMとしてニコ動を裏で流す際、指定タブ(ニコ動)で開いた動画を自動でコンテンツツリーに登録するChrome拡張機能/Firefoxアドオン

ほしいUI

  • ニコ生の放送ページでアイコンをクリック、ポップアップでタブを指定
    • タブはドロップダウンから選択(「すべて」という選択肢もあっていい?)
  • 「自動転送」で動作開始
    • 当該ニコ生のツリー登録ページを即座に開く
    • 転送が行われると1件追加して送信、完了すると元の登録ページに戻る
  • 転送対象のタブ(ニコ動 or ツリー登録ページ)を閉じると動作終了
  • 「転送停止」ボタンでも動作終了させたい

実現のためのメモ

  • ニコ動のタブのみを取得するにはbrowser.tabs.queryを使う
    • オプションは{url:'*://www.nicovideo.jp/watch/*'}
    • 表示するタイトルはtab.titleから取得できる。末尾の「 - ニコニコ動画」を除いて表示する(タイトルが長い場合は考える)
    • 指定タブのID(数値/null)およびアクティブなタブのID(lv~)はbackgroundのsessionStorageに保存する
      • ニコ生のURLはhttps://live2.nicovideo.jp/watch/*なので、取得方法は動画とほぼ同じ
      • 登録済の動画はツリー登録ページ側で弾くので、転送段階ではフィルタしない
    • ツリー登録ページのタブのID(数値)はbrowser.tabs.createのコールバックで取得しておき、backgroundのsessionStorageに保存
    • 自動転送が有効かもtrueかnullでsessionStorageに保存
  • タブの更新を見るにはbackgroundでbrowser.tabs.onUpdatedを見る
    • changeInfo.statusがcomplete && tabIdが指定タブ(nullは一致扱い) && tab.urlがニコ動 の条件でそのタブの動画IDを転送する
    • backgroundからツリー登録ページのcontent-scriptにIDを送るにはbrowser.tabs.sendMessageを使う
  • ツリー登録ページのcontent-scriptはイベントを待ち、メッセージが来たらそのIDの作品を親作品欄に投げ込む
    • 投げ込み方法は「コンテンツツリー登録支援ツール」のテストスクリプトを参照
    • 投げ込んだら登録ボタンを押して送信する(戻るのはbackgroundの仕事。browser.tabs.updateでできる)
  • タブが閉じられたことを検知するにはbrowser.tabs.onRemovedを使う
    • タブのIDのどちらかに一致すれば自動転送を終了する

About

ニコ生にてBGMとしてニコニコ動画を流す際、開いた動画のIDを自動でニコ生のコンテンツツリーに転送(登録)するChrome拡張機能/Firefoxアドオン

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published