Cara Upload Ratusan Foto ke Channel Telegram Sekaligus Pakai Python Bot (Gratis & Mudah)
Pernah punya ratusan foto di folder tapi males upload satu-satu ke Telegram? Saya juga begitu. Akhirnya saya buat bot Telegram sederhana pakai Python yang bisa upload ratusan foto sekaligus ke channel pribadi dalam bentuk album rapi. Prosesnya otomatis, aman, dan gratis.
Artikel ini cocok buat kamu yang pakai Linux (saya pakai Linux Mint), tapi konsepnya sama untuk Windows atau Mac. Yuk ikuti langkah demi langkah!
Apa yang kamu butuhkan
- Akun Telegram (HP atau Desktop)
- Channel Telegram pribadi (bisa channel baru yang kamu buat sendiri)
- Komputer dengan Python 3 (di Linux Mint sudah ada bawaan)
- Folder berisi foto-foto (format jpg, jpeg, png, webp)
Langkah 1: Buat Bot Telegram dan Dapatkan Token
- Buka aplikasi Telegram di HP atau komputer.
- Cari bot resmi @BotFather (pastikan centang biru).
- Ketik
/startlalu kirim. - Ketik
/newbotlalu kirim. - BotFather akan bertanya:
- Name: Kasih nama apa saja, misal “Foto Uploader Bot”
- Username: Harus unik dan berakhiran “bot”, contoh: @MyFotoUploaderBot
- Setelah selesai, BotFather akan memberikan pesan berisi token seperti ini:
123456789:AAFxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Copy seluruh token ini dan simpan di tempat aman. Jangan bagikan ke siapa pun!
Langkah 2: Buat Channel Pribadi dan Dapatkan Chat ID
- Buka Telegram → ketuk ikon pensil (buat pesan baru) → pilih New Channel.
- Isi nama channel (misal “Arsip Foto Saya”), set ke Private (supaya hanya kamu yang bisa lihat).
- Setelah channel dibuat, kirim satu pesan teks sederhana ke channel (misal “Tes 123”).
- Cari bot @getidsbot atau @RawDataBot di Telegram.
- Forward pesan “Tes 123” tadi ke bot tersebut.
- Bot akan balas dengan informasi, cari bagian chat.id. Contoh:
"id": -1001234567890
Catat angka lengkapnya termasuk tanda minus dan -100. Ini adalah Chat ID channel kamu. - Alternatif cepat: pakai username channel (kalau sudah kamu set username di pengaturan channel), misal
@arsipfotoku. Tapi untuk channel private biasanya pakai ID numerik lebih aman.
Langkah 3: Tambahkan Bot sebagai Admin di Channel
- Buka channel kamu → ketuk nama channel → pilih Manage Channel atau Kelola Saluran.
- Pilih Administrators → Add Administrator.
- Cari username bot yang baru kamu buat (contoh @MyFotoUploaderBot).
- Tambahkan dan beri hak centang minimal: Post Messages.
- Simpan perubahan.
Langkah 4: Siapkan Script Python
Buat folder kerja baru (misal telesaver), lalu buat file telegramsaver.py dan isi dengan kode berikut:
import asyncio
from telegram import Bot, InputMediaPhoto
from telegram.error import RetryAfter, TimedOut, BadRequest, TelegramError
from pathlib import Path
# GANTI DENGAN DATA KAMU SENDIRI
TOKEN = "GANTI_DENGAN_TOKEN_BOT_KAMU" # dari BotFather
CHAT_ID = -1001234567890 # dari @getidsbot (contoh)
FOLDER = "/home/namauser/FolderFotoKamu" # path folder foto di komputermu
async def main():
bot = Bot(TOKEN)
files = []
for ext in ["*.jpg", "*.jpeg", "*.png", "*.webp", "*.JPG", "*.JPEG", "*.PNG"]:
files.extend(Path(FOLDER).glob(ext))
files = sorted(files)
total_files = len(files)
print(f"Ditemukan {total_files} gambar di folder: {FOLDER}")
if total_files == 0:
print("Tidak ada file gambar ditemukan.")
return
batch_size = 5 # ubah ke 3 atau 4 kalau sering kena limit
total_batches = (total_files + batch_size - 1) // batch_size
berhasil = 0
gagal = 0
for i in range(0, total_files, batch_size):
batch = files[i:i + batch_size]
media = []
for file_path in batch:
try:
file_size_mb = file_path.stat().st_size / (1024 * 1024)
if file_size_mb > 10:
print(f"Skip {file_path.name}: terlalu besar ({file_size_mb:.1f} MB)")
gagal += 1
continue
with open(file_path, 'rb') as photo_file:
media.append(InputMediaPhoto(media=photo_file))
except Exception as e:
print(f"Gagal baca {file_path.name}: {e}")
gagal += 1
continue
if not media:
continue
attempt = 0
while attempt < 4:
try:
await bot.send_media_group(
chat_id=CHAT_ID,
media=media,
read_timeout=45,
write_timeout=120,
connect_timeout=30
)
berhasil += len(media)
print(f"Berhasil kirim {len(media)} gambar (batch {i//batch_size + 1}/{total_batches})")
break
except RetryAfter as e:
wait = e.retry_after + 3
print(f"Flood wait {wait} detik...")
await asyncio.sleep(wait)
attempt += 1
except Exception as e:
print(f"Error di batch {i//batch_size + 1}: {e}")
gagal += len(media)
break
await asyncio.sleep(5.0) # delay aman antar batch
print(f"\nSelesai! Berhasil: {berhasil} | Gagal: {gagal}")
if __name__ == "__main__":
asyncio.run(main())
Langkah 5: Install Library & Jalankan Script
- Buka terminal.
- Buat virtual environment (sekali saja):
python3 -m venv ~/telebot-env source ~/telebot-env/bin/activate pip install python-telegram-bot - Jalankan script:
python3 telegramsaver.py
Tips Biar Lancar
- Foto >10 MB akan di-skip otomatis. Kompres dulu kalau perlu:
sudo apt install imagemagick cd ~/FolderFotoKamu mogrify -quality 80 *.jpg *.png - Kalau sering kena “Flood wait” lama → turunkan
batch_size = 3atau naikkanasyncio.sleep(8.0) - Proses 300–400 foto biasanya memakan waktu 25–50 menit
- Jalankan di jam sepi (malam hari) agar limit Telegram lebih longgar
Kesimpulan
Sekarang kamu bisa upload ratusan foto ke channel Telegram secara otomatis tanpa aplikasi berbayar. Semua pakai tools resmi Telegram + Python gratis. Selamat mencoba, semoga channel arsip fotomu jadi lebih rapi!
Ada kendala atau ingin modifikasi? Tinggal komentar di bawah ya.
Semoga bermanfaat! (penulisan dibantu susun oleh grok).

