KuzeyGneyolu61
Aşağıdaki makale umarım işinizi görür
Telegram Bot API'nin sunduğu limitler nedeniyle doğrudan bot üzerinden 20 MB'tan büyük videolar yüklemek ve işlemek mümkün değil. Ancak bu sınırlamayı aşmak için bazı alternatif yöntemler mevcut:
1. Local Hosting Kullanarak Telegram API'sini Kullanmak
Telegram Bot API'yi yerel olarak çalıştırarak daha büyük dosyaları işleyebilirsiniz. Telegram, bu amaçla Bot API
için bir Docker görüntüsü sunuyor ve bu sayede sınırları kaldırmak mümkün. Aşağıdaki adımlarla bu işlemi gerçekleştirebilirsiniz:
Docker Kullanarak Bot API'yi Kurun:
Telegram'ın Bot API'sinin Docker görüntüsünü kullanarak kendi sunucunuzda barındırabilirsiniz. Bunun için Docker kurulu olması gerekmekte. Docker görüntüsünü kurmak için:
docker run --name telegram-bot-api -d -p 8080:8080 \
--env TELEGRAM_API_ID=your_api_id --env TELEGRAM_API_HASH=your_api_hash \
ghcr.io/tdlib/telegram-bot-api:latest
Burada your_api_id
ve your_api_hash
değerlerini Telegram'dan buradan almanız gerekiyor.
Botunuzu Kendi Sunucunuza Bağlayın:
Daha sonra, botunuzun BASE_URL
'ini bu sunucuya yönlendireceksiniz. Yerel sunucuda veya bulut sunucusunda barındırarak bu sınırı kaldırabilirsiniz.
Videoları Yüklemek ve İşlemek:
Bu sayede artık 20 MB'tan büyük dosyaları da bota yükleyebilir ve işleyebilirsiniz.
2. Dosyayı Kullanıcıdan Almak İçin getFile
Yöntemini Kullanma
Kullanıcıdan dosya alırken, büyük boyutlu dosyalar için getFile
yöntemini kullanarak dosya indirme URL'sini elde edebilirsiniz. Dosya URL'sini elde ettikten sonra, bu dosyayı kendi sunucunuza indirip işleyebilir ve daha sonra kullanıcınıza geri gönderebilirsiniz.
Dosya Kimliğini Alma:
Videoyu aldıktan sonra, Telegram'dan dosya kimliğini (file_id
) alın. Bu genellikle mesajda gelen document
, video
veya file
nesnesinde bulunur.
getFile
API Çağrısını Kullanma:
getFile
yöntemini kullanarak dosya hakkında daha fazla bilgi alın. Örneğin:
import requests
bot_token = "YOUR_BOT_TOKEN"
file_id = "YOUR_FILE_ID"
response = requests.get(f"https://api.telegram.org/bot{bot_token}/getFile?file_id={file_id}")
file_path = response.json()["result"]["file_path"]
download_url = f"https://api.telegram.org/file/bot{bot_token}/{file_path}"
Dosyayı İndirme ve İşleme:
Dosya URL'sini kullanarak dosyayı yerel sunucunuza indirip, işleyebilirsiniz. Videoyu aldıktan sonra outro ekleme işlemini gerçekleştirebilir ve ardından kullanıcıya geri yükleyebilirsiniz.
3. Bulut Depolama Kullanarak Büyük Dosyaları Yönetme
Başka bir seçenek de dosyaları geçici olarak bulut depolama hizmetine yüklemek ve işleme için bu dosyaları kullanmak olabilir. Bu adımlar şu şekilde olabilir:
- Kullanıcıdan dosyayı al ve belirli bir bulut depolama hizmetine (örneğin Google Cloud Storage, AWS S3, vb.) yükle.
- Dosyayı indir, outro ekleyip tekrar yükle.
- Kullanıcıya işlenmiş dosyanın bağlantısını gönder.
Özetle
Telegram botlarında 20 MB üzeri videoları işleyebilmek için:
- Telegram Bot API'yi kendi sunucunuzda barındırarak bu sınırları aşabilirsiniz.
getFile
yöntemi ile dosyayı indirip, yerel veya sunucu üzerinde işleyebilirsiniz.
- Büyük dosyaları bulut depolama ile yönetebilirsiniz.
Bu yöntemlerden birini kullanarak 20 MB sınırını aşabilirsiniz.