← Build logs
AIMay 23, 2026

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

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.

Attempts and Pitfalls

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.

# 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.

The Cause

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.

The Solution

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.

Results

  • Successfully implemented the feature to automatically attach YouTube video footers for tutorial-style questions.
  • Secured efficient search results through the integration of gemini_llm_service and youtube_search_service.
  • Able to recommend highly relevant YouTube videos by better understanding the context of user questions.

Takeaways — To Avoid the Same Pitfalls

  • [ ] When extracting keywords from LLM services, design prompts that thoroughly consider the 'context' and 'intent' of the question.
  • [ ] For specific types of questions, like tutorial requests, strengthen the keyword generation logic to match that type.
  • [ ] Consider additional filtering logic to increase the 'relevance' of results returned by search services.
  • [ ] When integrating two or more services, understand the strengths and weaknesses of each service and design complementary logic.