{"id":15134081,"url":"https://github.com/dvamishkilapa/vkarchivedownloader","last_synced_at":"2025-10-23T09:31:23.859Z","repository":{"id":37449426,"uuid":"504546327","full_name":"DvaMishkiLapa/VKArchiveDownloader","owner":"DvaMishkiLapa","description":"Утилита для скачивания всех вложений, которые можно получить из архива аккаунта VKontakte","archived":false,"fork":false,"pushed_at":"2024-08-09T18:31:33.000Z","size":666,"stargazers_count":18,"open_issues_count":6,"forks_count":4,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-01-30T17:38:30.092Z","etag":null,"topics":["aiohttp","archive","asyncio","beautifulsoup4","browser","bs4","cookie","json","multithreading","parse","parser","processpoolexecutor","python","vk","vkontakte"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/DvaMishkiLapa.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2022-06-17T13:32:51.000Z","updated_at":"2024-12-05T22:40:25.000Z","dependencies_parsed_at":"2024-05-19T17:29:34.870Z","dependency_job_id":"ed5c7e06-40b8-4c5c-aaf6-fc4e5fd00fd9","html_url":"https://github.com/DvaMishkiLapa/VKArchiveDownloader","commit_stats":null,"previous_names":[],"tags_count":8,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DvaMishkiLapa%2FVKArchiveDownloader","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DvaMishkiLapa%2FVKArchiveDownloader/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DvaMishkiLapa%2FVKArchiveDownloader/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DvaMishkiLapa%2FVKArchiveDownloader/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/DvaMishkiLapa","download_url":"https://codeload.github.com/DvaMishkiLapa/VKArchiveDownloader/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":237807472,"owners_count":19369597,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["aiohttp","archive","asyncio","beautifulsoup4","browser","bs4","cookie","json","multithreading","parse","parser","processpoolexecutor","python","vk","vkontakte"],"created_at":"2024-09-26T05:02:20.163Z","updated_at":"2025-10-23T09:31:23.460Z","avatar_url":"https://github.com/DvaMishkiLapa.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# VKArchiveDownloader \u003cimg align=\"right\" width=\"128\" height=\"128\" src=\"./doc/icon.png\" alt=\"VKArchiveDownloader icon\" /\u003e\n\nУтилита для скачивания данных по ссылкам, которые можно получить из [архива](https://vk.com/faq18145) аккаунта [VKontakte](https://vk.com).\n\n- [VKArchiveDownloader ](#vkarchivedownloader-)\n  - [1. Описание работы](#1-описание-работы)\n  - [2. Результат работы](#2-результат-работы)\n    - [2.1 JSON файл с ссылками](#21-json-файл-с-ссылками)\n    - [2.2 Папки с данными](#22-папки-с-данными)\n    - [2.3 Логи работы утилиты](#23-логи-работы-утилиты)\n  - [3. Использование утилиты](#3-использование-утилиты)\n    - [3.1 Использование `Сookie` файлов браузера](#31-использование-сookie-файлов-браузера)\n    - [3.2 Настройка через файл конфигурации `config.ini`](#32-настройка-через-файл-конфигурации-configini)\n    - [3.3 Запуск утилиты, используя исходный код (рекомендуется)](#33-запуск-утилиты-используя-исходный-код-рекомендуется)\n    - [3.4 Запуск утилиты, используя собранный `exe` файл для Windows x64](#34-запуск-утилиты-используя-собранный-exe-файл-для-windows-x64)\n  - [4. Вопросы и ответы](#4-вопросы-и-ответы)\n    - [4.1 Почему нет поддержки скачивания видео?](#41-почему-нет-поддержки-скачивания-видео)\n    - [4.2 Почему в папке сообщений или в папке документов начали появляется скачивания по пути `*/text/html` без разрешения файла?](#42-почему-в-папке-сообщений-или-в-папке-документов-начали-появляется-скачивания-по-пути-texthtml-без-разрешения-файла)\n    - [4.3 Почему в логах начали часто появляется ошибки, связанные с `asyncio.TimeoutError`?](#43-почему-в-логах-начали-часто-появляется-ошибки-связанные-с-asynciotimeouterror)\n    - [4.4 Почему выдается ошибка, подобная `PermissionError: [Errno 13] Permission denied: '.../Cookies'`?](#44-почему-выдается-ошибка-подобная-permissionerror-errno-13-permission-denied-cookies)\n    - [4.5 Фактически, доступ к сжатым фото и голосовым сообщениям может получить любой человек, у которого на них есть ссылка?](#45-фактически-доступ-к-сжатым-фото-и-голосовым-сообщениям-может-получить-любой-человек-у-которого-на-них-есть-ссылка)\n    - [4.6 Как работает скачивание по ссылкам (для любопытных)?](#46-как-работает-скачивание-по-ссылкам-для-любопытных)\n    - [4.7 Чем опасно отключение проверки SSL сертификата? (флаг `disable_ssl`)](#47-чем-опасно-отключение-проверки-ssl-сертификата-флаг-disable_ssl)\n  - [5. Тесты производительности](#5-тесты-производительности)\n\n## 1. Описание работы\n\nС помощью данной утилиты возможно скачать данные по ссылкам, которые, так или иначе разбросаны по архиву [VKontakte](https://vk.com).\n\nИнформация о поддерживаемых данных, которые можно скачать:\n| Тип данных  | Поддержка | Сохранение по дате | Примечание                                                                         | Папка хранения          |\n| ----------- | :-------: | :----------------: | ---------------------------------------------------------------------------------- | ----------------------- |\n| `Сообщения` |     ✅     |         ✅          | Полная поддержка **[*]**, [кроме видео](#41-почему-нет-поддержки-скачивания-видео) | `./output/messages`     |\n| `Стена`     |     ✅     |         ✅          | Все фото со стены скачиваются из `photos` (`Фото`)                                 | `./output/photos`       |\n| `👍-\u003eФото`   |     ✅     |         ❌          | Полная поддержка **[*]**                                                           | `./output/likes/photos` |\n| `Фото`      |     ✅     |         ✅          | Полная поддержка                                                                   | `./output/photos`       |\n| `Файлы`     |     ✅     |         ✅          | Полная поддержка **[*]**                                                           | `./output/profile`      |\n| `Музыка`    |     ❌     |         ❌          | В архиве есть только названия песен, но не ссылки                                  | `-`                     |\n\n**[*]** - [Если включен доступ к `Сookie` файлам.](#31-использование-сookie-файлов-браузера)\n\n## 2. Результат работы\n\nРезультат работы утилиты будет находится в директории `output`.\n\n### 2.1 JSON файл с ссылками\n\nВ папке `output`, после работы утилиты, будет находится файл `links_info.json`. Его содержание зависит от того, какие данные были запрошены в архиве.\n\nПример `links_info.json`, где были запрошены все поддерживаемые типы данных:\n\n```json\n{\n    \"messages\": {\n        \"id диалога/беседы\": {\n            \"name\": \"Имя диалога/беседы\",\n            \"dialog_link\": \"Ссылка на диалог/беседу\",\n            \"Тип данных\": [\"Ссылки, связные с типом данных\"]\n        }\n    },\n    \"photos\": {\n        \"Имя альбома\": {\n          \"Тип данных\": [\"Ссылки, связные с типом данных\"]\n        }\n    },\n    \"likes/photo\": {\n        \"not_parse\": [\"Ссылки, связные с типом данных\"]\n    }\n\n}\n```\n\nДля каждой папки из архива, в которой происходит поиск, все ссылки отсортированы по типу контента или их поведения.\n\nВозможные типы разделения ссылок:\n\n- Разделение на основе информации о том, на что ссылается ссылка. Информация содержится в заголовке ответного запроса `content-type`, о котором [подробнее можно прочитать тут](https://developer.mozilla.org/ru/docs/Web/HTTP/Basics_of_HTTP/MIME_types). Чаще всего, встречаются следующие типы:\n  - `image/jpeg`: изображения в формате `jpeg`;\n  - `image/png`: изображения в формате `png`;\n  - `image/gif`: анимационные изображения в формате `gif`;\n  - `video/mp4`: видеофайлы в формате `mp4`;\n  - `audio/ogg`: аудиофайлы в формате `ogg`. Обычно, голосовые сообщения;\n  - `application/octet-stream`: базовый тип бинарных данных. Может быть чем угодно;\n  - `application/pdf`: файлы `PDF`;\n  - `application/msword`: файлы Microsoft Word, а именно, файлы `doc`;\n  - `application/vnd.openxmlformats`: файлы Microsoft Word, а именно, файлы `docx`;\n  - `application/zip`: `ZIP` архивы;\n  - `application/x-rar-compressed`: `RAR` архивы;\n  - `text/plain`: текстовые файлы `txt`;\n- Ссылки, связанные с [VKontakte](https://vk.com):\n  - `vk_contact`: ссылки на профили людей или сообществ;\n  - `vk_video`: ссылка на видео;\n  - `vk_story`: ссылка на истории;\n  - `vk_club`: ссылки на группы;\n- Ссылки, при работе с которыми были получены ошибки:\n  - `error`: ссылки [VKontakte](https://vk.com), переход по котором приводит к ошибке. Например, ошибке отсутствия файла на серверах;\n  - `not_parse`: ссылки, парсинг которых был неудачен или пропущен;\n- `telegram_contact`: ссылки на профили [мессенджера Telegram](https://telegram.org/);\n- `github_link`: ссылки, связанные с [GitHub](https://github.com/);\n- `aliexpress_link`: ссылки, связанные с [AliExpress](https://aliexpress.ru/);\n- `pastebin_link`: ссылки, связанные с [Pastebin](https://pastebin.com/);\n- `gdrive_link`: ссылки, связанные с [Google Drive](https://drive.google.com/);\n- `google_link`: ссылки, связанные с [Google.com](https://www.google.com/);\n- `wikipedia_link`: ссылки, связанные с [Wikipedia](https://www.wikipedia.org/);\n- `🍓`: ссылки, связанные с [PornHub](https://www.pornhub.com/);\n- `dns_shop_link`: ссылки, связанные с магазином [DNS](https://www.dns-shop.ru/);\n- `habr_link`: ссылки на [Habr](https://habr.com);\n- `onedrive_link`: ссылки, связанные с [OneDrive](https://www.microsoft.com/ru-ru/microsoft-365/onedrive/online-cloud-storage?market=ru);\n- `youtube_link`: ссылки, связанные с [YouTube](https://www.youtube.com).\n\n### 2.2 Папки с данными\n\nВ папке `output`, после работы утилиты, будут находится папки с данными, которые удалось получить.\n\nВозможные папки при условии, если присутствуют исходные данные в архиве, можно просмотреть в [таблице поддерживаемых типов данных](#1-описание-работы).\n\n### 2.3 Логи работы утилиты\n\nВ процессе работы утилиты, весь процесс работы логируется и хранится в папке `logs`.\n\n## 3. Использование утилиты\n\nПеред использованием утилиты необходимо запросить [данные архива на официальной странице VKontakte](https://vk.com/data_protection?section=rules\u0026scroll_to_archive=1).\n\n[VKontakte](https://vk.com) дает возможность архивировать разные данные, в зависимости от пожеланий и терпения. Чем больше данных выбрано, тем больше времени будет формироваться архив.\nУтилита сможет забрать любые [поддерживаемые данные](#1-описание-работы), которые найдет, вне зависимости от выбора.\n\n![Диалог выбора данных для архивирования](./doc/vk_archive.png)\n\n### 3.1 Использование `Сookie` файлов браузера\n\nУтилита поддерживает использование `Сookie` файлов некоторых браузеров. Это может понадобится для скачивания контента, для которого необходима авторизация на сайте [VKontakte](https://vk.com).\n\nПример таких данных (сложно перечислить их всех, проще сказать, что все, кроме сжатых фото и голосовых сообщений):\n\n- Бинарные данные (`.doc`, `.docx`, `.pdf`, etc);\n- `ZIP` архивы;\n- Текстовые файлы (`.txt`, `.ini`, `.py`, etc);\n- Фото, которые были отправлены документом, чтобы избежать сжатия;\n- etc.\n\nПоддерживается множество популярных браузеров и ОС. Их список можно найти на\n[странице используемого для этого модуля `browser_cookie3`](https://github.com/borisbabic/browser_cookie3#testing-dates--ddmmyy).\n\nДля того, что утилита могла использовать такие `Сookie` файлы, достаточно авторизоваться в учетной записи [VKontakte](https://vk.com), для которой был сформирован архив\nиспользуя браузер, [который поддерживается со стороны `browser_cookie3`](https://github.com/borisbabic/browser_cookie3#testing-dates--ddmmyy).\n\n\u003e :warning: **`Сookie` файлы аккаунта будут использованы исключительно для доступа к ресурсам [VKontakte](https://vk.com) и не будут переданы на сторонние ресурсы.**\n\n### 3.2 Настройка через файл конфигурации `config.ini`\n\nРабота утилиты может быть настроена в конфигурационном файле `config.ini`.\n\nДоступные параметры:\n\n- `main_parameters` - главные параметры утилиты:\n  - `use_coockie=True` - использование `Coockie` файлов [VKontakte](https://vk.com) для скачивания документов.\n\n    `True` - использовать `Coockie` файлы, `False` - не использовать;\n\n  - `semaphore_small=10` - количество одновременных скачиваний файлов малого размера, таких, как фото.\n\n    Если скорость сети оставляет желать лучшего, стоить уменьшить данное значение.\n    10 одновременных скачиваний отлично работает на 150-200 мбит/c;\n\n  - `semaphore_big=2` - количество одновременных скачиваний файлов большого размера. Например, документы.\n\n    Если скорость сети оставляет желать лучшего, стоить уменьшить данное значение\n    2 одновременных скачиваний отлично работает на 150-200 мбит/c;\n\n  - `core_count=0` - количество потоков для поиска ссылок в архиве.\n\n    Если значение равно `0` - автоматическое определение количества используемых потоков;\n\n  - `log_level=INFO` - уровень ведения лог-файла.\n\n    `INFO` - только сообщения ошибок, предупреждений и информация.\n    `DEBUG` - сообщения ошибок, предупреждений, информации, а также сообщения отладки (для разработчика);\n\n  - `delete_output_folder=False` - нужно ли отчищать содержимое папки результата перед выполнением скрипта.\n\n    Удобнее не удалять результаты работы скрипта, если скачивание идет частями.\n    `True` - отчищать, `False` - оставить нетронутым.\n\n  - `save_by_date=False` - нужно ли разделять сохраняемые файлы по подпапкам, на основе даты `d-m-yyyy`.\n\n    Для файлов и альбомов - дата загрузки, для сообщений - дата сообщения.\n    `True` - разделять, `False` - оставить обычную логику сохранения.\n\n  - `disable_ssl=False` - отключать ли проверку SSL сертификата. [Подробнее об этом описано в Q\u0026A](#48-чем-опасно-отключение-проверки-ssl-сертификата-флаг-disable_ssl).\n\n    Шифрования трафика не будет использоваться, используйте только под вашу ответственность.\n    Стоит использовать только в безопасной сети и в случаях, когда возникают ошибки вида: \n    ```Cannot connect to host [...] certificate verify failed: self signed certificate in certificate chain```\n\n\n- `folder_parameters` - параметры папок архива.\n\n  Если любой из параметров в этой секции будет закомментирован в конфигурационном файле - парсинг папки будет пропущен.\n\n  По умолчанию, используются имена папок, которые встречаются в архиве ВК (проверено в 2024 году):\n\n  - `vk_archive_folder=Archive` - имя папки архива VK;\n\n  - `messages_folder=messages` - имя папки сообщений из архива.\n\n  - `profile_folder=profile` - имя папки профиля (документов аккаунта) из архива.\n\n  - `photos_folder=photos` - имя папки фото из архива.\n\n  - `likes_folder=likes/photo` - имя папки лайков и папки лайкнутых фото из архива.\n\n### 3.3 Запуск утилиты, используя исходный код (рекомендуется)\n\nДля запуска утилиты из исходного кода в системе должен быть установлен [Python 3.10.5 или выше](https://www.python.org/).\n\n\u003e :warning: **Для установки зависимостей в ОС Windows, [скорее всего, понадобится Microsoft Visual C++ версии 14.0 или выше.](https://stackoverflow.com/questions/40504552/how-to-install-visual-c-build-tools)**\n\nНеобходимо скачать или клонировать репозиторий в удобное для работы место. Предварительно стоит убедиться, установлен ли в системе [Git](https://git-scm.com/download/win),\nесли будет происходить клонирование репозитория, а не скачивание исходного кода с сайта.\n\nКлонирование репозитория:\n\n```bash\ngit clone https://github.com/DvaMishkiLapa/VKArchiveDownloader.git\n```\n\nВ клонированную или скачанную директорию необходимо поместить директорию архива [VKontakte](https://vk.com) `Archive`. Сделайте это любым удобным для вас способом.\n\nПосле клонирования или скачивания репозитория, а также перемещения папки `Archive`, необходимо в директории репозитория развернуть виртуальное окружение `venv`.\n\nДля ОС Windows необходимо открыть CMD, PowerShell или [Windows Terminal](https://apps.microsoft.com/store/detail/windows-terminal/9N0DX20HK701?hl=fr-ch\u0026gl=ch) в папке репозитория и ввести следующие команды:\n\n```bash\npy -m venv .venv\n```\n\n```bash\n.\\.venv\\Scripts\\activate\n```\n\n\u003e :warning: В Windows 10 и выше возможна ошибка, связанная с запретом выполнения скриптов в системе. [Тут хорошая статься с описанием и решением этой проблемы](https://www.itechtics.com/enable-script-execution-powershell/).\n\nДля ОС Linux необходимо в папке репозитория ввести следующие команды:\n\n```bash\npython3 -m venv .venv\n```\n\n```bash\nsource ./.venv/bin/activate\n```\n\nПосле разворачивания виртуального окружения необходимо установить зависимости:\n\n```bash\npip install -r requirements.txt\n```\n\nПосле всех шагов необходимо запустить утилиту и ждать ее завершения:\n\n```bash\npython main.py\n```\n\n### 3.4 Запуск утилиты, используя собранный `exe` файл для Windows x64\n\n\u003e :warning: Для данного способа не требуется установка [Python](https://www.python.org/). Замечено, что **в таком режиме утилита работает, примерно, на 15% медленнее**.\n\nНеобходимо [скачать последний собранный релиз `VKArchiveDownloader_win64.zip`](https://github.com/DvaMishkiLapa/VKArchiveDownloader/releases/latest)\nи распаковать архив с ним в любую удобную папку.\n\nПосле этого необходимо поместить директорию архива [VKontakte](https://vk.com) `Archive` в директорию распакованной утилиты. Сделайте это любым удобным для вас способом.\n\nПосле всех шагов подготовки запустите `VKArchiveDownloader.exe` любым удобным способом.\n\n## 4. Вопросы и ответы\n\n### 4.1 Почему нет поддержки скачивания видео?\n\nЕсть несколько причин, по которым это не реализовано:\n\n1. **Странное поведения доступа к ссылке на само видео.** Не ясно почему, но я не всегда могу получить ссылку на исходник видео в максимальном качестве.\n2. **Скачивание займет много времени и займет большое пространство на постоянном носителе.** Время - не самый критичный параметр. Но размер самого видео - уже более весомый аргумент, учитывая, что не все видео, в итоге, будут нужны после скачивания.\n\nКак альтернативу данному вопросу, после работы утилиты, в [JSON файле с ссылками](#21-json-файл-с-ссылками) будет отдельная категория `vk_video` со всеми ссылками на видео [VKontakte](https://vk.com).\n\n### 4.2 Почему в папке сообщений или в папке документов начали появляется скачивания по пути `*/text/html` без разрешения файла?\n\nЭто не решенная проблема. В папках лежат `html` страницы, которые [VKontakte](https://vk.com) отдает на попытку скачать какой-либо документ.\nВ этот момент утилита сталкивается с ошибкой [429 Too Many Requests](https://developer.mozilla.org/ru/docs/Web/HTTP/Status/429),\nкоторая появляется, если в день было слишком много попыток скачать документы.\nПока что, решением данной проблемы является время - нужно подождать 1-2 дня.\nПроблема появится, если запускать утилиту за один день множество раз, например, с разными настройками.\nСтоит помнить о таком поведении [VKontakte](https://vk.com).\n\nТакже данная проблема может встретится, если а архиве содержится *безумно* много ссылок на документы в случае, если, например, аккаунт был довольно активным в использовании.\nВыходом из такой ситуации может стать разделение скачиваемого контента по дням.\nНапример, в 1 день в `config.ini` оставить только настройку с сообщениями и запустить утилиту, а в следующий день выбрать другую категорию.\n\n### 4.3 Почему в логах начали часто появляется ошибки, связанные с `asyncio.TimeoutError`?\n\nДля скачивания файлов в утилите заложен таймаут в 15 минут. Если за это время файл не будет скачан, скачивание оборвется с ошибкой `asyncio.TimeoutError` в лог-файле.\n\nЧто бы решить данную проблему, стоит уменьшить количество одновременных скачиваний в настройке `semaphore_small` и `semaphore_big` конфигурационного файла `config.ini`.\n\nДля удобства, все ссылки, которые быль обработаны и для них была получена ошибка тайм-аута, будут собраны в отдельную группу данных `timeout_error` в файле `links_info.json`.\n\n### 4.4 Почему выдается ошибка, подобная `PermissionError: [Errno 13] Permission denied: '.../Cookies'`?\n\nОна возникает, если Google Chrome или браузер, основанный на его движке, открыт во время работы скрипта.\nКак вариант решения проблемы, можно закрыть браузер перед началом работы скрипта.\nПосле появления строчки в логах `В работе утилиты будут использованы файлы 🍪` браузер можно будет снова открыть.\n\nОшибка не возникает, если не используются cookie.\n\nПодробнее об этой проблеме и путях ее решения можно прочитать в [соответствующем Issue](https://github.com/borisbabic/browser_cookie3/issues/180#issuecomment-1587691954).\n\n### 4.5 Фактически, доступ к сжатым фото и голосовым сообщениям может получить любой человек, у которого на них есть ссылка?\n\n**Да.** Для доступа к такому контенту не нужны никакие механизмы авторизации. Если ссылка (или [группа ссылок](#21-json-файл-с-ссылками)) попадет к другому человеку,\nон без каких либо сложностей сможет получить файл, на который эта ссылка ссылается. Так что осторожнее с этим интересным решением ребят из [VKontakte](https://vk.com).\n[Все, что попадает в интернет, остается там на всегда.](https://ru.wikipedia.org/wiki/%D0%AD%D1%84%D1%84%D0%B5%D0%BA%D1%82_%D0%A1%D1%82%D1%80%D0%B5%D0%B9%D0%B7%D0%B0%D0%BD%D0%B4)\n\n[Пример такой ссылки, которая была взята из моего случайного диалога.](https://sun9-west.userapi.com/sun9-16/s/v1/if1/kv24aVeTxKf21aJOc6V1YpLgL4KCr7ZA87lPTVG_fjiHJ0qNHh_xHMm42saXvfh3aCSUtMV5.jpg?size=479x480\u0026quality=96\u0026type=album)\n\n### 4.6 Как работает скачивание по ссылкам (для любопытных)?\n\nПосле нахождения всех ссылок в архиве [VKontakte](https://vk.com), их можно разделить на три основных категории:\n\n1. Ссылки, связанные с [VKontakte](https://vk.com);\n2. Ссылки, связанные с серверами [VKontakte](https://vk.com);\n3. Ссылки, связанные с другими ресурсами.\n\nСкачивание файлов выполняется только для 1 и 2 категории.\n\n- Ссылки 2 категории - чаще всего, это ссылки, которые сразу можно найти в сообщениях, в архиве.\n  Это прямые ссылки на файл, которые хранятся в каком-то из серверов [VKontakte](https://vk.com). Выглядят они, примерно, так:\n\n  - `https://sun9-**.userapi.com/\u003cссылка_на_файл\u003e`, где `**` - некоторое число от 1 до 99;\n  - `https://psv4.userapi.com/\u003cссылка_на_файл\u003e`.\n\n- Ссылки 1 категории - либо ссылки на какой-либо документ, либо ссылка на фото с предпросмотром в интерфейсе\n  [VKontakte](https://vk.com) (с лайками, комментариями и так далее).\n  В этом случае, что бы получить файл, необходимо быть авторизованным на сайте, утилита это делает [через файлы `Сookie` от используемого браузера](#31-использование-сookie-файлов-браузера).\n  Если такая авторизация присутствует, в `html` коде страницы, на которую вела ссылка, можно найти ссылку [с редиректом на ссылку](https://www.nic.ru/info/blog/redirect/) 2 категории.\n\n### 4.7 Чем опасно отключение проверки SSL сертификата? (флаг `disable_ssl`)\n\n\u003e :warning: Хотя данная опция может помочь в случаях, когда существуют проблемы с сертификатом [VKontakte](https://vk.com), лучше найти причину, по которой скрипт не может с ним работать.\n\nОтключение проверки SSL сертификата представляет собой значительный риск безопасности и может привести к серьёзным последствиям. Вот несколько ключевых аспектов, которые стоит учесть:\n\n1. Подверженность атакам \"man-in-the-middle\" (MitM): При отключении проверки SSL сертификата, ваше приложение не может убедиться в идентичности сервера, к которому оно подключается. Это дает злоумышленникам возможность перехватывать и модифицировать передаваемые данные, такие как личная информация, учетные данные и финансовая информация;\n2. Утечка конфиденциальной информации: Без верификации сертификатов нет гарантий, что соединение защищено от несанкционированного доступа третьих лиц. Это может привести к утечке важной конфиденциальной информации.\n3. Риск повреждения данных и атак: В отсутствие защиты SSL/TLS злоумышленники могут не только просматривать, но и изменять данные во время их передачи. Это может привести как к искажению информации, так и к внедрению вредоносного кода в вашу систему.\n\n## 5. Тесты производительности\n\nЗдесь приведены тесты производительности выполнения утилиты на разных платформах и с разными конфигурациями.\nВсе запуски выполнены на максимально возможном количестве потоков, если не указано иное.\n| ЦП или SoC                                                                                                                             |                     Использование 🍪                     | ОС                                                                                         | Общее кол-во 🔗 |   ⌛ поиска 🔗   |  ⌛ скачивания   |     Общее ⌛     |\n| -------------------------------------------------------------------------------------------------------------------------------------- | :-----------------------------------------------------: | ------------------------------------------------------------------------------------------ | :------------: | :------------: | :-------------: | :-------------: |\n| [Core i7-8565U](https://ark.intel.com/content/www/ru/ru/ark/products/149091/intel-core-i78565u-processor-8m-cache-up-to-4-60-ghz.html) | [Google Chrome](https://www.google.com/intl/ru/chrome/) | Windows 11                                                                                 |     15141      | 2 мин. 1 сек.  | 8 мин. 10 сек.  | 10 мин. 11 сек. |\n| [Core i7-8565U](https://ark.intel.com/content/www/ru/ru/ark/products/149091/intel-core-i78565u-processor-8m-cache-up-to-4-60-ghz.html) |           [Vivaldi](https://vivaldi.com/ru/)            | Windows 11 + [WSL](https://ru.wikipedia.org/wiki/Windows_Subsystem_for_Linux) Ubuntu 22.04 |     15141      |    35 сек.     | 10 мин. 48 сек. | 11 мин. 24 сек. |\n| [Core i7-8565U](https://ark.intel.com/content/www/ru/ru/ark/products/149091/intel-core-i78565u-processor-8m-cache-up-to-4-60-ghz.html) |                            ❌                            | Manjaro Linux                                                                              |     13753      |    25 сек.     | 4 мин. 29 сек.  | 4 мин. 54 сек.  |\n| [Snapdragon 855](https://www.devicespecifications.com/ru/model/3bce4fca)                                                               |                            ❌                            | Android 12 + [Termux](https://termux.com/)                                                 |     13753      |    45 сек.     | 6 мин. 38 сек.  | 7 мин. 23 сек.  |\n| [Exynos 4412](https://www.devicespecifications.com/ru/model/1fc3284d)                                                                  |                            ❌                            | Android 9 + [Linux Deploy](https://github.com/meefik/linuxdeploy) Ubuntu 15.10             |     13753      | 5 мин. 19 сек. | 23 мин. 1 сек.  | 28 мин. 20 сек. |\n| [OMAP 3430 890MHz](https://en.wikipedia.org/wiki/Nokia_N900)                                                                           |                            ❌                            | [postmarketOS](https://wiki.postmarketos.org/wiki/Nokia_N900_(nokia-n900))                 |      3519      | 12 мин. 8 сек. | 29 мин. 5 сек.  | 41 мин. 13 сек. |\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdvamishkilapa%2Fvkarchivedownloader","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdvamishkilapa%2Fvkarchivedownloader","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdvamishkilapa%2Fvkarchivedownloader/lists"}