Что с музыкой в контакте: «ВКонтакте» ограничит бесплатное прослушивание музыки — она будет доступна только со включённым экраном или на ПК — Соцсети на vc.ru

Делаем бэкап музыкальной базы vkontakte с помощью Python / Хабр

Год назад я захотел в машину флешку с винегретом из музыки, которая была у меня в плейлисте контакта. А там, к слову, почти 1400 треков.

Итак, первое, что я сделал — октрыл список расширений оперы и набрал в поиске «vkontakte». Но вот оказия, все приложения предлагали качать по одному треку, в основном добавляя рядом с ним кнопочку «скачать». В принципе, это удобно, если надо стянуть оттуда один-два трека, но вот если их 1400…

Следующий моим шагом было открытие страницы с музыкой и внимательная медитация над ней, с целью распарсить страницу, выдрав оттуда ссылки и названия. Слегка подумав, я решил, а почему бы снова не использовать вконтактовый API? Ведь опыт использования у меня уже есть (писал десктопный плеер на Qt). Но лепить полноценное приложение, тем более на плюсах или каком-либо другом языке, мне показалось слегка не умным решением. И тут я подумал — черт возьми, есть же python, наклепаю скрипт и стяну все.

Итак, выбор сделан, начинаем кодить.

Открываем Geany и пишем первые строчки… И вот тут-то моя фантазия и желание лепить комбайны из ничего опять разыгрались. Дальше под катом.

Итак, редактор открыт, мозги работают, в наушниках играет Judas Priest, и из под моего пера выходит очередное произведение.

Так как на рабочих станциях, компьютерах и ноутбуках у меня виндой и не пахнет, так как везде стоит линукс, было решено использовать штатный wget для загрузки. Да и консольный выхлоп у него красивый.

Для начала я решил сделать небольшую функцию, которая проверит подключение к интернету. Для этого попытаемся открыть google.com.

def checkConnection():  #Функция, проверяющая наличие подключения к интернету.
	try:
		response = urllib2.urlopen('http://google.com', timeout = 1)
		return True
	except urllib2.URLError as err: pass
	return False

Если гугл открылся — функция возвращает true, если нет — false.

Дальше моея несгибаемая фантазия решила влепить еще одну проверку, на этот раз на наличие в системе wget.

def checkWget(): #Проверяется наличие в системе wget
	print "Проверяю наличие wget. Сейчас будет скачана какая-то пое**нь..."
	testfilename = "x_8091546b.jpg"
	cmd = "wget http://cs5705.vkontakte.ru/u403273/139647416/x_8091546b.jpg"
	os.popen(cmd)
	chk = os.path.exists(testfilename)
	if chk == True:
		print "Да, wget у тебя, как видишь, стоит. Все пучком, приступаем!"
		os.remove(testfilename)
	else:
		print "Ну вот, не стоит. Ставь wget, а потом уже лезь качать что-то!"
		exit()
	
	return

Итак, функции проверок готовы, начинаем сам процесс закачки. Фантазия решила добавить в скрипт немного юмора, чтоб все было не так банально, как всегда, и, собственно, вот результат.

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

print "Привет, юзер! Ты запустил скрипт grabVK.  Сейчас мы с тобой скачаем музло с твоей страницы."
print "Данный скрипт скачивает все подряд музло, делая, скажем так, бэкап музыки с твоей страницы."
print "Ну а дальне ты сможешь слушать свои же записи где хочешь и каким хочешь плеером"
print "Ну что ж, начнем"
print " "
print "Проверяю подключение к интернету..."
inON = checkConnection()  #Проверяем подключение к инету.
if inON == True:
	print "К интернетам подключен!"
else:
	print "К сожалению, к интернетам ты не подключен. Поэтому иди нафиг, пока не подключишься =)"
	exit()
	
print "Итак, если подключение к интеренту найдено, приступим к процессу загрузки"
print "Напомню, что для правильно работы скрипта, в ней должен быть установлен wget!"
print "Есть ли у тебя в системе wget?"
print "Если ты уверен, что у тебя стоит - смело жмакай y, если нет - n, тогда я проверю сам =)"
answer = raw_input("Стоит ли у тебя wget?: ")
if answer == "y":
	print "Ну раз стоит, так стоит. Не шуми потом, если ничего не выйдет!"
else:
	checkWget()
print "Мы же хотим по-быстрому скачать музыку, так? Поэтому было решено не клепать велосипедов и открыть нужные ссылки в системной браузере"
print "Но есть один нюанс - после того, как откроется браузер и ты пройдешь авторизацию - не закрывай его сломя голову!"
print "После прохождения авторизации ты видишь непонятную строчку на экране, так? Молодец!"
print "В строчке, как ты можешь видеть, есть три параметра, это access_token, expires_in и user_id, разделенные знакои & "
print "Скопируй по очереди эти параметры и введи в соответствующие поля скрипта, нажав ентер"
answer = raw_input("Готов?: ")
if answer == "y":
	print "Вот и хорошо, продолэжаем!"
else:
	print "Вот же какой трусливый! Ну и ладно!"
	exit()
	
webbrowser.
open_new_tab("http://api.vkontakte.ru/oauth/authorize?client_id=2223684&scope=audio&redirect_uri=http://api.vk.com/blank.html&display=page&response_type=token") access_token = raw_input("access_token: ") print "Малаца, теперь копипасть expires_in." expires_in = raw_input("expires_in: ") print "Ну ваще мегакулхацкер прям! Остался последний параметр." user_id = raw_input("user_id: ") print "Миссия завершена! Таперича начинаем дергать музло. Точнее пока что коннектиться и дратьс писок. Вперде!" print "Ну, была не была, коннектимся!"

Итак, при выполнении этого кода открывается системный браузер, который показывает страницу авторизации на сервере API vkontakte. Для того, чтоб сработала авторизация, надо создать приложение vkontakte, которому будет присвоен ID, его нужно указать в ссылке авторизации. У меня такое приложение было создано давно, еще для декстопного плеера. В браузере появляется строка с тремя отданными сервером параметрами, которые нужно передать скрипту методом копипаста, они необходимы для получения базы в XML формате.

Параметры получены, все готово к тому, чтоб получить список и распарсить его. Для парсинга XML использована Lxml.

url = "https://api.vkontakte.ru/method/audio.get.xml?uid=" + user_id + "&access_token=" + access_token
page = urllib2.urlopen(url)
html = page.read()
print "Список музла получен, парсим..."
artistMas = []
titleMas = []
urlMas = []
number = 0
print "Парсим на предмет исполнителей..."
doc  = lxml.html.document_fromstring(html)
for artist in doc.cssselect('artist'):
	artistMas.append(artist.text)
	number = number + 1
	
print "OK"
print "Парсим на предмет названий..."
for title in doc.cssselect('title'):
	titleMas.append(title.text)
	
print "OK"
print "Парсим на предмет ссылок..."
for urlm in doc.cssselect('url'):
	urlMas.append(urlm.text)
	
print "OK"
print "" 

Нами были получены списки артистов, треков и ссылок. Самое время начать закачку. Закачка будет производиться в каталог download. Также реализована докачка — если в каталоге download уже лежат музыкальные файлы, они не будут закачиваться заново и будут пропущены, что удобно, если надо просто иногда синхронизировать плейлист vkontakte с локальным.

print "Ну вот, теперь приступаем к даунлоадингу! Помни, юзер, что скачается весь плейлист!"
print "Т.е. если у тебя дофига записей и медленный интернет - забей на это дело и жди гуевую"
print "морду, где можно будет качать выборочно"
	
path = "download"
if os.path.exists(path):
	"Папка уже есть, начинаем докачку "
else:
	os.makedirs(path)
print "Нам нужно скачать кучу файлов. Вычисляем количество..."
print number
answer = raw_input("Готов?: ")
if answer == "y":
	print "Пошла закачка, пошла родимая!"
else:
	print "Вот же какой трусливый! Ну и ладно!"
	exit()
for i in xrange(0, number-1):
	print "Загружается:"
	print i
	print " "
	
	filename_new = path+"/"+artistMas[i]+ " - " + titleMas[i] + ".mp3";
	if os.path.exists(filename_new):
		print "Этот файл уже загружен, переходим к следующему"
	else:				
		downCmd = "wget -P" + path + " " + urlMas[i]
		os.popen(downCmd)
		p = re.compile(r"[0-9a-zA-Z]+\.mp3$")
		filename = p.findall(urlMas[i])
		
		try:
			os.rename(path+"/"+filename[0], path+"/"+artistMas[i]+ " - " + titleMas[i] + ".
mp3") except: print "Невозможно переименовать, оставляю изначальное имя файла!" print " " print "Задание завершено! Удачи!"

Вот и все. Скрипт был проверен несколько раз, всегда успешно — бэкап делался на 100%, с докачкой и прочим.

Стоит также заметить, что в linux не обязательно класть его туда, где будет создан каталог download, достаточно перейти туда командой cd и запустить скрипт по прямому пути.
cd /data/vkmusic
python /home/zhbert/projects/pufrabvk.py

Как это будет в Windows я не помню, так как давно уже в глаза ее не видел.

Описание и сам файлик лежат тут.

Ну и напоследок скриншот работы скрипта:

Добавляем музыку в вконтакте с компьютера

Главная » Музыка

Просмотров 4.1к. Опубликовано Обновлено

Хорошего дня, уважаемые читатели! Можно отправить друзьям любимые песни по электронной почте, передать запись на диске или флэшке. Впрочем, многим нравится другой способ — загружаете треки к себе вконтакте и после этого делитесь или с приятелями, группой, слушаете в любое удобное время. Закачать музыку можно с телефона, компьютера. О том, как сделать это с пк, мы сегодня и поговорим.

Содержание

  1. Как загрузить музыку в вконтакте с компьютера
  2. Выводы
  3. Видеообзор

Как загрузить музыку в вконтакте с компьютера

Прежде чем приступать к загрузке треков в «вк», ознакомьтесь с требованиями, предъявляемыми администрацией сети к размещаемым аудиозаписям.

На момент написания статьи существуют следующие ограничения:

  • каждая аудиозапись весить не больше 200 мб;
  • поддерживаемый формат — mp3;
  • при загрузке осуществляется автоматическая проверка композиций на предмет нарушения авторских и других прав.

Если вы уверены, что все эти правила соблюдены, смело входите в свой аккаунт на пк и приступайте к загрузке.

Алгоритм, которого необходимо придерживаться, следующий:

  • перейдите в раздел «музыка» в меню. Появится список загруженных ранее композиций, а с правой стороны — меню;
  • нажмите на иконку облака со стрелкой, направленной вверх;
  • выберите один или несколько файлов, которые хотите закинуть в соцсеть. Они могут находиться на винчестере, диске, флэшке, подключенным к пк. На этом этапе вам еще раз напомнят об ограничениях, которые необходимо соблюдать. Заметьте, ограничение в 200 мб относится к одному файлу, а не ко всем загружаемым записям;
  • нажмите «открыть». Обычно скачивание проходит без проблем. Появляются они, если интернет слабый. Процесс скачивания можно увидеть на шкале, появившейся на экране;
  • после завершения загрузки вновь скачанные музыкальные композиции появятся в списке аудиозаписей;
  • нажмите на значок карандаша, если хотите отредактировать информацию о песне. В вашем распоряжении есть возможность указывать название, исполнителя, жанр. Есть даже поле для текста;
  • чтобы мелодия не терялась в общем списке треков, лучше добавить ее в новый или уже существующий плейлист.

Как только вы закачаете музыку, можете скинуть ее своим контактам, поделиться в группе, которой управляете, просто слушать.

Существует еще один способ скачивания аудиозаписей — их можно просто прикрепить к своей стене. Для этого на свободном месте нажмите «прикрепить» и выберите песню.

Выводы

Перекинуть песню с компа в «вконтакте» можно несколькими способами. Главное, помнить об ограничении размера файла, требованиям к формату и соблюдении авторских прав.

Видеообзор

Оцените автора

Алан Сильвестри — Контакт (музыка с кинофильма) (1997, CD)

Подробнее изображения

1 Ужасные отходы пространства 1:41
2 elli 3:23
3 The Primer 6:19
4 Really Confused 1:18
5 Test Run Bomber 4:25
6 Heart Attack 1:29
7 Media Event 1:24
8 Button Me Up 1: 18
9 Good To Go 5:11
10 No Words 1:42
11 Small Moves 5:35
12 I Believe Her 2:31
13 Contact — End Credits 7:58

  • Composed By, Conductor, Producer – Alan Silvestri
  • Edited Автор — Кеннет Карман
  • Под редакцией [Ассистент] — Жаки Тагер
  • Инженер [Ассистент] — Дэйв Маркетт*, Сью Маклин, Том Хардисти
  • Организатор — Уильям Росс
  • Другое [Исполнительный директор Warner Bros. Records] — Дэнни Брамсон
  • Другое [Руководители Warner Bros.] — Гэри Лемел и Дуг Фрэнк
  • Другое [Подготовка музыки] — Музыкальная служба Джоанн Кейн
  • Другое [Координатор по озвучиванию] — Сэнди ДеКресент
  • Программирование [Synclavier] — Саймон Фрэнглен Записал, свел – Деннис Сэндс

Музыка из фильма Роберта Земекиса «Контакт».

(C)(P)1997 Warner Bros. Records Inc. для США и WEA International Inc. для всего мира за пределами США
Художественное произведение кинофильма, товарные знаки и авторские права © 1997 Warner Bros.

Сделано в Германии

  • Штрих-код: 0 9362-46811-2 0
  • Матрица/биение (вариант 1): 9362-46811-2 09/97
  • Mastering SID Code (вариант 1): IFPI L011
  • Mold SID Code (вариант SID Code (вариант 1) 1): IFPI 0528
  • Matrix / Runout (вариант 2): Warner [логотип] 9362-46811-2 09/97
  • Mastering SID Code (вариант 2): IFPI L011
  • Mold SID Code (вариант 2): IFPI 05D2
  • Другое (боковой текст плесени, зеркальное — вариант 2): 26
  • Общество правона Музыка из кинофильма) (CD, альбом, HDCD) Warner Bros. Records 9 46811-2 US 1997

    Новая подчинение

    Контакт (Музыка из кинофильма) (кассета, альбом) Warner Bros. Records 9362-46811-4 Индонезия 1997

    Новая подчинение

    Contact (Music Picture) (CD, Альбом) BROS. 9 46811-2 US 1997

    Новое представление

    Контакт (Blu-ray,) Warner Bros. Records 06414 US 2009
    • Star Wars Episode III · Revenge Of The Sith (Original Motion Picture Soundtrack)

      John Williams (4)

    • Avatar (Music From The Motion Picture)

      James Horner

    • Гарри Поттер и узник Азкабана (музыка из кинофильма и вдохновлена ​​им)

      Джон Уильямс (4)

    • Титаник (музыка из кинофильма)

      Джеймс Хорнер

    • Маска Зорро (Музыка из кинофильма)

      Джеймс Хорнер

    • Соло: Звёздные войны. Музыка из кинофильма)

      Ханс Циммер

    • Патриот (музыка к фильму)

      Джон Уильямс (4)

    • Индиана Джонс: Сборник саундтреков

      John Williams (4)

    • Deep Impact (Music From The Motion Picture)

      James Horner

    Редактировать выпуск
    Недавно отредактированный 9014 Все версии этого выпуска03

    Купить CDSELL CD

    • : 92
    • хочу: 25
    • AVG Рейтинг: 4,33 / 5
    • Рейтинг: 3
    • Последний Медиана: €8,00
    • Максимум: €19,60

    Markus, jweijde, Blazer1985, NilsJohan

    Сообщить о подозрительной деятельности

    узнать о бронировании вас, следить за вами в социальных сетях или делиться предстоящими возможностями.

    Часто эти страницы игнорируются, мало используются и содержат только основную информацию. Многие группы и музыканты просто «отмечают» наличие контактной страницы. К сожалению, они полностью упускают шанс привлечь внимание.

    Мы расскажем, как создать контактную страницу, которая побудит посетителей сайта начать разговор.

    Что должно быть на странице контактов?

    Проще говоря, цель страницы контактов — предоставить посетителям возможность связаться с вами. Однако есть много других элементов, которые следует учитывать и использовать для стимулирования взаимодействия и побуждения посетителей к действию.

    Прямая контактная информация

    Некоторым людям совершенно не нравится идея использования контактной формы на веб-сайте. Существует (действительный) страх, что сообщение исчезнет в эфире Интернета, и его никогда не прочитают. Другие посетители могут быть обеспокоены разглашением своего адреса электронной почты, опасаясь его продажи или рассылки спама. Профессионалы просто предпочтут прямой контакт. Скорее всего, если СМИ попытаются связаться с вами, им понадобится прямой способ связаться с вами. Вот почему вам следует серьезно подумать о том, чтобы добавить номер телефона и/или адрес электронной почты на страницу контактов вашей группы.

    Менеджмент и связь с прессой

    Если у вас есть руководство или пресс-служба, вы можете добавить их контактную информацию на эту страницу. Разные точки соприкосновения не только передают ощущение профессионализма, но и дают посетителям четкое представление о том, с кем им стоит поговорить.

    Веб-сайт FLOW отлично справляется со списком соответствующих контактов для каждой цели.

    Ссылки на социальные сети

    Даже если у вас есть ссылки на социальные сети, отображаемые где-то еще на вашем сайте, добавьте их здесь. Это хорошая идея, чтобы все средства связи вашей группы находились в одном месте. Социальные платформы — один из самых простых и лучших способов взаимодействия с вашими поклонниками. Вы хотите, чтобы им было легко найти вас на этих платформах.

    Подписка на рассылку новостей

    Подумайте о том, чтобы дать своим посетителям возможность подписаться на ваш список адресов электронной почты на странице контактов. Информационные бюллетени — отличный способ оставаться на связи и быть в центре внимания своей аудитории. Вы можете использовать свой список для продвижения концертов, товаров, мероприятий и всего остального, о чем вы хотите, чтобы ваши поклонники знали.

    Ссылка на ваш EPK

    В прошлом мы уже говорили о том, насколько важным может быть электронный пресс-кит, когда вы пытаетесь организовать шоу. Если ваша группа недостаточно велика, чтобы требовать отдельной страницы для прессы, страница контактов — отличный выбор для ссылки на ваш EPK. Убедитесь, что он хорошо оформлен и передает ощущение профессионализма.

    Контактная форма

    Несмотря на некоторые из перечисленных выше проблем, контактные формы по-прежнему являются отличным способом, с помощью которого посетители могут связаться с вами. Если у вас есть контактные лица для бронирования, прессы, менеджмента и т. д., рассмотрите возможность создания контактной формы для общих сообщений группе. Побуждение посетителей поздороваться — это отправная точка для построения отношений и создания настоящих поклонников. Вам нужно убедиться, что ваши формы работают и что вы регулярно проверяете свой почтовый ящик и отвечаете на сообщения.

    Если вы ищете отличный плагин контактной формы, мы предлагаем Contact Form 7 или модуль контактной формы Jetpack. Чтобы ограничить заполнение форм спамом, вы можете использовать интеграцию с контактной формой 7 reCaptcha или добавить другой плагин, подобный этому.

    Будьте внимательны

    Будьте внимательны к конфиденциальности пользователя — многие люди неохотнее оставляют свой личный номер телефона, чем адрес электронной почты. На самом деле нет необходимости запрашивать конфиденциальную информацию, вы же не хотите отпугивать людей. Также подумайте, какие трения вы можете невольно вызвать, сделав нерелевантные поля обязательными.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Закрыть
Menu