-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathmain.py
More file actions
64 lines (48 loc) · 1.51 KB
/
main.py
File metadata and controls
64 lines (48 loc) · 1.51 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
import yt_dlp
import whisper
import os
# Variáveis
url = 'https://www.tiktok.com/@asimov.academy/video/7401254813939404038?is_from_webapp=1&sender_device=pc&web_id=7299587613597386246'
modelo = whisper.load_model("base")
caminho = './downloads/'
audio = ''
# Funções
# Função de inicialização
def inicial():
download_conversao()
selecionar_audio()
def my_hook(d):
lambda d: print(f"Baixando: {d['filename']} - {d['downloaded_bytes']} bytes baixados")
# Montar o objeto com opções de download
def download_conversao():
options = {
'format': 'bestvideo+bestaudio/best',
'noplaylist': True,
'outtmpl': 'downloads/%(title)s.%(ext)s',
# código abaixo extrai áudio de vídeo
'postprocessors': [{
'key': 'FFmpegExtractAudio',
'preferredcodec': 'mp3',
'preferredquality': '192',
}],
'progress_hooks': [my_hook],
}
with yt_dlp.YoutubeDL(options) as ydl:
ydl.download(url)
# Pegar audio da pasta download
def selecionar_audio():
global audio
nomes_arquivos = os.listdir(caminho)
audio = ", ".join(nomes_arquivos)
transcricao_audio()
# Transcrição
def transcricao_audio():
resposta = modelo.transcribe(f"{caminho}/{audio}")
resposta = resposta["text"]
transcricao = f'Essa é a transcrição do áudio "{audio.replace('.mp3', '')}": \n {resposta}'
print(transcricao)
def exclui_audio():
os.unlink(f"{caminho}/{audio}")
print(f'Arquivo "{audio}" excluído com sucesso!')
inicial()
exclui_audio()