telegram-bot-api icon indicating copy to clipboard operation
telegram-bot-api copied to clipboard

Send Large files to Telegram Bot

Open AdamRussak opened this issue 1 year ago • 2 comments

I am trying to send a 1.5GB video and receiving an error:

 Bad Request: file is too big

didn't find any way to go around it.

my code:

package main

import (
	"log"
	"vsplit-bot/pkg/handler"

	tgbotapi "github.com/go-telegram-bot-api/telegram-bot-api/v5"
)

const botToken = "SecretT9ken"

func main() {
	// Create a new bot instance
	bot, err := tgbotapi.NewBotAPI(botToken)
	if err != nil {
		log.Panic(err)
	}

	// Set up an update channel to receive incoming messages
	u := tgbotapi.NewUpdate(0)
	u.Timeout = 60

	updates := bot.GetUpdatesChan(u)

	for update := range updates {
		// Check if the update contains a video message
		if update.Message != nil && update.Message.Video != nil {
			// Get the file ID of the video message
			fileID := update.Message.Video.FileID

			// Retrieve the video file using the GetFile method
			file, err := bot.GetFile(tgbotapi.FileConfig{FileID: fileID}) // <-- point of error
			if err != nil {
				log.Println(err)
				continue
			}

			downloadLink := file.Link(botToken)
			handler.DownloadFile(downloadLink, update.Message.Video.FileName)
			// Handle the downloaded video file
			log.Println("Received video file:", downloadLink)
		}
	}
}

go.mod

module asda

go 1.19

require (
	github.com/go-telegram-bot-api/telegram-bot-api v4.6.4+incompatible // indirect
	github.com/go-telegram-bot-api/telegram-bot-api/v5 v5.5.1 // indirect
	github.com/technoweenie/multipartstreamer v1.0.1 // indirect
)

AdamRussak avatar Apr 14 '23 11:04 AdamRussak

Please remove your bot's token from your example, it is a best practice to store it in environment variable.

As for your question, It looks like there is a file size limit you can send with Bots - https://core.telegram.org/bots/faq#how-do-i-upload-a-large-file

ilya-khadykin avatar Apr 14 '23 15:04 ilya-khadykin

I know, you are right. But already revoked it.

AdamRussak avatar Apr 14 '23 18:04 AdamRussak