digitorum.ru

Как меня найти

Профиль

icq: 4415944

Google Chrome: Плагин для скачивания музыки из "Вконтакте"

google chrome, javascript

Поясню сразу: я крайне негативно отношусь к пиратству. Зачем я сделал этот плагин? Да потому что мог . Пользоваться я им не буду, да и вам не рекоммендую .

Мануал по установке и использованию после кода.

Составные части плагина:

manifest.json

{
	"manifest_version": 2,
	"name": "VkMusicDownloader",
	"description": "",
	"version": "1.0",
	"permissions": [
		"tabs",
		"http://vk.com/*",
		"downloads"
	],
	"browser_action": {
		"default_icon": "img/icon.png"
	},
	"background" : {
		"scripts" : [
			"js/main.js"
		]
	},
	"content_scripts" : [
		{
			"matches": ["http://vk.com/*", "https://vk.com/*"],
			"js" : ["js/jquery-2.1.1.min.js", "js/pageAnalyser.js"]
		}
	]
}

 

Да, в этом плагине я использовал jQuery.

js/main.js

chrome.browserAction.onClicked.addListener(
	function() {
		chrome.tabs.query(
			{
				active: true, 
				currentWindow: true
			}, 
			function(tabs) {
				// посылаем запрос к открытой закладке на получение урла записи и ее тайтла
				chrome.tabs.sendMessage(
					tabs[0].id, 
					{
						greeting: "hello"
					}, 
					function(response) {
						if(response.url) {
							chrome.downloads.download({
								url : response.url,
								filename : response.title.replace(/[^a-zA-Zа-яА-Я0-9\-_ \(\)\.]/g, "_") + ".mp3",
								saveAs : true
							});
						} else {
							alert("Невозможно скачать файл: URL не определен");
						}
					}
				);
			}
		);
	}
);

 

js/pageAnalyser.js

(function() {
	
	// глобальный объект для хранения информации об аудио
	var audio = {
		url : false,
		title : ""
	};
	
	
	// вешаем событие на клик элементов на странице, которые запускают воспроизведение записи
	$(document).on("click", "div.audio[id*='audio']", function() {
		var info = $("#" + $(this).attr("id").replace("audio", "audio_info"));
		var title = $(this).find(".title_wrap").text();
		
		if(info.length) {
			audio.url = info.attr("value");
			audio.title = title;
		} else {
			audio.url = false;
			audio.title = ""
		}
	});
	
	
	// слушаем получение сообзения от экстеншна
	chrome.runtime.onMessage.addListener(
		function(request, sender, sendResponse) {
			sendResponse({
				url: audio.url,
				title: audio.title
			});
		}
	);
	
})();

 

Что со всем этим делать?

1. Установка.

  • Качаем архив, и распаковываем его. Должна получиться вот такая "файловая структура":
VkMusicDownloader
	manifest.json
	img
		icon.png
	js
		jquery-2.1.1.min.js
		jquery-2.1.1.min.map
		main.js
		pageAnalyser.js

 

  • Открываем chrome://extensions/
  • Ставим галку "Режим разработчика" (не планирую заливать в маркет)
  • Нажимаем на кнопку "Загрузить распакованное расширение" (тем более не планирую его паковать)
  • Выбираем папку "VkMusicDownloader"

2. Использование.

В браузере появилась кнопка рядом с адресной строкой.

При нажатии на эту кнопку будет предложено сохранить воспроизводимый сейчас трэк.

Собственно все.

Ииииииииипомните! Пиратство - это плохо!

 

Возможно будет интересно: