User JavaScript

<a href="http://userjs.org/">UserJS.org</a> community forums

Youtube Video Download

Forums » Generic » User JavaScript

You need to be logged in to post in the forums. If you do not have an account, please sign up first.

Go to last post

17. November 2008, 04:33:15

fabdellatif

Posts: 1

Youtube Video Download

Hey folks!

I made a userjs that enables the user to download the video being watched on youtube. The problem is that the downlaod dialog pops as soon as the page opens even if you don't click on the button provided by the userjs. Please tell me what is wrong with my code.

Thanks.

// ==UserScript==
// @name	YouTube
// @author	aGeek
// @version	0.5
// @description	Adds a button on youtube site which enables the user to download the video being watched.
// @include     http://youtube.com/watch*
// @include     http://*.youtube.com/watch*
// ==/UserScript==

window.addEventListener('DOMContentLoaded',function () {

	function downloadYT() {
		window.location.href = 'http://youtube.com/get_video?video_id=' + swfArgs['video_id'] + "&l=" + swfArgs['l'] + "&sk=" + swfArgs['sk'] + '&fmt_map' + swfArgs['fmt_map'] + '&t=' + swfArgs['t'];
	}

	screentoggle = document.createElement('img');
	screentoggle.style="position:absolute; top: 3px; right: 3px;";
	document.body.appendChild(screentoggle);

	screentoggle.src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAGBQTFRFWVhZlJWXyszPKioqsbO1YmJiurzBsrW709TWeXl62d7lcXJ03uHn6u3we32CoqKjbG1ttbi8qqyturq7SUpJrrCznp6fpaerv8HFtrm8Tk9OODg4u7u7REVEPDw8////ArijUwAAACB0Uk5T/////////////////////////////////////////wBcXBvtAAAAiUlEQVR42lzPQQ6EIBQD0MoggqAIioOozP1vOUBEE9+ii6aL//F7AXHddjGGGgVLOL04x4kFJaK9CaJBPZyVohhbr+F8WJt2KiRSYX0oa2QhF2xBqE6m8WXnclZxy0V87EZDm7g/uhUNk5/bZHIxqL7vlco55IUYq3SapBj4fCRzycMrvN//CzAA2poRcJxdnucAAAAASUVORK5CYII=";
	screentoggle.onclick = downloadYT();

}, false);

20. November 2008, 12:08:37

Hades32

What I use:

Posts: 1917

Try placing the function downloadYT() outside if the addEventListener function.
Using Windows 7 64Bit SP1 and of course Opera
(If nothing else stated the most current weekly) on a nice Dell Studio XPS 16!

12. December 2008, 07:03:06

kailapis

^^;

Posts: 150

Change
screentoggle.onclick = downloadYT();
to
screentoggle.onclick = downloadYT;

When you put the parenthesis there, it calls the function immediately and assigns the value returned as the event handler.

26. December 2008, 04:14:49

VyseVilifous

Posts: 14

I'm using this userjs (thanks very much, by the way!) for downloading YT videos. However, the little icon shows up in the top corner of the page regardless of the website I'm visiting. It's even there right now as I post this! Something would need to be added so that the icon only appears whenever you're actually browsing YouTube.

26. December 2008, 12:46:04

BAcid

UserJS Fanatic

Posts: 20

Some cleaned up code. No real change except: if you hover the icon (top right) of the downloader, it shows a tool tip.

Works saving it as "downloader-youtube.js".

// ==UserScript==
// @nameYouTube
// @authoraGeek
// @version0.5.ba
// @descriptionAdds a button on youtube site which enables the user to download the video being watched.
// @include     http://youtube.com/watch*
// @include     http://*.youtube.com/watch*
// ==/UserScript==

// modified BananaAcid.de.vu
window.addEventListener('DOMContentLoaded',function () {

   var ytd = document.createElement('img');
   ytd.style = "position:absolute; top: 3px; right: 3px;";
   ytd.title = "download YouTube video...";
   ytd.src   = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAGBQTFRFWVhZlJWXyszPKioqsbO1YmJiurzBsrW709TWeXl62d7lcXJ03uHn6u3we32CoqKjbG1ttbi8qqyturq7SUpJrrCznp6fpaerv8HFtrm8Tk9OODg4u7u7REVEPDw8////ArijUwAAACB0Uk5T/////////////////////////////////////////wBcXBvtAAAAiUlEQVR42lzPQQ6EIBQD0MoggqAIioOozP1vOUBEE9+ii6aL//F7AXHddjGGGgVLOL04x4kFJaK9CaJBPZyVohhbr+F8WJt2KiRSYX0oa2QhF2xBqE6m8WXnclZxy0V87EZDm7g/uhUNk5/bZHIxqL7vlco55IUYq3SapBj4fCRzycMrvN//CzAA2poRcJxdnucAAAAASUVORK5CYII=";

   ytd.onclick = function() {
      window.location.href = 'http://youtube.com/get_video?video_id=' + swfArgs['video_id'] + "&l=" + swfArgs['l'] + "&sk=" + swfArgs['sk'] + '&fmt_map' + swfArgs['fmt_map'] + '&t=' + swfArgs['t'];
   }

   document.body.appendChild(ytd);
   
}, false);

18. March 2009, 18:43:43

dude09

ex-Opera user

Posts: 5195

I found another userjs for Youtube download, it provide both high quality & low quality downloads links:

// ==UserScript==
// @author Punkesito
// @include http://*.youtube.com/watch?v=*
// ==/UserScript==
function gup(name)
{
  name = name.replace(/[\[]/,"\\\[").replace(/[\]]/,"\\\]");
  var regex = new RegExp( "[\\?&]"+name+"=([^&#]*)" );
  return regex.exec(fullscreenUrl)[1];
}
document.addEventListener(
  'DOMContentLoaded',
  function (e) {
   	var linkflv='/get_video?video_id='+gup('video_id')+'&l='+gup('l')+'&sk='+gup('sk')+'&t='+gup('t')+'&hl='+gup('hl')+'&plid='+gup('plid');
  	var linkmp4=linkflv+'&fmt=18';
   	var a = document.createElement('a');
    a.setAttribute('href', linkmp4);
    a.appendChild(document.createTextNode("Download MP4"));
    var al = document.createElement('a');
    al.setAttribute('href', linkflv);
    al.appendChild(document.createTextNode("Download FLV"));
		var viddiv = document.getElementById('watch-player-div');
		viddiv.appendChild(a);
		var nodoTexto = document.createTextNode("(High quality)  ");
    viddiv.appendChild(nodoTexto);
    viddiv.appendChild(al);
    nodoTexto = document.createTextNode("(Low quality)");
    viddiv.appendChild(nodoTexto);
    viddiv.appendChild(at);
  },
  false
);

19. March 2009, 01:41:12 (edited)

BAcid

UserJS Fanatic

Posts: 20

Changes made to reflect the MP4 and 3GP choices, and to circumvent the new block mechanism by YouTube. (and the url construction done with less code)

- Downloads FLV, MP4, 3GP
- Download buttons position can be changed.
- New download button. swap the commenting at the 2 ytd.src to get the old icon back, or delete the commented line ( // ) to save space.

To change the display pos, set
var ShowButtonPos = posops.leftofvid;
to the appropriate posops option. these are: posops.topleft, posops.belowvid and posops.leftofvid



// ==UserScript==
// @nameYouTube
// @authoraGeekAndBananaAcid
// @version1.2ba
// @descriptionAdds a button on youtube site which enables the user to download the video being watched.
// @include     http://youtube.com/watch*
// @include     http://*.youtube.com/watch*
// ==/UserScript==

// modified BananaAcid.de.vu
window.addEventListener('DOMContentLoaded',function () {
   var posops = {topright:0, belowvid:1, leftofvid:2};
      
   var ShowButtonPos = posops.leftofvid;

   var countCreated = 0;
   var mkBtn = function(tokenID, desc) {
      var ytd = document.createElement("img");
      ytd.alt = ytd.title = "Download video... " + (desc || "");
      //ytd.src   = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAGBQTFRFWVhZlJWXyszPKioqsbO1YmJiurzBsrW709TWeXl62d7lcXJ03uHn6u3we32CoqKjbG1ttbi8qqyturq7SUpJrrCznp6fpaerv8HFtrm8Tk9OODg4u7u7REVEPDw8////ArijUwAAACB0Uk5T/////////////////////////////////////////wBcXBvtAAAAiUlEQVR42lzPQQ6EIBQD0MoggqAIioOozP1vOUBEE9+ii6aL//F7AXHddjGGGgVLOL04x4kFJaK9CaJBPZyVohhbr+F8WJt2KiRSYX0oa2QhF2xBqE6m8WXnclZxy0V87EZDm7g/uhUNk5/bZHIxqL7vlco55IUYq3SapBj4fCRzycMrvN//CzAA2poRcJxdnucAAAAASUVORK5CYII=";
      ytd.src = "data:image/jpg;base64,/9j/4AAQSkZJRgABAQEAYABgAAD/4QC+RXhpZgAASUkqAAgAAAAFABoBBQABAAAASgAAABsBBQABAAAAUgAAACgBAwABAAAAAgBKRzEBAgAQAAAAWgAAAGmHBAABAAAAagAAAAAAAABgAAAAAQAAAGAAAAABAAAAUGFpbnQuTkVUIHYzLjM2AAEAhpICADoAAAB8AAAAAAAAAENSRUFUT1I6IGdkLWpwZWcgdjEuMCAodXNpbmcgSUpHIEpQRUcgdjYyKSwgcXVhbGl0eSA9IDkwCgD/2wBDAAYEBQYFBAYGBQYHBwYIChAKCgkJChQODwwQFxQYGBcUFhYaHSUfGhsjHBYWICwgIyYnKSopGR8tMC0oMCUoKSj/2wBDAQcHBwoIChMKChMoGhYaKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCj/wAARCAAUABYDASIAAhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREAAgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYkNOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwD0bxL4zvL27Fvosdw86XYgujvMYgjZSVZR0I4OTUHh681O01K6guLi0d4wJba5g2hZA33c7eGUkFTnPNJ4p0fUtL1DXLh4La9tIbYy2lqcrI5JIYqwHPyMwxnsOK4ya/0jQJdEsLVblQLJm8pn3SIWcsoJ7YOcZ6Vhiq8qFJzirjhBzlyxTb7I+kNE1BNU0q2vIxhZUDY9D3FFeeeAvG1lp2iW+nayxguEVnWQDckq56jHQjPIxRVQqQqRUo7MqdOdOXLNWaPRtT0201O3MN9Ak0fow5H0PavMfif8PtAk0OGaC2e0uIJMrNA2HOeoYkHNFFXNJqzCjJwqJxdmbfw+8D6Jpeni5SB7m6mTa0103mNjrgZ6D6UUUU1FJWSCpJyk22f/2Q==";
      ytd.token = ((tokenID != "") ? "&fmt="+tokenID :"");

      ytd.onclick = function() {
         window.location.href = "/get_video?" + fullscreenUrl.replace("/watch_fullscreen?", "") + this.token;
      }
      switch (ShowButtonPos) {
         case posops.belowvid:
            ytd.style = "margin-left: 5px;"; document.getElementById('watch-player-div').appendChild(ytd); break;
         case posops.leftofvid:
            ytd.style = "position:relative; top: "+((countCreated * 25)+3)+"px; float: left; margin-left: -20px;"; document.getElementById('watch-vid-title').appendChild(ytd); break;
         default:
            ytd.style = "position:absolute; top: "+((countCreated * 25)+3)+"px; right: 3px;"; document.body.appendChild(ytd); break;
      }
      countCreated++;
   }

   mkBtn("", "(Web-Lowres - FLV)");
   mkBtn(18, "(Hires - MP4)");
   mkBtn(17, "(Mobile - 3GP)");
   
}, false);

25. March 2009, 01:45:15

dapxin

Posts: 159

I like this. thx

26. June 2009, 13:38:24

SKYnv

Posts: 9

big thanks!

8. August 2009, 17:27:13

themightydeity

Posts: 3

I have edited this a little to make it perfect
well it downloads videos in mp4 format and i have added a bigger watchable image which appears in top-middle page and its position is fixed
when you scroll down the page also.

Happy downloading

// ==UserScript==
// @nameYouTube
// @authorthemightydeity
// @version1
// @descriptionAdds a button on youtube site which enables the user to download the video being watched.
// @include     http://youtube.com/watch*
// @include     http://*.youtube.com/watch*
// ==/UserScript==

// start
window.addEventListener('DOMContentLoaded',function () {

   var ytd = document.createElement('img');
   ytd.style = "position:fixed; display:inline-block; top: 3px; right: 384px;";
   ytd.title = "Download Youtube Video by (themightydeity) yespiracy.com";
   ytd.src   = "data:image/png;base64,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";

   ytd.onclick = function() {
      window.location.href = 'http://youtube.com/get_video?fmt=18&video_id=' + swfArgs['video_id'] + "&l=" + swfArgs['l'] + "&sk=" + swfArgs['sk'] + '&fmt_map' + swfArgs['fmt_map'] + '&t=' + swfArgs['t'];
   }

   document.body.appendChild(ytd);
   
}, false);


9. August 2009, 00:44:25

BtEO

Posts: 1018

Wikipedia used to have a nice little table listing the various fmt= values and their results. It's since been removed for lack of references, which is true — no-one else on the Internet seems interested in keeping track of those values.

I thought I'd post them here for your reference though, they've been very useful for the download script I have (and might release if I ever get around to getting permission for the various bits of code I've integrated or taken inspiration for along the way).

I'd ignore the '38' value it mentions though, that one seems somewhat debatable. Most notable for you would be 35, which is a the new high quality version applying to videos circa ~Feb-09 onward. Also, &fmt=6 was valid once, but doesn't exist anymore and can be ignored too.
MyOpera Community Enhancements — by xErath & BtEO
MyOpera Community Optimizations — by fearphage
Scribit improved posting tools for the MyOpera Community — by xErath
Improve Weeklies Blog — by MisterE & fearphage

24. November 2009, 10:21:01

Badtz Maru

Posts: 26

No one works for me.

30. April 2010, 12:39:39

razaliadam

Posts: 2

I dont understand how 2 use it.
Please explain clearly, Im not a programer...
Just stupid internet user.
Please..... (hope)

1. May 2010, 04:31:30

razaliadam

Posts: 2

How to use this js???????

Forums » Generic » User JavaScript

Moderated by: hallvors virtuelvis tarquinwj nicomen