Warning
Проект находится ещё в разработке !
Этот проект представляет собой скрипт на Python, который автоматически публикует сообщения из Telegram-канала или чата в указанную группу ВКонтакте. Он поддерживает различные типы контента, включая текст, изображения, видео и ссылки.
- Зачем нужен?
- Как работает?
- Структура проекта
- Какие медиафайлы может пересылать?
- Пример использования
- Установка и запуск проекта
- Установка и запуск проекта при помощи Docker Compose
- Подробности реализации
- Особенности
- Содействие
Многие пользователи и администраторы сообществ сталкиваются с необходи 8000 мостью дублирования контента между различными платформами. Это может быть рутинной и трудоемкой задачей. Данный скрипт автоматизирует этот процесс, экономя время и уменьшая вероятность ошибок при копировании данных вручную.
- Получение данных из Telegram: Проект использует библиотеку
aiogram
для взаимодействия с Telegram API. Это позволяет получать сообщения и медиафайлы из указанных чатов или каналов. - Обработка медиа-контента: С помощью
aiogram-media-group
,moviepy
иrlottie-python
происходит обработка и подготовка медиафайлов для дальнейшей отправки. - Отправка данных в ВКонтакте: Библиотека
vk-api
используется для взаимодействия с API ВКонтакте, что позволяет загружать и отправлять медиафайлы и сообщения на указанные страницы или группы. - Конфигурация и управление: Файл
.env
используется для хранения конфиденциальных данных и ключей API, обеспечивая безопасное управление параметрами приложения.
autoposting
├── main
│ ├── main.py # Основная логика
│ ├── .env # Файл конфигурации для учетных данных API
├── requirements.txt # Необходимые библиотеки для проекта
├── EXAMPLES # Примеры проекта
├── LICENSE # Лицензия на проект
└── README.md # Проектная документация
Бот предназначен для пересылки различных типов медиафайлов из Telegram в ВКонтакте. Вот список медиафайлов, которые бот может обрабатывать и пересылать:
- Текстовые сообщения:
- Простые текстовые сообщения без медиафайлов.
- Изображения:
- Фотографии в различных форматах (JPEG, PNG и др.).
- Видео:
- Видеофайлы в популярных форматах (MP4 и др.).
- Аудио:
- Голосовые сообщения и музыкальные файлы.
- Документы:
- Файлы различных типов, включая PDF, DOCX, XLSX и другие.
- Анимации:
- GIF-анимации и анимированные стикеры.
- Медиа-группы:
- Группы медиафайлов, включающие комбинации изображений и видео, отправленные как единое сообщение.
- Изображения: Если пользователь отправляет в Telegram фото с описанием, бот автоматически пересылает это изображение и текст на указанную страницу или группу ВКонтакте.
- Видео: Видео с Telegram пересылается в соответствующем формате в ВКонтакте, сохраняя оригинальное качество.
- Документы: Важные файлы или документы пересылаются для удобного доступа участников группы ВКонтакте.
- Голосовые сообщения: Голосовые записи из Telegram пересылаются как аудиофайлы в ВКонтакте.
Таким образом, скрипт поддерживает широкий спектр медиафайлов, обеспечивая гибкость и удобство при переносе контента между платформами.
-
Склонируйте репозиторий:
git clone https://github.com/love-angelll/autopost cd autopost
-
Установите необходимые зависимости:
Убедитесь, что у вас установлен
pip
. Затем выполните команду:pip install -r requirements.txt
-
Настройка окружения:
Создайте файл
.env
в корне проекта и добавьте необходимые переменные окружения. Пример файла.env
:VK_API_TOKEN=YOUR_VK_API_TOKEN TELEGRAM_API_TOKEN=YOUR_TELEGRAM_API_TOKEN TELEGRAM_CHANNEL_USERNAME=YOUR_TELEGRAM_CHANNEL_USERNAME VK_GROUP_ID=YOUR_VK_GROUP_ID
-
Запуск приложения:
Приложение можно запустить с помощью следующей команды:
python main.py
-
Склонируйте репозиторий:
git clone https://github.com/love-angelll/autopost cd autopost
-
Настройка окружения:
Отредактируйте файл
compose.yaml
, укажите необходимые переменные окружения в разделеenvironment:
. Пример:environment: - VK_API_TOKEN=YOUR_VK_API_TOKEN - TELEGRAM_API_TOKEN=YOUR_TELEGRAM_API_TOKEN - TELEGRAM_CHANNEL_USERNAME=YOUR_TELEGRAM_CHANNEL_USERNAME - VK_GROUP_ID=YOUR_VK_GROUP_ID
-
Запуск приложения:
Контейнер с приложением можно запустить с помощью следующей команды:
docker compose up -d
В результате будет собран и запущен Docker контейнер с именем
autopost
.
aiogram
: Асинхронная библиотека для работы с Telegram Bot API.aiogram-media-group
: Расширение для обработки групповых медиа-сообщений в Telegram.aiohttp
: Асинхронная библиотека HTTP-клиента/сервера.python-dotenv
: Позволяет загружать переменные окружения из файла.env
.vk-api
: Библиотека для работы с API ВКонтакте.rlottie-python
: Библиотека для работы с анимациями.moviepy
: Библиотека для редактирования видео.
- Поддерживает публикацию текстовых сообщений, изображений, видео и ссылок.
- Настраивается с помощью простого файла TOML.
- Регистрирует активность, что помогает в отладке и мониторинге.
Не стесняйтесь отправлять проблемы или запросы на исправление, если у вас есть какие-либо вопросы то пишите в соц. сетях.
This project is a Python script that automatically posts messages from a Telegram channel or chat to a specified VKontakte group. It supports various content types, including text, images, videos, and links.
Many users and community administrators face the need to duplicate content across different platforms. This can be a routine and time-consuming task. This script automates the process, saving time and reducing the risk of errors when copying data manually.
- Retrieving data from Telegram: The project uses the
aiogram
library to interact with the Telegram API. This allows retrieving messages and media files from specified chats or channels. - Processing media content: Libraries such as
aiogram-media-group
,moviepy
, andrlottie-python
are used to process and prepare media files for further posting. - Sending data to VKontakte: The
vk-api
library interacts with VKontakte API, enabling uploading and posting of media files and messages to specified pages or groups. - Configuration and management: A
.env
file is used to store sensitive data and API keys, ensuring secure application settings management.
autoposting
├── main
│ ├── main.py # Main logic
│ ├── .env # Configuration file for API credentials
├── requirements.txt # Required libraries for the project
├── EXAMPLES # Project examples
├── LICENSE # Project license
└── README.md # Project documentation
The bot is designed to forward various types of media from Telegram to VKontakte. Here's a list of media types the bot can process and forward:
- Text messages:
- Simple text messages without media.
- Images:
- Photos in various formats (JPEG, PNG, etc.).
- Videos:
- Video files in popular formats (MP4, etc.).
- Audio:
- Voice messages and music files.
- Documents:
- Files of various types, including PDF, DOCX, XLSX, and others.
- Animations:
- GIF animations and animated stickers.
- Media groups:
- Groups of media files, including combinations of images and videos sent as a single message.
- Images: If a user sends a photo with a description in Telegram, the bot automatically forwards the image and text to the specified VKontakte page or group.
- Videos: Videos from Telegram are forwarded in the appropriate format to VKontakte, preserving the original quality.
- Documents: Important files or documents are forwarded for easy access by VKontakte group members.
- Voice messages: Voice recordings from Telegram are forwarded as audio files to VKontakte.
Thus, the script supports a wide range of media files, ensuring flexibility and convenience when transferring content between platforms.
git clone https://github.com/love-angelll/autopost
cd autopost
Ensure pip is installed, then execute:
pip install -r requirements.txt
Create a .env file in the project root and add the required environment variables. Example .env file:
VK_API_TOKEN=YOUR_VK_API_TOKEN
TELEGRAM_API_TOKEN=YOUR_TELEGRAM_API_TOKEN
TELEGRAM_CHANNEL_USERNAME=YOUR_TELEGRAM_CHANNEL_USERNAME
VK_GROUP_ID=YOUR_VK_GROUP_ID
Launch the app with the following command:
python main.py
git clone https://github.com/love-angelll/autopost
cd autopost
Edit compose.yaml
file and add the required variables in environment:
section. Example:
environment:
- VK_API_TOKEN=YOUR_VK_API_TOKEN
- TELEGRAM_API_TOKEN=YOUR_TELEGRAM_API_TOKEN
- TELEGRAM_CHANNEL_USERNAME=YOUR_TELEGRAM_CHANNEL_USERNAME
- VK_GROUP_ID=YOUR_VK_GROUP_ID
Launch the app container with the following command:
docker compose up -d
In result Docker conteiner app named autopost
will be build and run.
aiogram:
Asynchronous library for Telegram Bot API.aiogram-media-group:
Extension for handling Telegram media group messages.aiohttp:
Asynchronous HTTP client/server library.python-dotenv:
Loads environment variables from the .env file.vk-api:
Library for VKontakte API.rlottie-python:
Library for working with animations.moviepy:
Library for video editing.
- Supports posting of text messages, images, videos, and links.
- Configurable through a simple TOML file.
- Logs activity, aiding in debugging and monitoring.
Feel free to submit issues or pull requests. If you have any questions, contact me via social media.