// ==UserScript==
// @name linkedIn learning video download
// @namespace http://tampermonkey.net/
// @version 0.5
// @description Allows to download learning videos you see on LinkedIn. Must be logged in.
// @author rightDroid
// @include https://www.linkedin.com/learning/*
// @require http://code.jquery.com/jquery-latest.js
// @grant none
// ==/UserScript==
$(document).ready(function(){
(function() {
var download_button = `<li class="course-banner__action-item download_video_button">
<button id="ember1578" title="Download video" class="add-menu-dropdown__trigger btn-tertiary btn-large dropdown-trigger ember-view"><li-icon aria-hidden="true" type="ribbon-icon" size="large"><svg class="svg-icon" viewBox="0 0 20 20">
<path d="M17.064,4.656l-2.05-2.035C14.936,2.544,14.831,2.5,14.721,2.5H3.854c-0.229,0-0.417,0.188-0.417,0.417v14.167c0,0.229,0.188,0.417,0.417,0.417h12.917c0.229,0,0.416-0.188,0.416-0.417V4.952C17.188,4.84,17.144,4.733,17.064,4.656M6.354,3.333h7.917V10H6.354V3.333z M16.354,16.667H4.271V3.333h1.25v7.083c0,0.229,0.188,0.417,0.417,0.417h8.75c0.229,0,0.416-0.188,0.416-0.417V3.886l1.25,1.239V16.667z M13.402,4.688v3.958c0,0.229-0.186,0.417-0.417,0.417c-0.229,0-0.417-0.188-0.417-0.417V4.688c0-0.229,0.188-0.417,0.417-0.417C13.217,4.271,13.402,4.458,13.402,4.688"></path>
</svg> </li-icon>
<span class="text" aria-hidden="true">Download</span>
<span class="visually-hidden">Download Video</span>
</button></li>`;
addDownloadButton = function(){
$('.course-banner__actions').prepend(download_button);
};
checkIfReadyToLoad = function(){
if($('.course-banner__actions').length){
addDownloadButton();
}
else{
setTimeout(checkIfReadyToLoad,2000);
}
};
checkIfReadyToLoad();
$('body').on('click', function(){
if($('.video-body video.player').length){
var vid_source = $('video.player').attr('src');
console.log(vid_source);
$('li.download_video_button > button').wrap('<a href="#" download=True></a>');
$('.download_video_button > a').attr('href', vid_source);
$('.download_video_button > a').attr('download', vid_source);
}
});
})();
});