nicoLivew

    @@ -9,7 +9,8 @@ javascript:!function() { var L = document.location.href, m = document.createElement('div'), - d = 'v20140112', + ua = window.navigator.userAgent.toLowerCase(), + d = 'v20141231', ver = '<small><a href="http://nico.ms/ar303976" target="_blank" title="support" style="position:relative; top:5px; background-color:rgba(255,255,255,0.4);">' + d + '</a></small>'; switch (true) { //いつもの放送ページの処理 @@ -41,9 +42,13 @@ break; //新しい放送ページ(?)の処理 } case /live2\.nicovideo\.jp\/watch/.test(L): { - var h = L.replace(/.+?watch\/(lv\d+).*/, '$1'), - s = document.getElementsByTagName('script')[17].outerHTML, - p = s.replace(/[\s\u2028\u2029]/g,''), + var h = L.replace(/.+?watch\/(lv\d+).*/, '$1'); + if (ua.indexOf('firefox') != -1) { + s = document.getElementsByTagName('script')[17].outerHTML; + } else { + s = document.getElementsByTagName('script')[16].outerHTML; + } + var p = s.replace(/[\s\u2028\u2029]/g,''), //URL のパラメータ we = 'webSocketUrl=ws://a.live2.nicovideo.jp/wsapi/v1/watch/', au = p.replace(/.*?"(audienceToken)".+?"(\w+)".*/,'&$1=$2'), @@ -90,4 +95,4 @@ m.style.background = 'rgba(0,128,255,0.5)'; m.setAttribute("id", "nicoLivew"); document.body.appendChild(m); -}(); +}();
  • /* @title nicoLivew
     * @description ニコニコ生放送のプレイヤーだけ抜き出したりとかするやつ
     * @description http://ch.nicovideo.jp/star/blomaga/ar303976
     * @description ギッタァブでも管理してます https://github.com/uzuky/nicoLivew
     * @license MIT License
     */
     
    
    javascript:!function() {
      var L = document.location.href,
        m = document.createElement('div'),
        ua = window.navigator.userAgent.toLowerCase(),
        d = 'v20141231',
        ver = '<small><a href="http://nico.ms/ar303976" target="_blank" title="support" style="position:relative; top:5px; background-color:rgba(255,255,255,0.4);">' + d + '</a></small>';
      switch (true) {
    //いつもの放送ページの処理
      case /live\.nicovideo\.jp\/watch/.test(L): {
      //ここ仕様変更に弱そう
        var h0 = document.getElementsByTagName('meta')[13].outerHTML,
      //放送IDを取得
          h = h0.replace(/.+?watch\/(lv\d+).*/, '$1'),
          Aries = '',
          del = 'var f = &quot;flvplayer_container&quot;,flv = document.getElementById(f);flv.parentNode.removeChild(flv);';
    //放送主かどうか
        var u0 = document.getElementById('siteHeaderNotification').outerHTML,
      //ログインしてるユーザーIDを取得
          u = u0.replace(/.+?nico-userid="(\d+)"[\s\S]+/, '$1'),
          n0 = document.getElementsByClassName('nicopedia_nushi');
      //放送主のユーザーIDを取得(表示がない放送は0)
          if (n0.length != '0') {
            var n1 = n0[0].innerHTML,
            n = n1.replace(/[\s\S]+nicovideo.jp\/user\/(\d+)"[\s\S]+/, '$1');
          } else {
            n = 0;
          }
      //ログインしてるユーザーIDと放送主のユーザーIDを比較
          if (u != n) {
            nushi = 'N';
          } else {
            nushi = 'Y';
          }
        break;
    //新しい放送ページ(?)の処理
      } case /live2\.nicovideo\.jp\/watch/.test(L): {
        var h = L.replace(/.+?watch\/(lv\d+).*/, '$1');
        if (ua.indexOf('firefox') != -1) {
          s = document.getElementsByTagName('script')[17].outerHTML;
        } else {
          s = document.getElementsByTagName('script')[16].outerHTML;
        }
        var p = s.replace(/[\s\u2028\u2029]/g,''),
        //URL のパラメータ
          we = 'webSocketUrl=ws://a.live2.nicovideo.jp/wsapi/v1/watch/',
          au = p.replace(/.*?"(audienceToken)".+?"(\w+)".*/,'&$1=$2'),
          re = p.replace(/.*?"(relatedNicoliveProgramId)".+?"(\w+)".*/,'&$1=$2'),
          br = p.replace(/.*?"(broadcastId)".+?"(\d+)".*/,'&$1=$2'),
          be = p.replace(/.*?"(beginTime)".+?"(\d+)".*/,'&$1=$2');
          Aries = '<input type="button" value="Aries" onClick="window.open(\'http://nl.nimg.jp/public/relive/1.4.36/assets/web/r1/swfs/v1/AriesPlayer.swf?' + we + au + re + br + be + '\',\'_blank\',\'width=960,height=512\');var f = &quot;playerswf&quot;,flv = document.getElementById(f);flv.parentNode.removeChild(flv);"><br>',
          del = 'var f = &quot;playerswf&quot;,flv = document.getElementById(f);flv.parentNode.removeChild(flv);',
          nushi = 'N';
        break;
    //それ以外のページの処理
      } default: {
        var h = prompt('放送IDかURL', '');
        if (h.match(/lv[0-9]+/)) {
          h = h.replace(/.+?(lv\d+).*/, '$1'),
          Aries = '',
          del = '',
          nushi = 'Y';
        } else {
          alert('放送IDが入ってないよ!\n「' + h + '」\n連絡先とか http://nico.ms/ar303976');
          return false;
        }
        break;
      }}
    //放送主だったら追加
      if (nushi == 'Y') {
        nama1 = '<b>放送主用</b><br><input type="button" value="配信ツール" onClick="window.open(\'http://live.nicovideo.jp/nicolivebroadcaster.swf?dicfilename=NicoliveBroadcasterDictionaryJAJP.swf&v=' + h + '\',\'_blank\',\'width=900,height=250\')"><input type="button" value="放送情報変更" onClick="window.open(\'http://live.nicovideo.jp/editstream/' + h + '\',\'_blank\',\'width=960,height=600,scrollbars=1\')"><br><input type="button" value="配信ツール(原宿)" onClick="window.open(\'http://live.nicovideo.jp/utility_v1.swf?v=' + h + '\',\'_blank\',\'width=950,height=200\')"> ',
        nama2 = '<small><b><br>※配信ツールはセッションが使えません<br>※かんたん配信タブは1番最初に操作したウィンドウの<br>配信ツールでなるべくいじってください<br>※放送情報変更の反映は少し時間がかかります</b></small><br>';
      } else {
        nama1 = '',
        nama2 = '';
      }
    //ページに追加
        m.innerHTML = '<div><b><span title="閉じる" onClick="var c = &quot;nicoLivew&quot;,close = document.getElementById(c);close.parentNode.removeChild(close);" style="float:right; cursor:pointer; font-size:large; position:relative; bottom:10px; left:5px;">×</span><span title="!?" onClick="' + del + '" style="cursor:default;">プレイヤー変更</span></b></div>' + Aries + '<span style="white-space:nowrap;"><input type="button" value="GINZA" onClick="window.open(\'http://live.nicovideo.jp/nicoliveplayer.swf?v=' + h + '&languagecode=ja-jp\',\'_blank\',\'width=960,height=490\');' + del + '"><input type="button" value="ニコファーレ" onClick="window.open(\'http://live.nicovideo.jp/liveplayer_farre.swf?v=' + h + '\',\'_blank\',\'width=960,height=520\');' + del + '"></span><br><input type="button" value="原宿" onClick="window.open(\'http://live.nicovideo.jp/liveplayer.swf?v=' + h + '\',\'_blank\',\'width=950,height=520\');' + del + '"><input type="button" value="ページ更新" onClick="window.location.reload(true)"><br>' + nama1 + nama2 + ver;
        m.style.color = 'rgb(250,250,250)';
        m.style.textAlign = 'center';
        m.style.padding = '10px';
        m.style.position = 'fixed';
        m.style.zIndex = '9999';
        m.style.fontSize = '12px';
        m.style.border = '2px solid black';
        m.style.right = '20px';
        m.style.bottom = '20px';
        m.style.background = 'rgba(0,128,255,0.5)';
        m.setAttribute("id", "nicoLivew");
        document.body.appendChild(m);
    }();
    
  • Permalink
    このページへの個別リンクです。
    RAW
    書かれたコードへの直接のリンクです。
    Packed
    文字列が圧縮された書かれたコードへのリンクです。
    Userscript
    Greasemonkey 等で利用する場合の .user.js へのリンクです。
    Loader
    @require やソースコードが長い場合に多段ロードする Loader コミのコードへのリンクです。
    Metadata
    コード中にコメントで @xxx と書かれたメタデータの JSON です。

History

  1. 2018/02/19 21:59:39 - 2018-02-19
  2. 2018/02/19 21:08:46 - 2018-02-19
  3. 2016/09/01 19:38:21 - 2016-09-01
  4. 2016/02/19 02:35:21 - 2016-02-19
  5. 2016/02/19 02:28:03 - 2016-02-19
  6. 2016/01/31 19:39:17 - 2016-01-31
  7. 2016/01/31 18:36:20 - 2016-01-31
  8. 2016/01/31 18:28:30 - 2016-01-31
  9. 2015/09/12 01:54:26 - 2015-09-12
  10. 2015/09/12 01:53:32 - 2015-09-12
  11. 2015/09/12 01:35:59 - 2015-09-12
  12. 2015/09/12 01:32:46 - 2015-09-12
  13. 2014/12/31 19:21:09 - 2014-12-31
  14. 2014/12/31 18:29:53 - 2014-12-31
  15. 2014/02/25 04:12:50 - 2014-02-25
  16. 2014/01/12 16:41:03 - 2014-01-12
  17. 2014/01/12 16:36:03 - 2014-01-12
  18. 2014/01/01 17:22:45 - 2014-01-01
  19. 2014/01/01 02:23:22 - 2014-01-01
  20. 2014/01/01 00:52:27 - 2014-01-01
  21. 2013/12/31 22:28:27 - 2013-12-31
  22. 2013/12/31 21:49:11 - 2013-12-31
  23. 2013/12/31 16:51:42 - 2013-12-31
  24. 2013/12/31 16:51:27 - 2013-12-31
  25. 2013/12/31 16:44:14 - 2013-12-31
  26. 2013/12/31 16:43:37 - 2013-12-31
  27. 2013/09/13 21:16:17 - 2013-09-13
  28. 2013/09/13 16:26:23 - 2013-09-13
  29. 2013/09/13 16:25:02 - 2013-09-13
  30. 2013/09/09 19:59:11 - 2013-09-09
  31. 2013/09/09 19:56:30 - 2013-09-09
  32. 2013/09/09 00:07:20 - 2013-09-09
  33. 2013/09/01 18:01:54 - 2013-09-01
  34. 2013/08/23 11:17:25 - 2013-08-23
  35. 2013/08/23 11:13:57 - 2013-08-23
  36. 2013/08/23 11:09:26 - 2013-08-23
  37. 2013/08/23 10:59:05 - 2013-08-23
  38. 2013/08/23 10:35:09 - 2013-08-23
  39. 2013/08/23 10:07:35 - 2013-08-23