Vk save com что это

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

Цели

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

За дело!

Процесс создания подобного приложения уже не раз описан на хабре, поэтому повторять все подробности не стану, опишу шаги работы вкратце, а еще скажу пару слов о пролемах. Чтобы статья не была перегружена исходниками, в конце будет ссылка на github.

save any video from vk

Соображения по ходу разработки
  • Прежде всего, потребуется завести себе id приложения. Важно, чтобы тип был standalone, иначе некоторые методы vk api будут недоступны.
  • Еще нужен id пользователя, данные которого будем сохранять. Свой найти можно на странице настроек
  • Чтобы приложение работало, нужно разрешение пользователя, а точнее, access token. Прямого неинтерактивного способа получить токен нет, можно парсить страницу авторизации, но проще — попросить пользователя нажать на кнопку в браузере и скопировать url. За это отвечает функция auth():

url = «https://oauth.vk.com/oauth/authorize?» + «redirect_uri=https://oauth.vk.com/blank.html» + «client_id=%sdisplay=wap» % (args.app_id, «,».join(args.access_rights)) print(«Please open this url:nnt<>n».format(url)) raw_url = raw_input(«Grant access to your acc and copy resulting URL here: «) res = re.search(‘access_token=([0-9A-Fa-f]+)’, raw_url, re.I)
if result[u’error’][u’error_code’] == 6: # too many requests logging.debug(«Too many requests per second, sleeping..») sleep(1) continue
print(«They want you to solve CAPTCHA. Please open this URL, and type here a captcha solution:») print(«nt<>n».format(data[u’error’][u’captcha_img’])) solution = raw_input(«Solution python»>result = unicode(re.sub(‘[^+=-()$!#% (<>)».format(counter) + ext while exists(fname) and isfile(fname): counter += 1 name, ext = splitext(fname) fname = name[:-4] + » (<>)».format(counter) + ext

Еще по теме:  Как выкладывать видео в ВК
Продолжим

Код обращения к api взят из статьи хабраюзера dzhioev, и добавлена обработка ситуаций, описанных выше. Чтобы было, что сохранять (в случае с обработкой стены), надо сначала узнать количество постов:

vk saver

#determine posts count (response, json_stuff) = call_api(«wall.get», [(«owner_id», args.id), («count», 1), («offset», 0)], args) count = response[0]

Дальше запрашиваем каждый пост по отдельности и разбираем его
for x in xrange(args.wall_start, args.wall_end): (post, json_stuff) = call_api(«wall.get», [(«owner_id», args.id), («count», 1), («offset», x)], args) process_post((«wall post», x), post, post_parser, json_stuff)

Результат запроса — это набор данных в JSON, которые разбираются в стандартные для python’а структуры с помощью json.loads() из стандартной библиотеки. В итоге, имеем хэш-массив, в котором некоторые поля (ключ-значение) несут полезную нагрузку, а остальные нас не интересуют. Чтобы руками не писать, какое поле каким методом обрабатывать, воспользуемся мощью рефлексии: будем искать метод, имя которого совпадает с интересующим ключом.

for k in raw_data.keys(): try: f = getattr(self, k) keys.append(k) funcs.append(f) except AttributeError: logging.warning(«Not implemented: <>».format(k)) logging.info(«Saving: <> for <>».format(‘, ‘.join(keys), raw_data[‘id’])) for (f, k) in zip(funcs, keys): f(k, raw_data)

Парсим

Теперь нужно разбираться с полями ответа. Интересные — это attachments, text, comments. Attachments — это список приложений к посту (аудио, картинки, документы, заметки), надо уметь скачивать каждый тип. Определяемся, каким методом обрабатывать каждый attachment, аналогичным способом: по типу аттача ищем метод с подходящим именем. Вот пример «качалки» для аудио:

def dl_audio(self, data): aid = data[«aid»] owner = data[«owner_id»] request = «<>_<>».format(owner, aid) (audio_data, json_stuff) = call_api(«audio.getById», [(«audios», request), ], self.args) try: data = audio_data[0] name = u» — .mp3″.format(**data) self.save_url(//h.amazingsoftworks.com/data[«url»], name) except IndexError: # deleted 🙁 logging.warning(«Deleted track: <>».format(str(data))) return # store lyrics if any try: lid = data[«lyrics_id»] except KeyError: return (lyrics_data, json_stuff) = call_api(«audio.getLyrics», [(«lyrics_id», lid), ], self.args) text = lyrics_data[«text»].encode(‘utf-8’) .

К сожалению, изъятые по просьбе правообладателей аудиозаписи больше не доступны, для них возвращается пустой ответ.

Еще по теме:  Как найти в ВК человека из друг вокруг

А остальное?

Методы обработки картинок, текста, заметок, закачки документов и остальное — в github. Скажу только, что все аналогично приведенным примерам. Еще скрипт имеет аргументы командной строки, их описывать в статье смысла нет. Примеры и прочие подробности — в readme.

TODO

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

На последок

Код далек от идеала и не отличается отсутствием костылей, но выполняет поставленную задачу. Надеюсь, кому-то пригодится моя поделка, для сохранения своих записей/документов/музыки, или для обучения.

UPD 18.12.2016

Юзер hiwent говорит, что с 16.12.2016 года vk закрыли возможность использовать API для работы с аудиозаписями. В связи с этим, функционал скрипта, предусмотренный для сохранения аудиозаписей, не работает. В связи с этим можно попробовать «прикинуться» родным приложением vk, апример андроид-версией, или kate mobile. Для них возможность работать с аудиозаписями никуда не пропадет, хотя может быть методы отличаются.

Источник: h.amazingsoftworks.com

О сервисе

Скачать музыку Вконтакте

Наш ресурс имеет понятный и удобный интерфейс, подобный сайту ВКонтакте, разобраться в котором Вам будет максимально просто.

В главном разделе Вы можете найти подборки по настроению, чарты: треков, альбомов, новых исполнителей.

Артисты — быстрый доступ ко всей коллекции треков, плейлистов, альбомов.

Сообщества-кураторы — публикуют музыкальные релизы и авторские материалы по ним, а также собирают плейлисты.

Для доступа к аудиозаписям своего профиля — достаточно авторизоваться через приложение или вставить ссылку на свою страницу.

Слушайте онлайн и офлайн, встроенный плеер позволит перемещаться по каталогу и погрузиться в мир музыкы, без прерываний.

Найдите нужную песню или подборку из 100 000 000+ доступных плейлистов и 50 000 000+ оригинальных треков.

Источник: vk-save.com

VK Video Downloader – Quick, Free and Unlimited

If you’re watching a fascinating video on VK, you may wonder if there’s a way to download it to your computer. VK, which is similar to Facebook, allows users to add friends, post status updates, links, photos, and videos, but there’s no direct option to download VK videos.

Еще по теме:  Как удалить вакансию в ВК работа

However, you can use EZ Video Downloader website, a downloading site that makes it easy to download videos from VK. Here’s how:

How to Download a VK Video without Using Software on Your PC

Many popular online video downloaders don’t support downloading video and music from VK, but FreeDownloadVideo.net does it well.

FreeDownloadVideo.net is a simple VK downloader that can help you save VKontakte video files to your computer effortlessly. And all of its features are offered to users for free.

Steps to Use VK Video Downloader to Save a VK Video

  1. Find the VK.com URL of the video you want to download. You don’t need to play the video, just right-click on it and copy the video link if you are an anonymous user.
  2. Visit FreeDownloadVideo.net and paste the copied link into the text field. Click the “Download” button.
  3. Select the format you want to download the video in from the available options and click the download icon.

Screenshot of a VK video download page

Screenshot of a VK video download page

Screenshot of a VK video download page

Simple Steps to Download VK Videos on Your Mobile Devices

If you want to download VK videos on your mobile devices, follow these simple steps:

Save a Video from VK to Android for Free

  1. Launch your VK app and find the video you want to save. Tap the Share button below the display and choose Copy link.
  2. Open https://freedownloadvideo.net/ on your browser. At the homepage, you can see a big box with the caption “Enter video URL”. Paste the media file URL in that box and tap Download button.
  3. After pasting and clicking on the download button, select your desired video quality and format. Click on the Download icon.

Insanely Fast Download VK Videos on iOS

  1. Run your VK app, scroll to the video you want to download, find the Share button and tap it, then choose Copy Link.
  2. Go to https://freedownloadvideo.net directly on the browser of your device. Paste the URL into the text box and tap Download.
  3. Choose quality and format from the download options on the new tab, then tap Download.

Qhttps://freedownloadvideo.net/vk-video-downloader» target=»_blank»]freedownloadvideo.net[/mask_link]

Рейтинг
( Пока оценок нет )
Загрузка ...