An application for English speakers to learn German through YouTube videos. The app fetches YouTube transcripts, generates interactive quizzes using AI, and tracks learning progress.
Try the app live at: https://germantube.streamlit.app/
- Paste any German YouTube video URL
- Automatically fetch German transcripts
- Generate AI-powered quizzes based on video content
- Multiple quiz types: multiple choice, fill-in-the-blank, vocabulary
- Adjustable difficulty levels (beginner, intermediate, advanced)
- Track learning progress over time
- Visit https://germantube.streamlit.app/
- Paste a German YouTube video URL in the input field
- Select your preferred quiz type and difficulty level
- Click "Generate Quiz"
- Complete the quiz and submit to see your results
- View your learning history in the History tab
- Python 3.8+
- OpenAI API key
-
Clone this repository:
git clone https://github.com/AnjaBuckley/GermanTube-Learning.git cd GermanTube-Learning -
Install dependencies:
pip install -r requirements.txt -
Create a
.envfile with your OpenAI API key:cp .env.example .env # Edit .env with your actual API key
Start the Streamlit app:
streamlit run app.py
The app is deployed using Streamlit Cloud. For your own deployment:
- Fork this repository
- Sign up for Streamlit Cloud
- Create a new app pointing to your forked repository
- Add your OpenAI API key in the Streamlit Cloud secrets:
[openai] api_key = "your-actual-openai-api-key"
- Frontend: Streamlit for the user interface
- APIs:
- YouTube Transcript API for fetching video transcripts
- OpenAI API for generating quizzes
- Database: SQLite for storing user quiz results
- Deployment: Streamlit Cloud
app.py: Main Streamlit applicationdatabase.py: Database operationsrequirements.txt: Project dependencies.env.example: Template for environment variables
- User authentication
- More quiz types (listening comprehension, pronunciation)
- Spaced repetition for vocabulary learning
- Progress tracking with visualizations
- Video recommendations based on skill level
Contributions are welcome! Please feel free to submit a Pull Request.
MIT