Initial commit

This commit is contained in:
Paillat
2023-05-15 10:11:04 +02:00
commit 5410752853
24 changed files with 742 additions and 0 deletions

55
main.py Normal file
View File

@@ -0,0 +1,55 @@
import os
import json
import asyncio
import logging
from generators.ideas import generate_ideas
from generators.script import generate_script
from generators.montage import mount, prepare, translate
from generators.miniature import generate_miniature
logging.basicConfig(level=logging.INFO)
async def main():
if input("Do you want to generate new ideas? (y/n)") == "y":
ideas = await generate_ideas()
if not os.path.exists('ideas'): os.makedirs('ideas')
with open('ideas/ideas.json', 'w', encoding='utf-8') as f:
f.write(ideas)
with open('ideas/ideas.json', 'r', encoding='utf-8') as f:
ideas = json.load(f)
f.close()
for i in range(len(ideas)):
print(str(i) + ". " + ideas[i]['title'])
idea = int(input("Which idea do you want to generate a script for? (enter the number): "))
idea = ideas[idea]
title = idea['title']
title = title[:25]
i = 0
path = "videos/" + title
path = path.replace(" ", "_").replace(":", "")
if not os.path.exists(path + "/script.json"):
script = await generate_script(idea['title'], idea['description'])
if os.path.exists(path) and os.path.exists(path + "/script.json"):
if input("There is already a script for this idea. Do you want to overwrite it? (y/n)") != "y":
print("Exiting...")
exit(1)
if not os.path.exists(path): os.makedirs(path)
with open(path + "/script.json", 'w', encoding='utf-8') as f:
f.write(script)
f.close()
script = prepare(path)
credits = mount(path, script)
with open(path + "/meta.txt", 'w', encoding='utf-8') as f:
f.write(f"Title: {idea['title']}\nDescription: {idea['description']}\nMusic credits: {credits}")
f.close()
with open(path + "/meta_FR.txt", 'w', encoding='utf-8') as f:
transtitle = translate('FR', idea['title']) #use the non formatted title
transdesc = translate('FR', idea['description'])
f.write(f"Titre: {transtitle}\nDescription: {transdesc}\nCrédits musicaux: {credits}")
f.close()
generate_miniature(path, title=idea['title'], description=idea['description'])
print(f"Your video is ready! You can find it in {path}.")
if __name__ == "__main__":
asyncio.run(main())