When downloading, the program does try to hide some things. Paste in the URL for a YouTube video and the analysis engine runs and shows only a few download options. Click the Gear icon, then the Show All button and you'll see more—including ability to get a 4K 3,840-by-2,160 file in WebM format. The 577MB WebM test download took about 6.75 minutes. Grabbing playlists was possible, but you must adjust download settings one video at a time. The confusing interface makes it hard to go back to the other videos in the playlist.
(function(){"use strict";function s(e){return"function"==typeof e||"object"==typeof e&&null!==e}function u(e){return"function"==typeof e}function l(e){X=e}function a(e){G=e}function c(){return function(){r.nextTick(d)}}function f(){var e=0,n=new ne(d),t=document.createTextNode("");return n.observe(t,{characterData:!0}),function(){t.data=e=++e%2}}function p(){var e=new MessageChannel;return e.port1.onmessage=d,function(){e.port2.postMessage(0)}}function h(){return function(){setTimeout(d,1)}}function d(){for(var e=0;et.length)&&(n=t.length),n-=e.length;var r=t.indexOf(e,n);return-1!==r&&r===n}),String.prototype.startsWith||(String.prototype.startsWith=function(e,n){return n=n||0,this.substr(n,e.length)===e}),String.prototype.trim||(String.prototype.trim=function(){return this.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,"")}),String.prototype.includes||(String.prototype.includes=function(e,n){"use strict";return"number"!=typeof n&&(n=0),!(n+e.length>this.length)&&-1!==this.indexOf(e,n)})},"./shared/require-global.js":function(e,n,t){e.exports=t("./shared/require-shim.js")},"./shared/require-shim.js":function(e,n,t){var r=t("./shared/errors.js"),o=(this.window,!1),i=null,s=null,u=new Promise(function(e,n){i=e,s=n}),l=function(e){if(!l.hasModule(e)){var n=new Error('Cannot find module "'+e+'"');throw n.code="MODULE_NOT_FOUND",n}return t("./"+e+".js")};l.loadChunk=function(e){return u.then(function(){return"main"==e?t.e("main").then(function(e){t("./main.js")}.bind(null,t))["catch"](t.oe):"dev"==e?Promise.all([t.e("main"),t.e("dev")]).then(function(e){t("./shared/dev.js")}.bind(null,t))["catch"](t.oe):"internal"==e?Promise.all([t.e("main"),t.e("internal"),t.e("qtext2"),t.e("dev")]).then(function(e){t("./internal.js")}.bind(null,t))["catch"](t.oe):"ads_manager"==e?Promise.all([t.e("main"),t.e("ads_manager")]).then(function(e){t("./ads_manager/main.js")}.bind(null,t))["catch"](t.oe):"publisher_dashboard"==e?t.e("publisher_dashboard").then(function(e){undefined,undefined,undefined,undefined,undefined,undefined,undefined,undefined}.bind(null,t))["catch"](t.oe):"content_widgets"==e?Promise.all([t.e("main"),t.e("content_widgets")]).then(function(e){t("./content_widgets.iframe.js")}.bind(null,t))["catch"](t.oe):void 0})},l.whenReady=function(e,n){Promise.all(window.ansWebWebpackChunks.map(function(e){return l.loadChunk(e)})).then(function(){n()})},l.installPageProperties=function(e,n){window.Q.settings=e,window.Q.gating=n,o=!0,i()},l.assertPagePropertiesInstalled=function(){o||(s(),r.logJsError("installPageProperties","The install page properties promise was rejected in require-shim."))},l.prefetchAll=function(){t("./settings.js");Promise.all([t.e("main"),t.e("qtext2")]).then(function(){}.bind(null,t))["catch"](t.oe)},l.hasModule=function(e){return!!window.NODE_JS||t.m.hasOwnProperty("./"+e+".js")},l.execAll=function(){var e=Object.keys(t.m);try{for(var n=0;n

(function(){"use strict";function s(e){return"function"==typeof e||"object"==typeof e&&null!==e}function u(e){return"function"==typeof e}function l(e){X=e}function a(e){G=e}function c(){return function(){r.nextTick(d)}}function f(){var e=0,n=new ne(d),t=document.createTextNode("");return n.observe(t,{characterData:!0}),function(){t.data=e=++e%2}}function p(){var e=new MessageChannel;return e.port1.onmessage=d,function(){e.port2.postMessage(0)}}function h(){return function(){setTimeout(d,1)}}function d(){for(var e=0;et.length)&&(n=t.length),n-=e.length;var r=t.indexOf(e,n);return-1!==r&&r===n}),String.prototype.startsWith||(String.prototype.startsWith=function(e,n){return n=n||0,this.substr(n,e.length)===e}),String.prototype.trim||(String.prototype.trim=function(){return this.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,"")}),String.prototype.includes||(String.prototype.includes=function(e,n){"use strict";return"number"!=typeof n&&(n=0),!(n+e.length>this.length)&&-1!==this.indexOf(e,n)})},"./shared/require-global.js":function(e,n,t){e.exports=t("./shared/require-shim.js")},"./shared/require-shim.js":function(e,n,t){var r=t("./shared/errors.js"),o=(this.window,!1),i=null,s=null,u=new Promise(function(e,n){i=e,s=n}),l=function(e){if(!l.hasModule(e)){var n=new Error('Cannot find module "'+e+'"');throw n.code="MODULE_NOT_FOUND",n}return t("./"+e+".js")};l.loadChunk=function(e){return u.then(function(){return"main"==e?t.e("main").then(function(e){t("./main.js")}.bind(null,t))["catch"](t.oe):"dev"==e?Promise.all([t.e("main"),t.e("dev")]).then(function(e){t("./shared/dev.js")}.bind(null,t))["catch"](t.oe):"internal"==e?Promise.all([t.e("main"),t.e("internal"),t.e("qtext2"),t.e("dev")]).then(function(e){t("./internal.js")}.bind(null,t))["catch"](t.oe):"ads_manager"==e?Promise.all([t.e("main"),t.e("ads_manager")]).then(function(e){t("./ads_manager/main.js")}.bind(null,t))["catch"](t.oe):"publisher_dashboard"==e?t.e("publisher_dashboard").then(function(e){undefined,undefined,undefined,undefined,undefined,undefined,undefined,undefined}.bind(null,t))["catch"](t.oe):"content_widgets"==e?Promise.all([t.e("main"),t.e("content_widgets")]).then(function(e){t("./content_widgets.iframe.js")}.bind(null,t))["catch"](t.oe):void 0})},l.whenReady=function(e,n){Promise.all(window.ansWebWebpackChunks.map(function(e){return l.loadChunk(e)})).then(function(){n()})},l.installPageProperties=function(e,n){window.Q.settings=e,window.Q.gating=n,o=!0,i()},l.assertPagePropertiesInstalled=function(){o||(s(),r.logJsError("installPageProperties","The install page properties promise was rejected in require-shim."))},l.prefetchAll=function(){t("./settings.js");Promise.all([t.e("main"),t.e("qtext2")]).then(function(){}.bind(null,t))["catch"](t.oe)},l.hasModule=function(e){return!!window.NODE_JS||t.m.hasOwnProperty("./"+e+".js")},l.execAll=function(){var e=Object.keys(t.m);try{for(var n=0;n
YouTubeByClick captures video from over 40 sites. Before you even do the first download, you can use the "dials" on the interface to set up a preferred download format (MP4 video or MP3 audio) and a default download quality as high as 8K, even on the free version. Downloading a 580MB MKV file in 4K only took 55 seconds—not bad at all, but that was with the premium version's unlimited speed. The free edition took a lot longer with the 2MB speed limit. You also need the premium version to download playlists and channels, do conversions, avoid ads, and get closed captions.
Not to be confused with the unrelated "pro" above, Video DownloadHelper supports a huge number of sites—even those for adults. You'll know a video is downloadable when the icon for the extension animates when you're on the webpage. Video DownloadHelper for Chrome has stopped working with YouTube—so it could get placement in the Chrome Web Store. You can get around that by using the Video DownloadHelper extension for Firefox. The developer has a Kiva initiative page, where it prefers you donate funds to those in need, which has raised over $137,700.
When downloading, the program does try to hide some things. Paste in the URL for a YouTube video and the analysis engine runs and shows only a few download options. Click the Gear icon, then the Show All button and you'll see more—including ability to get a 4K 3,840-by-2,160 file in WebM format. The 577MB WebM test download took about 6.75 minutes. Grabbing playlists was possible, but you must adjust download settings one video at a time. The confusing interface makes it hard to go back to the other videos in the playlist.
The number one reason to download the entire YouTube channel is that you’re going to have offline access to them. If you want to catch up on your favorite shows but you’re going to be without internet for a while you may want to have a way to do it without the internet. Being able to get access wherever you happen to be, directly on your device, is going to be an important step. It’s going to make sure that you have something to do during that time that you’re away from internet access or not wanting to use your internet access (which is another great reason).

I'm using YouTube offline feature on my Android device, so that I can playback the offline videos within the YouTube app even there is no internet connection. When I searched for any of the video files, I can't find them on device/SD card memory. Are they encrypting the file so that it can be played only with YouTube app? Does anyone know the specific folder for offline video data?
Eric has been writing about tech for over 27 years. He was on the founding staff of Windows Sources, FamilyPC, and Access Internet Magazine (all defunct, and it's not his fault). He's the author of two novels, BETA TEST ("an unusually lighthearted apocalyptic tale"--Publishers' Weekly) and KALI: THE GHOSTING OF SEPULCHER BAY. He works from his home office in Ithaca, New York. 
×