Purge your likes and wall comments from VKontakte. Set yourself free from your digital footprint.

Overview

vk_liberator

Regain liberty in the cruel social media world.

This program assists you with purging your metadata from Russian social network VKontakte, owned by Mail.ru.

Руководство на русском языке

Motivation

I′ve heard a lot of news about random people getting into jail because, apparently, Russian department of defense called “ФСБ” (Federal Security Service) didn't like a meme with Jesus Christ on it posted by the person 10 years ago or an ironic wall post that mentioned Russian government in a not-so-positive way.

Of course, I wouldn′t want to meet the same fate. Not only that, but I′m also sure a lot of people are not the same people they were 10 years ago. Just remember those old stupid memes, the manner of speech most of Internet users had, the wildness of everyday life in the web. Internet of the past was a place for enthusiaists not having evil objectives, unlike today's megacorps wanting more money. The culture has already changed, and it's not getting better. Nowadays it′s no longer considered normal to post your honest opinion, to have fun, to be whoever you really are. HR at big companies are already taking interviewee′s Internet social past into account when considering hiring them! Your data is not longer yours anymore. Now you are the product. So why should I let it be like this?

That′s why I built this program. It makes the process of deleting your metadata from VKontakte easy and painless.

Usage

To use this program, you need to get an archive of your data from VK. You can start the export process on this page. Make sure you check Comments when choosing what data to export, or you won′t be able to delete them!. The process usually takes from 2 to 3 days, and the resulting archive only contains metadata, not the actual content, weighing 150 MB at max zipped.

As of now, the program supports the deletion of your likes (essentially, un-liking all posts you′ve ever pressed that heart icon on) and the deletion of your wall comments. Adding support for more object types is pretty trivial, so if you feel the need for more, you′re always welcome to submit a pull request!

Once you get the archive, follow the guide:

  1. Download Python interpreter from the official website, if not already. There are builds available for all major platforms. If you′re using Linux or macOS, chances are you already have it.
  2. Download the program. Grab the latest archive and unpack it somewhere you have enough place to store the archive.
  3. Create a folder in the same directory you′ve unpacked the program and call it, let′s say, "vk". Unpack the archive to the "vk" folder we′ve mentioned before. Make sure all files and directories (such as comments, likes, profile) are all in the aforementioned folder.
  4. Start up a command prompt in the program directory:
    • On Windows: open the folder → Shift+RMB → Open command window here;
    • On macOS: open Terminal.app → cd (trailing space intended) → drag the folder into the terminal window → press Enter
  5. Install the dependencies: pip3 install -r requirements.txt
  6. Run the program: python3 main.py YOUR_FOLDER_HERE --crawl-all, replacing YOUR_PROGRAM_HERE with the folder name you′ve unpacked the export to (in my case, it would′ve been vk).
  7. Now you need to get the access token. Go to this page. The access token never leaves your device and is only known to you and VKontakte. You can verify the authenticity by clicking on app′s name on the page. You should be redirected to the official VK API community.
  8. Click Allow (Разрешить), then copy a part of the URL between access_token= and &expires_in.
  9. Paste it into the terminal and press Enter. Review the statistics and confirm. The export process should begin shortly afterwards.

By default the program finds all items it can understand and runs the deletion process, prompting for a captcha in the terminal window. If you want to customize the behavior, read further.

Choosing what to delete

vk_liberator has a set of command-line switches for choosing the types of objects to delete:

  • --crawl-likes enables deleting of likes,
  • --crawl-comments enables deleting of comments.

There is another switch called --crawl-all, which enables all types mentioned before and makes the aforementioned flags toggle the corresponding types off, not on to allow exclusion.

There are many other command-line switches available. You can run the program with --help to learn more.

Unliking comments

The export archive from VKontakte contains pretty much all info about your liked posts, photos and videos. However, it doesn′t have anything about your liked comments, so you need to do some semi-manual work to retrieve a list of them.

The process roughly expands as follows:

  1. first, you delete your likes the usual way;

  2. after all likes were deleted, you go to vk.com → “Liked” newsfeed section;

  3. scroll all the way down (you can use PgDown or End keys);

  4. run this script:

    console.log(Array.from(document.querySelectorAll('.post_link:first-child')).map(el => el.href).join('\n'))
  5. create YOUR_EXPORT_DIR/likes/comments/ folder and copy the output to comments.html;

  6. move everything else out of YOUR_EXPORT_DIR/likes/ because it was already deleted;

  7. delete your resume file (resume.bin);

  8. and run the program again with the same arguments.

I might optimize this in the future to make it more user-friendly, because it′s a pain and requires knowing some internals, but right now it′s done like that.

Telegram integration

Sitting on your computer and solving the captchas all day can be pretty tedious, but you can make this process a little bit easier with Telegram integration. I′ve used this to solve captchas from my smartphone, and it was definitely easier than doing it on PC.

To enable it, you need to: 0. Register in Telegram, if you haven't already.

  1. Create a bot in BotFather. Type /newbot, then follow the instructions.
  2. Start the dialog with your bot. Open a link to your bot′s profile in BotFather′s message and press Start. This is required in order to receive messages!
  3. Don′t delete the message from BotFather with the bot token — we′ll need it later. Now, let′s get your profile ID. You can easily do this by messaging IDBot on Telegram, sending a /getid command and copying the ID you got back.
  4. Run the program again, but this time add --telegram-chat <your ID goes here> switch. Like this: python3 main.py YOUR_FOLDER_HERE --crawl-all --telegram-chat YOUR_ID.
  5. When the program asks you for a bot token, copy and paste it from your dialog with BotFather.

Voilà! Now you should be getting asked by the bot for captcha.

Anti-captcha.com integration

But this doesn′t really solve the actual problem — the captcha. VKontakte′s limits are pretty strict. You can get a captcha or two when deleting your comments, but rate limits for deleting likes are much stricter — you′re guaranteed to run into a captcha approximately every 50 requests, no matter the delay between requests.

That′s why you can pay with your money instead of your precious time. The program supports integration with Anti-captcha.com (ex-Antigate) to ease your torment. The prices are pretty cheap — I′ve paid $1 for 25K of my VK requests (divide that by 40 to get an approximate count of captcha requests).

  1. Register on anti-captcha.com, follow the instructions, get your API key.
  2. Run the program with --anticaptcha switch.
  3. Paste your API key when asked. Done!

Something doesn′t work?

If you have a question, you can open a new thread on Discussions tab. I′ll try to answer shortly.

If you′ve found a bug or you want to suggest a feature, check for duplicates in Issues tab and, if there′s none, create a new issue! Perhaps someone has run into the same problem as you before.

Planned features

  • Easy installation
  • Custom progress bar
  • More object types (wall posts, photos...)
  • Archiving

Contributions

I′m open to pull requests! Take a look at the list of planned features above.

Automated moth pictures for biodiversity research

Automated moth pictures for biodiversity research

Ludwig Kürzinger 1 Dec 16, 2021
El Niño - Southern Oscillation analysis compared to minimum flow rates of rivers in northeast Brazil

ENSO (El Niño - Southern Oscillation) analysis in northeast Brazil É comprovada a influência dos fenômenos El Niño e La Niña nas secas no nordesde bra

Weyder Freire 1 Jan 13, 2022
Blender addon, import and update mixamo animation

This is a blender addon for import and update mixamo animations.

ywaby 7 Apr 19, 2022
poro is a LCU interface to change some lol's options.

poro is a LCU interface to change some lol's options. with this program you can: change your profile icon change your profiel background image ch

João Dematte 2 Jan 05, 2022
It converts ING BANK account historic into a csv file you can import in HomeBank application.

ing2homebank It converts your ING Bank account historic csv file into another csv file you can import in HomeBank application

1 Feb 14, 2022
用于导出墨墨背单词的词库,并生成适用于 List 背单词,不背单词,欧陆词典等的自定义词库

maimemo-export 用于导出墨墨背单词的词库,并生成适用于 List 背单词,欧陆词典,不背单词等的自定义词库。 仓库内已经导出墨墨背单词所有自带词库(暂不包括云词库),多达 900 种词库,可以在仓库中选择需要的词库下载(下载单个文件的方法),也可以去 蓝奏云(密码:666) 下载打包好

ourongxing 293 Dec 29, 2022
Programming labs for 6.S060 (Foundations of Computer Security).

6.S060 Labs This git repository contains the code for the labs in 6.S060. In these labs, you will add a series of security features to a photo-sharing

MIT PDOS 10 Nov 02, 2022
Data derived from the OpenType specification

This package currently provides the opentypespec.tags module, which exports FEATURE_TAGS, SCRIPT_TAGS, LANGUAGE_TAGS and BASELINE_TAGS dictionaries, representing data from the Layout Tag Registry

Simon Cozens 4 Dec 01, 2022
Open slidebook .sldy files in Python

Work in progress slidebook-python Open slidebook .sldy files in Python To install slidebook-python requires Python = 3.9 pip install slidebook-python

The Institute of Cancer Research 2 May 04, 2022
Data Science Course at Dept. of Computer Engineering, Chula 2022

2110446 Data Science Course at Chula 2022 Short links for exercises: Week1: Intro to Numpy, Pandas Numpy: https://colab.research.google.com/github/kao

Kao Panboonyuen 17 Nov 27, 2022
Provide Prometheus url_sd compatible API Endpoint with data from Netbox

netbox-plugin-prometheus-sd Provide Prometheus http_sd compatible API Endpoint with data from Netbox. HTTP SD is a new feature in Prometheus and not a

Felix Peters 66 Dec 19, 2022
edgetest is a tox-inspired python library that will loop through your project's dependencies, and check if your project is compatible with the latest version of each dependency

Bleeding edge dependency testing Full Documentation edgetest is a tox-inspired python library that will loop through your project's dependencies, and

Capital One 16 Dec 07, 2022
Gba-free-fonts - Free font resources for GBA game development

gba-free-fonts Free font resources for GBA game development This repo contains m

28 Dec 30, 2022
Generates images with semantic content from distribution A in the style of distribution B

A2B Generates images with semantic content from distribution A in the style of d

Richard Herbert 2 Dec 27, 2021
Arknights gacha simulation written in Python

Welcome to arknights-gacha repository This is my shameless attempt of simulating Arknights gacha. Current supported banner types (with potential bugs)

Swyrin 3 May 07, 2022
Never miss a deadline again

Hack the Opportunities Never miss a deadline again! Link to the excel sheet Contribution This list is not complete and I alone cannot make it whole. T

Vibali Joshi 391 Dec 28, 2022
This library is an abstraction for Splunk-related development, maintenance, or migration operations

This library is an abstraction for Splunk-related development, maintenance, or migration operations. It provides a single CLI or SDK to conveniently perform various operations such as managing a loca

NEXTPART 6 Dec 21, 2022
Flask-built web application that simulates a time and cost calculator for charging Electric Vehicles.

ev_charging_calculator Flask-built web application that simulates a time and cost calculator for charging Electric Vehicles. The project aims to simul

1 Nov 03, 2021
DSG - Source code for Digital Scholarship Grant project.

DSG Source code for Dr. Stephanie Tsang's Digital Scholarship Grant project. Work performed by Mr. Wang Minghao while as her Research Assistant. The s

1 Jan 04, 2022
Simple tooling for marking deprecated functions or classes and re-routing to the new successors' instance.

pyDeprecate Simple tooling for marking deprecated functions or classes and re-routing to the new successors' instance

Jirka Borovec 45 Nov 24, 2022