|
from celery import Celery |
|
import os |
|
import time |
|
from App import celery_config |
|
import yt_dlp |
|
import tempfile |
|
from App.Transcription.Utils.audio_transcription import transcribe_file |
|
|
|
celery = Celery() |
|
celery.config_from_object(celery_config) |
|
|
|
|
|
@celery.task(name="transcription", bind=True) |
|
def transcription_task(self, file_path, model_size="tiny"): |
|
return transcribe_file(state=self, file_path=file_path, model_size=model_size) |
|
|
|
|
|
@celery.task(name="download", bind=True) |
|
def downloadfile(self, url, ydl_opts, model_size="tiny"): |
|
|
|
self.update_state(state="Downloading File..", meta={}) |
|
|
|
|
|
with yt_dlp.YoutubeDL(ydl_opts) as ydl: |
|
info = ydl.extract_info(url, download=True) |
|
audio_file = ydl.prepare_filename(info) |
|
|
|
|
|
self.update_state(state="Downloading complete", meta={}) |
|
|
|
return transcribe_file(state=self, file_path=audio_file, model_size=model_size) |
|
|