transcriber.py

import re
import openai
from youtube_transcript_api import YouTubeTranscriptApi, TranscriptsDisabled

def get_video_transcript(video_id):
    pattern = r'\[.*?\]'
    response = YouTubeTranscriptApi.get_transcript(video_id)
    transcripts = [item['text'] for item in response]
    transcript_string = re.sub(pattern, '', ' '.join(transcripts))
    return transcript_string

def summarize_transcript(transcript):
    prompt = 'please summarize the transcript below into bullet points \n---\n"{0}"'.format(transcript)
    response = openai.ChatCompletion.create(
          model="gpt-3.5-turbo",
          temperature=0.1,
          max_tokens=1000,
          messages=[
                {"role": "user", "content": prompt}
            ]
        )
    return response.choices[0]['message']['content']



app_package.spec

# -*- mode: python ; coding: utf-8 -*-

block_cipher = None

a = Analysis(
            ['app.py'],
            pathex=[''],
            binaries=[],
            datas=[
              ('dark_orange_style.qss', '.'),
              ('transcriber.py', '.'),
              ('icon.png', '.')
            ],
            hiddenimports=[],
            hooksconfig={},
            hookspath=[],
            runtime_hooks=[],
            excludes=[],
            win_no_prefer_redirects=False,
            win_private_assemblies=False,
            cipher=block_cipher,
            noarchive=False
    )

pyz = PYZ(a.pure, a.zipped_data, cipher=block_cipher)

exe = EXE(pyz,
        a.scripts,
        a.binaries,
        a.zipfiles,
        a.datas,          
        [],
        # exclude_binaries=True,
        name='YT Video Summarize App',
        icon='app_icon.ico',
        debug=False,
        bootloader_ignore_signals=False,
        strip=False,
        upx=True,
        upx_exclude=[],
        console=False,
        runtime_tmpdir=None,
        disable_windowed_traceback=False,
        argv_emulation=False,
        target_arch=None,
        codesign_identity=None,
        entitlements_file=None,
      )