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.

Linux GUI app to codon optimize many single-fasta files with coding sequences , using many taxonomy ids

codon_optimize_cds_with_many_taxids_singlefasta Linux GUI app to codon optimize many single-fasta files with coding sequences, using many taxonomy ids

Olga Tsiouri 1 Jan 23, 2022
Buildium-to-stessa - Automation to assist in converting Buildium transactions into Stessa format

Buildium Transactions - Stessa Transactions There is currently no third-party i

Austin Comstock 4 Apr 17, 2022
CarolinaCon CTF Online

CarolinaCon Online CTF CTF challenges from CarolinaCon Online April 23 through April 25, 2021. All challenges from the CTF will eventually be here. Co

49th Security Division 6 May 04, 2022
NYCU(NCTU)-差勤-助教

NCTU-TA-fill 填寫 差勤-助教時數 有沒有覺得在差勤系統填助教時數有點浪費生命? 今天有個懶鬼浪費好多時間幫大家寫了code 只要填好的必要的資料,就可以讓電腦自動幫你完成差勤助教的時數填寫喔! https://pt-attendance.nctu.edu.tw/verify/userL

14 Dec 21, 2021
MIB2 STD ZR Firmware Upgrade

Upgrade MIB2 STD ZR Firmware (without Navigation) About This repository contains some scripts and documentation how to upgrade the MIB2 firmware to a

Fabian 18 Dec 29, 2022
This program generates automatically new folders containing old version of program

Automated Folder Versions Generator by Sergiy Grimoldi - V.0.0.2 This program generates automatically new folders containing old version of something

Sergiy Grimoldi 1 Dec 23, 2021
Project issue to website data transformation toolkit

braintransform Project issue to website data transformation toolkit. Introduction The purpose of these scripts is to be able to dynamically generate t

Brainhack 1 Nov 19, 2021
JimShapedCoding Python Crash Course 2021

Python CRASH Course by JimShapedCoding - Click Here to Start! This Repository includes the code and MORE exercises on each section of the entire cours

Jim Erg 64 Dec 23, 2022
Get you an ultimate lexer generator using Fable; port OCaml sedlex to FSharp, Python and more!

NOTE: currently we support interpreted mode and Python source code generation. It's EASY to compile compiled_unit into source code for C#, F# and othe

Taine Zhao 15 Aug 06, 2022
A set of tools for ripping music from Konami mobile games

Konami Mobile Ripping Toolset A set of tools for ripping music from Konami mobile games Contents nigger.py for niggering konami's website, ripping all

5 Oct 20, 2022
Repository voor verhalen over de woningbouw-opgave in Nederland

Analyse plancapaciteit woningen In deze notebook zetten we cijfers op een rij om de woningbouwplannen van Nederlandse gemeenten in kaart te kunnen bre

Follow the Money 10 Jun 30, 2022
My HA controller for veg and flower rooms

HAGrowRoom My HA controller for veg and flower rooms I will do my best to keep this updated as I change, add and improve. System heavily uses custom t

4 May 25, 2022
VCM EE1.2 P-layer feature map anchor generation 137th MPEG-VCM

VCM EE1.2 P-layer feature map anchor generation 137th MPEG-VCM

IPSL 6 Oct 18, 2022
Small scripts to learn about GNOME internals

gnome-hacks This is a collection of APIs that allow programmatic manipulation of the GNOME shell. If you use GNOME (the default graphical shell in Ubu

Alex Nichol 5 Oct 22, 2021
List of all D&D 5e monsters: WotC + popular third-party sourcebooks

Xio's Guide to Monsters If you're a DM like me, and you have multiple sources of D&D 5e monsters that include WotC as well as third-party suppliers, y

20 Jan 06, 2023
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
Draw random mazes in python

a-maze Draw random mazes in python This program generates and draws a rectangular maze, with an entrance on one side and one on the opposite side. The

Andrea Pasquali 1 Nov 21, 2021
This repository holds those infrastructure-level modules, that every application requires that follows the core 12-factor principles.

py-12f-common About This repository holds those infrastructure-level modules, that every application requires that follows the core 12-factor principl

Tamás Benke 1 Dec 15, 2022
fast_bss_eval is a fast implementation of the bss_eval metrics for the evaluation of blind source separation.

fast_bss_eval Do you have a zillion BSS audio files to process and it is taking days ? Is your simulation never ending ? Fear no more! fast_bss_eval i

Robin Scheibler 99 Dec 13, 2022
The purpose is to have a fairly simple python assignment that introduces the basic features and tools of python

This repository contains the code for the python introduction lab. The purpose is to have a fairly simple python assignment that introduces the basic

1 Jan 24, 2022