File size: 2,200 Bytes
4f194a4
 
 
 
 
 
 
 
 
 
 
 
 
2285996
4f194a4
 
 
 
 
 
 
 
 
 
 
2285996
4f194a4
 
 
 
 
 
 
2285996
4f194a4
2285996
4f194a4
 
 
 
 
 
2285996
 
4f194a4
 
 
 
 
 
 
 
 
 
 
 
 
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
from logger import logger
from query_service.query_engine import create_query_engine, query_summary
from resource_loader.json_loader import load_json_file_and_extract_text
from resource_loader.youtube_loader import YouTubeLoader
from transcription_service.transcriber import YouTubeTranscriber


# def youtube_loader(url, output_path_youtube, output_path_transcription):
#     # Resource Loader
#     yt_loader = YouTubeLoader(url, output_path_youtube)
#     yt_loader.download_youtube()
#
#     # Transcription Service
#     yt_transcriber = YouTubeTranscriber(yt_loader.media_id, yt_loader.filename, output_path_youtube,
#                                         output_path_transcription)
#     yt_transcriber.run()
#

import os


def check_file_exists(file_path):
    return os.path.exists(file_path)


def download_video(video_loader):
    logger.info("Initializing Resource Loader...")
    logger.info(f"Downloading video")
    video_loader.download()


def transcribe_video(video_loader, output_path, output_path_transcription):
    logger.info("Initializing Transcription Service...")
    yt_transcriber = YouTubeTranscriber(video_loader.media_id, video_loader.filename, output_path,
                                        output_path_transcription)
    logger.info(f"Transcribing video: {video_loader.media_id}")
    yt_transcriber.run()
    logger.info(f"Transcription completed and saved to {output_path_transcription}")


def load_transcription(yt_loader, output_path_transcription):
    logger.info("Loading JSON transcript...")
    document = load_json_file_and_extract_text(f"{output_path_transcription}/{yt_loader.media_id}.json")
    logger.info(f"JSON transcript loaded from {output_path_transcription}/{yt_loader.media_id}.json")
    return document


def create_and_query_engine(document):
    logger.info("Creating Query Engine...")
    query_engine = create_query_engine(document)
    logger.info("Query Engine created.")

    logger.info("Querying Summary...")
    response = query_summary(query_engine,
                             "What are the author's thoughts on the risks and benefits of AI for humanity")
    logger.info("Summary query completed.")
    return response