Чтобы создать Telegram-бота, который будет генерировать ссылки на загруженные файлы с нужным вам форматом, нужно сделать следующее:
Шаг 1: Создать бота в Telegram
- Перейдите в Telegram и найдите бота.
- Используйте команду /newbot, чтобы создать нового бота, и следуйте инструкциям.
- После создания бота вы получите токен API, который будет нужен для работы с Telegram API.
Шаг 2: Настроить окружение
Убедитесь, что у вас установлены Python и необходимые библиотеки:
Bash:
pip install pyTelegramBotAPI flask
Шаг 3: Написать код бота
Вот пример кода бота, который будет принимать файл, сохранять его и генерировать ссылку с форматом header=video.mp4:
Python:
import telebot
from flask import Flask, request, send_from_directory
import os
import requests
API_TOKEN = 'YOUR_TELEGRAM_BOT_API_TOKEN'
SERVER_URL = 'https://your-domain.com' # Замените на ваш домен или IP
DOWNLOAD_DIR = 'downloads'
bot = telebot.TeleBot(API_TOKEN)
app = Flask(__name__)
# Создаем директорию для хранения файлов
if not os.path.exists(DOWNLOAD_DIR):
os.makedirs(DOWNLOAD_DIR)
@bot.message_handler(content_types=['video'])
def handle_docs_video(message):
# Получаем file_id и сохраняем файл
file_info = bot.get_file(message.video.file_id)
file = requests.get(f'https://api.telegram.org/file/bot{API_TOKEN}/{file_info.file_path}')
file_name = message.video.file_name or f"{message.video.file_id}.mp4"
file_path = os.path.join(DOWNLOAD_DIR, file_name)
with open(file_path, 'wb') as f:
f.write(file.content)
# Генерируем ссылку на файл
file_link = f"{SERVER_URL}/api/tg/file?id={message.video.file_id}&name={file_name}&header=video.mp4"
bot.send_message(message.chat.id, f"Your file is uploaded: {file_link}")
@app.route('/api/tg/file', methods=['GET'])
def download_file():
file_id = request.args.get('id')
file_name = request.args.get('name')
# Проверяем наличие файла
if os.path.exists(os.path.join(DOWNLOAD_DIR, file_name)):
return send_from_directory(DOWNLOAD_DIR, file_name, as_attachment=True)
else:
return "File not found", 404
if __name__ == '__main__':
bot.polling(none_stop=True)
app.run(host='0.0.0.0', port=5000)
Шаг 4: Настроить сервер
- Настроить веб-сервер:
- Если у вас есть домен, убедитесь, что ваш сервер настроен на работу с Flask (например, используя Gunicorn или uWSGI в связке с Nginx).
- Если у вас нет домена, вы можете использовать ngrok для временного получения публичного URL.
- Запустить бота:
- Запустите бота на вашем сервере командой:
Bash:
python bot.py
- Убедиться, что Flask-приложение работает:
- Откройте браузер и перейдите по вашему SERVER_URL, чтобы убедиться, что Flask-приложение запущено и готово к обработке запросов.
Шаг 5: Тестирование
- Отправьте видео боту в Telegram.
- Получите от бота ссылку на видео, которая будет выглядеть как
Вы должны быть зарегистрированы для просмотра ссылок<file_id>&name=<file_name>&header=video.mp4.
- Перейдите по этой ссылке, чтобы убедиться, что файл загружается корректно.