Joshua Behrens - Javascriptsnippets

Videodownload

Wenn JDownloader mal streikt, da er keine URL-encodierten Dateipfade auswerten kann, kann man folgende Javascript-Einzeiler nehmen um doch an das Video zu kommen. Diese Skripte führen nicht immer zum Erfolg, aber in der Überschrift über jedem Snippet stehen Player bei denen es funktioniert. Die Skripte können einfach in die Javascriptkonsole des Browsers eingefügt werden. Viele benötigen JQuery, was aber heutzutage fast jede Website nutzt und somit oft schon geladen ist.

JW Player

$("object param[name=flashvars]").val().split("&").every( function( it ) { if ( it.indexOf( "file=" ) === 0 ) { window.location.href = decodeURIComponent( it.substring( 5 ) ); return false; } return true; } );
Einzeiler:
$("object param[name=flashvars]").val().split("&").every( function( it ) { if ( it.indexOf( "file=" ) === 0 ) { window.location.href = decodeURIComponent( it.substring( 5 ) ); return false; } return true; } );

Youtube

Wenn ihr mal mehrere Videos gleichzeitig hochladet mit einem identischen Muster helfen diese Funktionen:

function youtubeSettings( title_ = null, desc_ = null, tags_ = null ) { if ( title_ !== null ) { if ( title_ instanceof Array ) title_ = title_.join( "\n" ); else title_ = (String)title_; var ent = document.getElementsByClassName( "video-settings-title" ); for ( var c = 0 ; c < ent.length ; c++ ) ent[ c ].value = title_; } if ( desc_ !== null ) { if ( desc_ instanceof Array ) desc_ = desc_.join( "\n" ); else desc_ = (String)desc_; var ent = document.getElementsByClassName( "video-settings-description" ); for ( var c = 0 ; c < ent.length ; c++ ) ent[ c ].value = desc_; } if ( tags_ !== null ) { if ( tags_ instanceof Array ) tags_ = tags_.join( "\n" ); else tags_ = (String)tags_; var ent = document.getElementsByClassName( "video-settings-tags" ); for ( var c = 0 ; c < ent.length ; c++ ) ent[ c ].value = tags_; } }
Einzeiler:
function youtubeSettings(title_=null,desc_=null,tags_=null){if(title_!==null){if(title_ instanceof Array)title_=title_.join("\n");else title_=(String)title_;var ent=document.getElementsByClassName("video-settings-title");for(var c=0;c;c++)ent[c].value=title_}if(desc_!==null){if(desc_ instanceof Array)desc_=desc_.join("\n");else desc_=(String)desc_;var ent=document.getElementsByClassName("video-settings-description");for(var c=0;c;c++)ent[c].value=desc_}if(tags_!==null){if(tags_ instanceof Array)tags_=tags_.join("\n");else tags_=(String)tags_;var ent=document.getElementsByClassName("video-settings-tags");for(var c=0;c;c++)ent[c].value=tags_}}

Ihr wollt einen zufälligen Kommentar auswählen? Nutzt dieses Skript um eure Kommentare zu durchsuchen:
function winning( doubled_ ) { function extractDuplicates( names_, comp_ ) { var uniqueNames = []; // Zwischenspeicher for ( c = 0 ; c < names_.length ; ++c ) for ( cc = c + 1 ; cc < names_.length ; ++cc ) if ( comp_( names_[ c ], names_[ cc ] ) ) // wenn doppelt vorhanden uniqueNames.push( names_[ c ] ); // eintragen siNames = []; doNames = []; for ( c = 0 ; c < names_.length ; ++c ) for ( cc = 0 ; cc < uniqueNames.length ; ++cc ) if ( comp_( names_[ c ], uniqueNames[ cc ] ) ) // ist es eines der doppelten? doNames.push( names_[ c ] ); else siNames.push( names_[ c ] ); return { singles: siNames, doubles: doNames }; } var leas = document.getElementsByClassName( "HPa" ); // alle sichtbaren Kommentarblöcke var comments = []; // die verarbeiteten Kommentare for( c = 0 ; c < leas.length ; ++c ) { var ubgna = leas[ c ].getElementsByClassName( "Ub gna" ); // Titel vom User var a = leas[ c ].getElementsByTagName( "a" ); // Links var ct = leas[ c ].getElementsByClassName( "Ct" ); // Kommentar comments.push( { name: ubgna[ 0 ].innerHTML, googleurl: a[ 0 ].href, commenturl: a[ 2 ].href, commenttext: ct[ 0 ].innerHTML } ); // alles kombinieren } newComments = []; if ( doubled_ ) // doppelte Vermeiden newComments = extractDuplicates( comments, function( a, b ) { return a.googleurl === b.googleurl; } ).singles; else newComments = comments; // Ausgabe console.log( newComments.length + " valide Kommentare." ); var winner = newComments[ Math.floor( Math.random( ) * newComments.length ) ]; console.log( "Gewonnen hat: " + winner.name + " (" + winner.googleurl + ")" ); console.log( "Kommentar: " + winner.commenttext ); console.log( "Auf: " + winner.commenturl ); }