Ustream mp4

    
      
  • /*
     * @title Ustream mp4
     * @description flash-free Ustream
     * @include http://www.ustream.tv/*
     * @license MIT License http://opensource.org/licenses/MIT
     * @javascript_url
     */
    
    
    // e.g.
    // http://www.ustream.tv/channel/ubuntu-offline-meeting-1506
    // http://iphone-streaming.ustream.tv/ustreamVideo/20760528/streams/live/playlist.m3u8
    (function () {
        // ustream:channel_id
        // <meta name="ustream:channel_id" content="20760528">
        //*
        var id = (document.querySelector('meta[name="ustream:channel_id"][content]') || {}).content;
    
        /*/
        // data-content-id
        var id;
        Array.prototype.some.call(document.querySelectorAll('[data-content-id]'), function (node) {
            if (id = node.dataset.contentId) {
                return true;
            }
        });
        //*/
    
        if (!id) return;
    
        // HTML5 HLS endpoint (http only)
        // http://iphone-streaming.ustream.tv/uhls/CHANNEL_ID/streams/live/iphone/playlist.m3u8
        // http://iphone-streaming.ustream.tv/ustreamVideo/CHANNEL_ID/streams/live/playlist.m3u8
        var HLS_URL = [
            'http://iphone-streaming.ustream.tv/uhls/',
            id,
            '/streams/live/playlist.m3u8'
        ].join('');
    
        // TODO open in same tab/window, but couldn't X-domain GET
        //      not provide CORS; 'Access-Control-Allow-Origin'
        // cleanup c.f. http://jsperf.com/innerhtml-vs-removechild/157
        /*/
        var body = document.body;
        while (body.firstChild) { // TBD range
            body.removeChild(body.firstChild);
        }
    
        var video = document.createElement('video');
        video.src = HLS_URL;
        document.body.appendChild(video);
    
        /*/
        // TBD window.open()
        // open w/ mplayer, vlc et al.
        window.prompt('streaming URL', HLS_URL);
        //*/
    })();
    
  • Permalink
    このページへの個別リンクです。
    RAW
    書かれたコードへの直接のリンクです。
    Packed
    文字列が圧縮された書かれたコードへのリンクです。
    Userscript
    Greasemonkey 等で利用する場合の .user.js へのリンクです。
    Loader
    @require やソースコードが長い場合に多段ロードする Loader コミのコードへのリンクです。
    Metadata
    コード中にコメントで @xxx と書かれたメタデータの JSON です。

History

  1. 2015/06/21 07:17:01 - 2015-06-21
  2. 2015/06/21 05:17:18 - 2015-06-21
  3. 2015/06/20 16:19:24 - 2015-06-20