nico<video>[ ]

  • /*
     * @title nico<video>[ ]
     * @description play raw video w/ fit to window
     * @include http://sp.nicovideo.jp/watch/*
     * @license MIT License http://opensource.org/licenses/MIT
     * @javascript_url
     */
    
    // require
    // http://let.hatelabo.jp/noromanba/let/hJmegZnrvMd1
    (function () {
        if (!/^sp\.nicovideo\.jp\/watch\//.test(location.hostname + location.pathname)) return;
    
        // TODO direct get video url
        // e.g. http://sp.nicovideo.jp/watch/sm18670670
        //      http://smile-cln38.nicovideo.jp/smile?m=18670670.46768low
        window.jQuery('#jsWatchThisPage').click(); // XXX indepandent jQuery
        var video = document.querySelector('#video[src]');
        if (!video || !video.src) return;
    
        var body = document.body;
        // c.f. http://jsperf.com/innerhtml-vs-removechild/157
        while (body.firstChild) { // TBD range
            body.removeChild(body.firstChild);
        }
    
        // c.f. http://let.hatelabo.jp/noromanba/let/gYC-x6_17M6-Kw
        Array.prototype.slice.call(document.styleSheets).forEach(function (css) {
                css.disabled = true;
        });
        body.style.backgroundColor = 'rgb(0, 0, 0)';
    
        video.style = '';
        setInterval(function () { // XXX stop size injector
            video.style.width = '';
            video.style.height = '';
        }, 500);
        video.style.minWidth  = '100%';
        video.style.minHeight = '100%';
        video.style.maxWidth  = '100%';
        video.style.maxHeight = '100%';
        video.controls = true;
        video.autoplay = true;
    
        body.appendChild(video); // restore
    })();
    
    // DBG
    // <video controls="" autoplay="" name="media">
    //   <source src="http://smile-cln38.nicovideo.jp/smile?m=18670670.46768low" type="video/mp4">
    // </video>
    
  • Permalink
    このページへの個別リンクです。
    RAW
    書かれたコードへの直接のリンクです。
    Packed
    文字列が圧縮された書かれたコードへのリンクです。
    Userscript
    Greasemonkey 等で利用する場合の .user.js へのリンクです。
    Loader
    @require やソースコードが長い場合に多段ロードする Loader コミのコードへのリンクです。
    Metadata
    コード中にコメントで @xxx と書かれたメタデータの JSON です。

History

  1. 2014/08/25 12:01:14 - 2014-08-25
  2. 2014/08/25 11:44:25 - 2014-08-25
  3. 2014/08/25 10:47:01 - 2014-08-25
  4. 2014/08/25 10:39:10 - 2014-08-25