# Automatically Attaching YouTube Video Footers to AI Tutorial Questions: Gemini LLM & YouTube Search Service Integration

> Source: <https://dev.to/junhee916/automatically-attaching-youtube-video-footers-to-ai-tutorial-questions-gemini-llm-youtube-search-5df2>
> Published: 2026-06-06 04:00:01+00:00

Automatically Attaching YouTube Video Footers to Tutorial-Style Questions: An Integration Log of gemini_llm_service & youtube_search_service

I've been developing a feature to automatically attach YouTube video footers to AI tutorial questions. My initial thought was simple: find a YouTube video relevant to the question and display it as a footer.

My first approach was to have `gemini_llm_service`

understand the intent of the question and then use those keywords to search for videos via `youtube_search_service`

. However, this turned out to be harder than I expected.

When questions were a bit ambiguous, `gemini_llm_service`

often extracted irrelevant keywords. For example, for a question like "How to build a website with Python," just searching with the keyword "website" would yield overly general results.

``` python
# Initial attempt code (conceptual)
from gemini_llm_service import GeminiLLM
from youtube_search_service import YouTubeSearch

gemini = GeminiLLM()
youtube = YouTubeSearch()

question = "Tell me how to build a simple website with Python"
keywords = gemini.extract_keywords(question) # Problem often occurred here

search_results = youtube.search(keywords)
# ... video footer processing logic ...
```

During this process, the accuracy of keywords returned by `gemini_llm_service`

was low, repeatedly leading to `youtube_search_service`

failing to find the desired videos. I probably spent about 3 hours just struggling with this part.

Ultimately, the problem was that `gemini_llm_service`

wasn't fully grasping the context of the question and was extracting overly general keywords. I realized that especially for tutorial-style questions, it's difficult to find the right video based solely on keywords.

So, I modified the prompt to instruct `gemini_llm_service`

to generate more specific search keywords *only* when it clearly identifies the question as a tutorial request. I also implemented additional filtering logic in `youtube_search_service`

to improve the relevance of search results.

```
# Modified prompt example (inside gemini_llm_service)
prompt = f"""
You are an AI assistant that helps users find relevant YouTube tutorials.
Given the following user question, extract specific keywords that would be ideal for searching YouTube for a tutorial.
Focus on the core topic and any specific technologies or methods mentioned.
If the question is clearly a request for a tutorial, be more specific in your keyword extraction.

User Question: "{user_question}"
Keywords:
"""

# Added logic in youtube_search_service for filtering highly relevant videos (conceptual)
def search_and_filter_tutorials(query):
    results = youtube_search_service.search(query)
    # Logic to filter results more suitable for tutorial videos (e.g., video length, channel info)
    filtered_results = [video for video in results if is_likely_tutorial(video)]
    return filtered_results

def is_likely_tutorial(video):
    # Simple heuristic: title includes 'tutorial', 'how to', 'guide', or
    # description has many relevant keywords, or video length is appropriate.
    title = video.get('title', '').lower()
    description = video.get('description', '').lower()
    duration = video.get('duration_seconds', 0)

    if any(keyword in title for keyword in ['tutorial', 'how to', 'guide']):
        return True
    if 'python' in description and 'web development' in description: # Example
        return True
    if 300 < duration < 3600: # Videos between 5 minutes and 1 hour
        return True
    return False
```

By integrating `gemini_llm_service`

and `youtube_search_service`

more closely and adjusting the logic to suit each service's characteristics, the system started working much more stably.

`gemini_llm_service`

and `youtube_search_service`

.
