NOTICE: By continued use of this site you understand and agree to the binding Terms of Service and Privacy Policy.
// ==UserScript== // @name VK video download // @namespace https://github.com/DaniilAfendulov/VK-video-dowload // @version 0.1 // @description Позволяет скачивать видео из вк, даже если это видео переслали вам сообщением из закрытой группы. Кнопка скачать появляется при нажатии правой кнопки мыши на видео // @author Daniil Afendulov // @include https://vk.com/* // @include https://m.vk.com/* // @include https://pvv4.vkuservideo.net/* // @license MIT // ==/UserScript== (function() { 'use strict'; // Your code here... if(window.location.hostname === "m.vk.com" && window.opener.location.hostname === "vk.com") vkm(); if(window.location.hostname === "pvv4.vkuservideo.net" ) pvv4(); if(window.location.hostname === "vk.com") vk(); })(); function vk() { window.addEventListener('message', function(event) { if (event.source.location.hostname === "m.vk.com") { let src = event.data; alert('m.vk.com'); window.location = src; return; } }); var el; var timerId = setInterval(pollDOM, 2000); function pollDOM () { console.log('tick'); el = document.querySelector("#video_player > div > div.videoplayer_ui > div.videoplayer_context_menu.hidden"); if (!el) { el = document.querySelector("#video_player > div > div.videoplayer_ui > div.videoplayer_context_menu"); } if (el) setBtn(); } function setBtn() { //clearInterval(timerId); let div = document.querySelector('#tmr'); if(div) return; div = document.createElement('div'); div.className = "_item"; div.id = 'tmr'; div.innerHTML = "скачать"; div.onclick = handler; el.prepend(div); } function handler() { var ourl = window.location.toString(); var url = ourl; url = url.replace('https://','https://m.'); let index = url.indexOf('video'); if(index === -1) return; url = url.slice(0,"https://m.vk.com/".length) + url.slice(index); url = url.replace('%2F','?list='); index = url.indexOf('%2F'); if(index === -1) return; url = url.slice(0,index); var win = window.open(url); } } function vkm() { window.onload = function() { let src = window.location.pathname; console.log(src); src = '#'+src.substring(1)+" > div.VideoPage__video > video > source:nth-child(2)"; console.log(src); src = document.querySelector(src).src; src = src.substring(0, src.indexOf('.mp4')+4); let win = window.opener; win.postMessage(src, '*'); window.close(); } } function pvv4() { window.onload = function() { let video = document.querySelector("body > video > source"); let a = document.createElement('a'); a.href = video.src; a.download = 'video.mp4'; a.click(); window.history.back(); } }