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.

An animal facts python module

An animal facts python module

Fayas Noushad 3 Dec 19, 2021
A script that will warn you, by opening a new browser tab, when there are new content in your favourite websites.

web check A script that will warn you, by opening a new browser tab, when there are new content in your favourite websites. What it does The script wi

Jaime Álvarez 52 Mar 15, 2022
Projects and assets from Wireframe #56

Wireframe56 Projects and assets from Wireframe #56 Make a Boulder Dash level editor in Python, pages 50-57, by Mark Vanstone. Code an homage to Bubble

Wireframe magazine 10 Sep 07, 2022
pyshell is a Linux subprocess module

pyshell A Linux subprocess module, An easier way to interact with the Linux shell pyshell should be cross platform but has only been tested with linux

4 Mar 02, 2022
Lightweight and Modern kernel for VK Bots

This is the kernel for creating VK Bots written in Python 3.9

Yrvijo 4 Nov 21, 2021
Imitate Moulinette written in Python

Imitate Moulinette written in Python

Pumidol Leelerdsakulvong 2 Jul 26, 2022
banking system with python, beginner friendly, preadvanced level

banking-system-python banking system with python, beginner friendly, preadvanced level Used topics Functions else/if/elif dicts methods parameters hol

Razi Falah 1 Feb 03, 2022
A Python utility belt containing simple tools, a stdlib like feel, and extra batteries. Hashing, Caching, Timing, Progress, and more made easy!

Ubelt is a small library of robust, tested, documented, and simple functions that extend the Python standard library. It has a flat API that all behav

Jon Crall 638 Dec 13, 2022
Autogenerador tonto de paquetes para ROSCPP

Autogenerador tonto de paquetes para ROSCPP Autogenerador de paquetes que usan C++ en ROS. Por ahora tiene las siguientes capacidades: Permite crear p

1 Nov 26, 2021
Structured, dependable legos for starknet development.

Structured, dependable legos for starknet development.

Alucard 127 Nov 23, 2022
A Blender addon for VSE that auto-adjusts video strip's length, if speed effect is applied.

Blender VSE Speed Adjust Addon When using Video Sequence Editor in Blender, the speed effect strip doesn't auto-adjusts clip length when changing its

Arpit Srivastava 2 Jan 18, 2022
Basic-Killfeed - A simple DayZ Console Killfeed

Basic-Killfeed A simple DayZ Console Killfeed. Setup Install Python Version 3.10

Nick 1 Apr 25, 2022
pyToledo is a Python library to interact with the common virtual learning environment for the Association KU Leuven (Toledo).

pyToledo pyToledo is a Python library to interact with the common virtual learning environment for the Association KU Leuven a.k.a Toledo. Motivation

Daan Vervacke 5 Jan 03, 2022
Quantity Takeoff with Python. Collecting groups of elements by filters

The free tool QuantityTakeoff allows you to group elements from Revit and IFC models (in BIMJSON-CSV format) with just a few filters and find the required volume values for the grouped elements.

OpenDataBIM 9 Jan 06, 2023
Python - Aprendendo Python na ByLearn

PYTHON Identação Escopo Pai Escopo filho Escopo neto Variaveis

Italo Rafael 3 May 31, 2022
Цифрова збрoя проти xуйлoвської пропаганди.

Паляниця Цифрова зброя проти xуйлoвської пропаганди. Щоб негайно почати шкварити рашистські сайти – мерщій у швидкий старт! ⚡️ А коли ворожі сервери в

8 Mar 22, 2022
mypy plugin for PynamoDB

pynamodb-mypy A plugin for mypy which gives it deeper understanding of PynamoDB (beyond what's possible through type stubs). Usage Add it to the plugi

1 Oct 21, 2022
Prototype application for GCM bias-correction and downscaling

dodola Prototype application for GCM bias-correction and downscaling This is an unstable prototype. This is under heavy development. Features Nothing!

Climate Impact Lab 9 Dec 27, 2022
A simple hash system.

PBH-Hash-System A simple hash system. Usage You could use it like this: from pbh import pbh print(pbh("Hey", True)) Output: 2feae2471698cfcdcbd6b98ca

Karim 3 Mar 24, 2022
YBlade - Import QBlade blades into Fusion 360

YBlade - Import QBlade blades into Fusion 360 Simple script for Fusion 360 that takes QBlade blade description and constructs the blade: Usage First,

Jan Mrázek 37 Sep 25, 2022