Downloads anything from the steam workshop
// ==UserScript== // @name Steam Downloader // @version 0.2 // @description Downloads anything from the steam workshop // @author cpilton // @include *steamcommunity.com/sharedfiles/filedetails/?id=* // @include *steamcommunity.com/workshop/filedetails/?id=* // @grant GM_xmlhttpRequest // @namespace https://greasyfork.org/users/420396 // ==/UserScript== var appID; (function() { 'use strict'; addButton(); getAppID(); })(); function addButton() { var div = document.createElement("div"); div.classList.add("workshopItemControlCtn"); div.innerHTML = '<span id="downloadButton" style="margin-top:6px" class="general_btn share tooltip"><span>Download</span></span>'; div.onclick = function() { download(); } var element = document.getElementById("action_wait"); element.parentNode.insertBefore(div, element); } function getAppID() { var element = document.getElementById("ig_bottom").getElementsByClassName("btnv6_blue_hoverfade btn_medium")[0]; appID = element.getAttribute("data-appid"); } function download() { getDownloadLink(getID()); } function getID() { var url_string = window.location.href; var url = new URL(url_string); var id = url.searchParams.get("id"); return id; } function getDownloadLink(id) { var request="item="+id+"&app="+appID; GM_xmlhttpRequest({ method: "POST", url: "http://steamworkshop.download/online/steamonline.php", data: request, headers: { "Content-Type": "application/x-www-form-urlencoded" }, onload: function (response) { var href = response.responseText.split("'"); downloadFile(href[1]); }, onerror: function (reponse) { //alert('error'); console.log(reponse); } }); } function downloadFile(url) { window.location.assign(url); }