Video message 的存取方式跟 Audio 一樣,這邊就不多說直接放範例程式碼。
@handler.add(MessageEvent)
def handle_message(event):
#print(event)
if event.message.type == 'video':
# 解讀並儲存影片
UserSendVideo = line_bot_api.get_message_content(event.message.id)
path= './video/'+ event.message.id + '.mp4'
with open(path, 'wb') as fd:
for chunk in UserSendAudio.iter_content():
fd.write(chunk)
影片的寄送會使用到 VideoSendMessage,所以要在 linebot.models 的地方增加引入 VideoSendMessage 才能夠寄送影片,而寄送的時候會需要給了兩個參數分別是影片的網址,以及該影片在預覽時的圖片,要注意的點是 Line 影片長度最多只能三分鐘,且給的網址後需要加上附檔名,例如直接給一個 youtube 的網址雖然會能夠正常傳送,但使用者會無法正常開啟。
@handler.add(MessageEvent)
def handle_message(event):
line_bot_api.reply_message(event.reply_token,VideoSendMessage(
original_content_url='https://i.imgur.com/1BnZGQC.mp4', # 影片的網址,可以參考圖片的上傳方式
preview_image_url='https://i.imgur.com/wpM584d.jpg' # 影片預覽的圖片
))
單是傳送影片回去有點太無趣,那我們可以嘗試使用OpenCV
去對影片進行加工後,再跟圖片一樣,透過 imgur API 上傳取得網址來寄送訊息。這部分日後有空的話會再更新於此篇。