52 lines
933 B
Python
52 lines
933 B
Python
import time
|
|
|
|
import click
|
|
from loguru import logger
|
|
from yt_dlp import DownloadError
|
|
|
|
from downloader import VideoToAudioDownloader
|
|
from transcriber import Transcriber
|
|
|
|
|
|
@click.group()
|
|
def cli():
|
|
pass
|
|
|
|
|
|
@cli.command()
|
|
@click.argument('url', nargs=-1)
|
|
@click.option('--proxy', default=None, is_flag=False)
|
|
def download(url, proxy):
|
|
params = None
|
|
if proxy:
|
|
params = {"proxy": proxy}
|
|
vad = VideoToAudioDownloader(params=params)
|
|
try:
|
|
logger.info(f"attempting to download: {url}")
|
|
vad.download_audio_from_yt(url)
|
|
except DownloadError as de:
|
|
logger.warning(f"failed to download {url} b/c: {de}")
|
|
|
|
@cli.command()
|
|
def transcribe():
|
|
t = Transcriber()
|
|
t.load_model()
|
|
t.DataHandler.get_audio_files()
|
|
for af in t.audio_files:
|
|
logger.info(f"transcribing: {af}")
|
|
t.transcribe(af)
|
|
t.persist()
|
|
t.cleanup()
|
|
|
|
if __name__ == "__main__":
|
|
cli()
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|