Repository navigation
Expand file tree
/
Copy pathmain.py
More file actions
65 lines (54 loc) · 1.62 KB
/
Copy pathmain.py
File metadata and controls
65 lines (54 loc) · 1.62 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
import whisper
from openai import OpenAI
from dotenv import load_dotenv
from pytubefix import YouTube
from pytubefix.cli import on_progress
from ffmpeg import FFmpeg
import os
load_dotenv()
url = input('URL > ')
filename = r'./arquivos/audio.wav'
arquivos = r'./arquivos'
def mkdir():
if not os.path.exists(arquivos):
os.mkdir(arquivos)
def audio(url):
yt = YouTube(url,on_progress_callback=on_progress)
ys = yt.streams[0].url
if os.path.exists(filename):
os.remove(filename)
ffmpeg = (
FFmpeg()
.input(ys)
.output(filename)
)
ffmpeg.execute()
def transcrever():
model = whisper.load_model('base')
result = model.transcribe(filename)
return result["text"]
def resumir(file='./arquivos/resumo.md'):
assistent = OpenAI(
base_url="https://openrouter.ai/api/v1",
api_key=os.getenv('OPENROUTER_API_KEY'),
)
texto = transcrever()
resumo_video = assistent.chat.completions.create(
model="qwen/qwen3-coder:free",
messages=[
{
"role" : "system",
"content" : "você é um assistente que faz resumos de video no youtube e responda em formatação markdown"
},
{
"role" : "user",
"content" : f"faça um resumo do seguinte video {texto}"
}
]
)
with open(file,'w+',encoding='utf-8') as resumo:
resumo.write(resumo_video.choices[0].message.content)
if __name__ == '__main__':
mkdir()
audio(url)
resumir()