Хабр Курсы для всех
РЕКЛАМА
Практикум, Хекслет, SkyPro, авторские курсы — собрали всех и попросили скидки. Осталось выбрать!
потому что там ни одно бесплатное приложение из эппстора не соглашается кешировать музыку из вк(платные не смотрел)Ну не знаю как там эппстор, но гугл плей подобные вещи банит относительно активно. Даже платные.
var list = document.querySelectorAll('div.audio.fl_l');
var files = [];
for (var i = 0; i < list.length; i++) {
var tel = list[i];
var f_name = tel.querySelector('.title_wrap').innerText;
var f_url = tel.querySelector('input').value;
files.push(f_url+'\t'+f_name+'.mp3');
}
var a = document.createElement('a');
a.download = 'vk_music.txt';
var oUrl = URL.createObjectURL(new Blob([files.join("\n")], {type: 'text/plain'}));
a.href = oUrl;
a.click();
delete a;
URL.revokeObjectURL(oUrl);
URL<tab>track title.mp3
Все песни, которые видны на странице (без прокрутки)cat vk_music.txt |while read url name; do wget "$url" -O "$name" --no-check-certificate; done;
var scrollTop = -1;
var iv = setInterval( function() {
if (document.body.scrollTop > scrollTop) {
scrollTop = document.body.scrollTop;
document.body.scrollTop = scrollTop + 10000;
} else {
clearInterval(iv);
/* код загрузки */
}
}, 1000);
function getUrlList() {
var list = document.querySelectorAll('div.audio.fl_l');
var files = [];
for (var i = 0; i < list.length; i++) {
var tel = list[i];
var f_name = tel.querySelector('.title_wrap').innerText;
var f_url = tel.querySelector('input').value;
files.push(f_url+'\t'+f_name+'.mp3');
}
var a = document.createElement('a');
a.download = 'vk_music.txt';
var oUrl = URL.createObjectURL(new Blob([files.join("\n")], {type: 'text/plain'}));
a.href = oUrl;
a.click();
delete a;
URL.revokeObjectURL(oUrl);
}
var scrollTop = -1;
var iv = setInterval( function() {
if (document.body.scrollTop > scrollTop) {
scrollTop = document.body.scrollTop;
document.body.scrollTop = scrollTop + 10000;
} else {
clearInterval(iv);
getUrlList();
}
}, 1000);
$dest = "C:\temp"
$lines = Get-Content -Encoding UTF8 vk_music.txt | Where {$_ -notmatch '^\s+$'}
foreach ($line in $lines){
$url = $line.Split('?')[0];
$s = $line.Split(',')[1];
$title = $s.substring(4);
$path = $dest, $title -join "\";
Write-Output "Downloading ($title) .....";
Invoke-WebRequest $url -OutFile $path;
# (new-object System.Net.WebClient).DownloadFile($url,$path);
}
payload = {
'client_id': 4591034,
...
'response_type': 'token',
}
driver.get("http://api.vkontakte.ru/oauth/authorize?%s" % urllib.urlencode(payload))
# Создаем листы для хранения данных
artists_list = []
titles_list = []
links_list = []
number = 0
for i in my_dict['response']:
artists_list.append(i['artist'])
titles_list.append(i['title'])
links_list.append(i['url'])
number += 1
my_dict = json.loads(html)
for data in my_dict.get('response', {}).values():
filename = os.path.join(path, "%s-%s.mp3" % (data['artist'], data['title']))
if not os.path.exists(filename):
urllib.urlretrieve(data['url'].split("?")[0], filename)
root = os.path.realpath(os.path.dirname(__file__))
path = os.path.join(root, "downloads")
Обратите внимание, что даже с использованием параметра offset получить информацию об аудиозаписях, находящихся после первых 6 тысяч в списке пользователя или сообщества, невозможно.
После перехода на Ubuntu 14.10 возникли проблемы в виде полного зависания компьютера во время прослушивания аудиозаписей через браузер Google Chrome для linux систем.
Мы посмотрели отчёт и поняли, в чём дело. Ваш провайдер передаёт данные через несколько шлюзов одновременно. Из-за этого запросы к сайту идут параллельно с разных IP-адресов, что и приводит к проблемам. Имеет смысл обратиться в поддержку Вашего провайдера и пожаловаться на это. Либо просто подключиться к другому провайдеру. Если будете обращаться в поддержку, обязательно заострите их внимание на том, что проблема не в динамическом IP-адресе, а в параллельно идущих запросах с разных IP-адресов. Это следствие плохо реализованного распределения нагрузки между разными внешними каналами провайдера.
Бекап аудиозаписей с плейлиста ВКонтакте (до 6000) средствами Python и Vk API