103 lines
3.9 KiB
Python
103 lines
3.9 KiB
Python
#!/usr/bin/env python3
|
|
from datetime import datetime
|
|
|
|
import package.video_editing.build_shorts as yt_shorts
|
|
import package.transcribe_video as transcribe_video
|
|
import package.transcribe_client as transcribe_client
|
|
import package.twitch.chat_vod as chat_vod
|
|
import package.video_editing.highlights as highlights
|
|
from package.config import DB as DB
|
|
from package.config import TZ as TZ
|
|
|
|
def build_chat_video():
|
|
chats = DB.get_unuploaded_chats()
|
|
|
|
for chat in chats:
|
|
print("====================================================")
|
|
print(f"🚀 Chat Video: {chat.title}")
|
|
print("====================================================")
|
|
|
|
chat_vod.combine_twitch_vod_and_chat(f"download/videos/{chat.id}/{chat.id}.mp4", "side-by-side")
|
|
|
|
print("====================================================")
|
|
print(f"✅ Processing: Chat Video Done.")
|
|
print("====================================================")
|
|
|
|
def build_transcribe():
|
|
downloads = DB.get_downloaded()
|
|
|
|
for download in downloads:
|
|
if download.clip_is:
|
|
target_dir = f"download/clips"
|
|
else:
|
|
target_dir = f"download/videos"
|
|
|
|
print("====================================================")
|
|
print(f"🚀 Transcribe: {download.title}")
|
|
print("====================================================")
|
|
|
|
#transcribe_video.transcribe_to_srt(f"{target_dir}/{unuploaded.id}/{unuploaded.id}.mp4", True)
|
|
transcribe_client.transcribe_to_srt_remote(f"{target_dir}/{download.id}/{download.id}.mp4")
|
|
|
|
print("====================================================")
|
|
print(f"✅ Processing: Transcribing Done.")
|
|
print("====================================================")
|
|
|
|
def build_shorts():
|
|
shorts = DB.get_unuploaded_shorts()
|
|
|
|
top_txt = "TeamPGP Live on Twitch...\n Every Friday and Sunday @7:30 ET.\n twitch.tv/teampgp"
|
|
count = 1
|
|
|
|
for short in shorts:
|
|
target_dir = f"download/clips/{short.id}/{short.id}.mp4"
|
|
|
|
print("====================================================")
|
|
print(f"🚀 Processing: Clip to Youtube Short {short.title}")
|
|
print("====================================================")
|
|
print(f"{count}/{len(shorts)}")
|
|
|
|
created_at = datetime.strptime(short.created_at, "%Y-%m-%d %H:%M:%S%z")
|
|
created_at = created_at.astimezone(TZ)
|
|
|
|
#ToDo
|
|
yt_shorts.fit_to_9_16_letterbox(target_dir, top_txt, f"Clipped By: {short.creator_name},\n on {created_at.strftime("%Y-%m-%d %H:%M:%S %Z")}")
|
|
count += 1
|
|
|
|
print("====================================================")
|
|
print(f"✅ Processing: Clip to Youtube Short Done.")
|
|
print("====================================================")
|
|
|
|
def build_highlights():
|
|
lights = DB.get_downloaded()
|
|
|
|
top_txt = "TeamPGP Live on Twitch...\n Every Friday and Sunday @7:30 ET.\n twitch.tv/teampgp"
|
|
count = 1
|
|
|
|
for light in lights:
|
|
target_dir = f"download/clips/{light.id}/{light.id}.mp4"
|
|
|
|
print("====================================================")
|
|
print(f"🚀 Processing: Highlights {light.title}")
|
|
print("====================================================")
|
|
print(f"{count}/{len(lights)}")
|
|
|
|
created_at = datetime.strptime(light.created_at, "%Y-%m-%d %H:%M:%S%z")
|
|
created_at = created_at.astimezone(TZ)
|
|
|
|
#ToDo
|
|
highlights.highlights(target_dir, [], 5, 8)
|
|
#yt_shorts.fit_to_9_16_letterbox(target_dir, top_txt, f"Clipped By: {light.creator_name},\n on {created_at.strftime("%Y-%m-%d %H:%M:%S %Z")}")
|
|
count += 1
|
|
|
|
print("====================================================")
|
|
print(f"✅ Processing: Clip to Youtube Short Done.")
|
|
print("====================================================")
|
|
|
|
def build_videos():
|
|
build_shorts()
|
|
build_transcribe()
|
|
build_chat_video()
|
|
|
|
if __name__ == "__main__":
|
|
build_videos() |