View difference between Paste ID: YJr14qR9 and nRkkDQSi
SHOW: | | - or go back to the newest paste.
1
// ==UserScript==
2
// @name          YouTube HD Lite (HanFox fix)
3
// @namespace     http://userscripts.org/users/78916
4
// @description   Automatically plays the best quality YouTube video format and removes ads, plus several optional features
5
// @include       http://www.youtube.com/watch*
6
// @version       2012-01-26
7
// ==/UserScript==
8
9
// Optional Features
10
var use1080p = true,
11
    use720p = true,
12
    wideVideo = true,
13
    hideAnnotations = false,
14
    scrollToVideo = true,
15
    autoPlay = true,
16
    hideControls = true;
17
18
    
19
// for console debug messages
20
var debug = false;
21
22
23
// ensure proper Youtube URL
24
if ( location.href.search( "watch#!" ) != -1 ) {
25
    var url = location.href.split( "watch#!" );
26
    url = url[0] + "watch?" + url[1];
27
    window.open( url, "_self" );
28
}
29
30
31
if ( scrollToVideo ) {
32
    document.getElementById( "watch-headline-title" ).scrollIntoView( true );
33
}
34
35
if ( wideVideo ) {
36
    // sidebar must be moved down
37
    var A = document.getElementById( "content" );
38
    if ( A.className.indexOf( "watch-wide" ) == -1 ) {
39
        A.className += " watch-wide";
40
    }
41
    // video
42
    A = document.getElementById( "watch-video" );
43
    if ( A.className.indexOf( "wide" ) == -1 ) {
44
        A.className += " wide";
45
    }
46
}
47
48
49
var player = document.getElementById( "movie_player" ),
50
    myPlayer = player.cloneNode( true ), 
51
    //config = unsafeWindow.yt.getConfig( "PLAYER_CONFIG" ),
52
    flashvars = myPlayer.getAttribute( "flashvars" );
53
54
if ( debug ) GM_log( "flashvars unmodified: " + flashvars );
55
56
57
function setFlashvar( field, newVal ) 
58
{
59
    var delimited = "&" + field;
60
    if ( flashvars.indexOf( delimited ) == -1 ) {
61
        // field not found, so append it
62
        flashvars += delimited + "=" + newVal;
63
    }
64
    else {
65
        // modify existing field
66
        var tmp = flashvars.split( delimited );
67
        var tmp2 = tmp[1].indexOf( "&" );
68
        if ( tmp2 != -1 ) {
69
            flashvars = tmp[0] + delimited + "=" + newVal + tmp[1].substr( tmp2 );
70
        }
71
        else {
72
            flashvars = tmp[0] + delimited + "=" + newVal;
73
        }
74
    }
75
}
76
    
77
78
/**********************************************
79
//     2010.12.22 list of video formats 
80
// fmt=5    240p          vq=small     flv
81
// fmt=18   240p or 360p  vq=medium    mp4
82
// fmt=34   240p or 360p  vq=medium    flv
83
// fmt=35   480p          vq=large     flv
84
// fmt=22   720p          vq=hd720     mp4
85
// fmt=37  1080p          vq=hd1080    mp4
86
***********************************************/
87
	
88-
var split = flashvars.split("&");
88+
89
var end = flashvars.indexOf("&", start);
90
var len = end - start;
91
var fmt_list = flashvars.substr(start, len);
92
93
if ( debug ) GM_log( " fmt_list: " + fmt_list ); 
94
95
// now must set the "vq" var so that the proper format is loaded
96
//if ( use1080p && ( fmt_list.search( /37(\/[^,]+){4}/ ) != -1 )) {
97
if ( use1080p && ( fmt_list.search("37%2F") != -1 )) {
98-
if ( use720p && ( fmt_list.search("37%2F") != -1 )) {
98+
99
}
100
//else if ( use720p && ( fmt_list.search( /22(\/[^,]+){4}/ ) != -1 )) {
101
else if ( use720p && ( fmt_list.search("22%2F") != -1 )) {
102
    setFlashvar( "vq", "hd720" );
103
}
104
//else if ( fmt_list.search( /35(\/[^,]+){4}/ ) != -1 ) {
105
else if ( fmt_list.search("35%2F") != -1 ) {
106-
else if ( use720p && ( fmt_list.search("35%2F") != -1 )) {
106+
107
}
108
else {
109
    setFlashvar( "vq", "medium" );
110
}
111
112
113
setFlashvar( "enablejsapi", "1" );
114
115
if ( autoPlay ) {
116
    setFlashvar( "autoplay", "1" );
117
}
118
else {
119
    setFlashvar( "autoplay", "0" );
120
}    
121
122
setFlashvar( "watermark", "" );
123
124
setFlashvar( "invideo", "false" );
125
126
if ( hideAnnotations ) {
127
    setFlashvar( "iv_load_policy", "3" );
128
}
129
130
if ( hideControls ) {
131
    setFlashvar( "autohide", "1" );
132
}
133
else {
134
    setFlashvar( "autohide", "0" );
135
}
136
137
if ( debug ) GM_log( "flashvars final: " + flashvars );
138
139
myPlayer.setAttribute( "flashvars", flashvars );
140
141
142
player.parentNode.replaceChild( myPlayer, player );