Telegram Bot接收来自用户的视频



我希望我的机器人接收用户发送的视频。以前,我做这种编码来接收用户的图像,但我仍然不能使用我的机器人来接收他们的视频。你们谁能帮我解决这个问题吗?编码:

file = update.message.photo[-1].file_id

首先电报可以接收两种类型的视频:简单的视频文件,由用户作为附件发送;video_note"-直接在电报中创建的视频。接收这两种类型非常相似:

首先我们需要获得file_id:

def GetVideoNoteId(update):
if update['message'].get('video_note') != None:
return update['message']['video_note']['file_id']
else:
return 'not videonote'

第二步-在电报服务器上获取该文件的文件路径-我们应该从哪里下载该文件:

def GetVideoNoteFileSource(FileId):
url = 'https://api.telegram.org/bot' + TOKEN + '/' + 'getFile'
jsn = {'file_id': FileId}
r = requests.get(url,json=jsn).json()
fileSource = r['result']['file_path']
return fileSource 

第三个-最后-得到这个文件:

def GetFile(fileSource):
url = 'https://api.telegram.org/file/bot' + TOKEN + '/' + fileSource
r = requests.get(url)
filename = 'Video.mp4'
try:
with open(filename, 'wb') as file:
file.write(r.content)
return 'file dowloaded'
except:
return 'there are something wrong'

与视频文件作为附件类似,但return update['message']['video_note']['file_id']-看起来会有所不同(我不记得了(

最新更新