YouTube Summary with Python

Viktor Dite, Autor des Beitrags

Von - Publiziert in Snippets
Dipl. Informatiker und Tech-Blogger seit 2006.


This is a simple a python script, which pulls a youtube transcript directly from youtube and than summarize the content to bulletpoints with gpt-3.5-turbo-16k model. You ‚ll need an OpenAI API Key.

Results

YouTube Summary with Python

Script

import openai
from youtube_transcript_api import YouTubeTranscriptApi

def fetch_transcript(video_id, language_code):
    try:
        transcript = YouTubeTranscriptApi.get_transcript(video_id, languages=[language_code])
        return " ".join([entry['text'] for entry in transcript])
    except Exception as e:
        print(f"Ein Fehler ist aufgetreten: {e}")
        return None

def summarize_text(text, language_code):
    openai.api_key = 'Put Your OpenAI API Key Here'
    response = openai.ChatCompletion.create(
        model="gpt-3.5-turbo-16k",
        messages=[
            {"role": "system", "content": "You are a helpful assistant."},
            {"role": "user", "content": f"Summarize the following text in detail and comprehensively in {language_code} language. Concentrate on the main topics, key points and important findings:"},
            {"role": "user", "content": text}
        ],
        max_tokens=1000  # Erhöhte Anzahl an Tokens für eine längere Antwort
    )
    return response.choices[0].message['content']

if <strong>name</strong> == &quot;<strong>main</strong>&quot;:
    video_url = input(&quot;Please enter the YouTube video URL: &quot;)
    video_id = video_url.split(&quot;v=&quot;)[1].split(&quot;&amp;&quot;)[0]
    language_code = input(&quot;Please enter the language code (e.g. 'en' for English, 'es' for spanish, fr' for French, 'de' for German): &quot;)
    transcript_text = fetch_transcript(video_id, language_code)
    if transcript_text:
        summary = summarize_text(transcript_text, language_code)
        print(&quot;Summary:\n&quot;, summary)
        with open(f&quot;{video_id}<em>transcript</em>{language_code}<em>summary.txt&quot;, &quot;w&quot;, encoding=&quot;utf-8&quot;) as f:
            f.write(summary)
        print(f&quot;Summary was saved in {video_id}_transcript</em>{language_code}_summary.txt.&quot;)


Letzte Änderung: