from vitpose import VitPose import requests import os from config import API_URL,API_KEY from fastapi import UploadFile import logging logging.basicConfig(level=logging.INFO) logger = logging.getLogger(__name__) def process_video(file_name: str,vitpose: VitPose,user_id: str,player_id: str): video_path = file_name contents = open(video_path, "rb").read() with open(video_path, "wb") as f: f.write(contents) logger.info(f"file saved {video_path}") logger.info(f"starting task {video_path}") new_file_name = os.path.join("static", video_path) logger.info(f"new file name {new_file_name}") vitpose.output_video_path = new_file_name annotated_frames = vitpose.run(video_path) vitpose.frames_to_video(annotated_frames) logger.info(f"Video processed {video_path}") with open(new_file_name, "rb") as f: contents = f.read() url = API_URL+ "/excercises/webhooks/video-processed" logger.info(f"Sending video to {url}") files = {"file": (video_path, contents, "video/mp4")} logger.info(f"video_path: {video_path}") response = requests.post(url, files=files, data={"user_id":user_id,"typeMessage":"video_processed","file_name":video_path, "player_id":player_id}, stream=True, headers={"token":API_KEY}) logger.info(f"Response: {response.status_code}") logger.info(f"Response: {response.text}") logger.info(f"Video sent to {url}")