Skip to content

DavidZirinsky/tldw-site

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

20 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

TL;DW - AI-Powered YouTube Video Summaries

TL;DW Logo

TL;DW is a web application that saves you time by providing AI-powered summaries of YouTube videos. Paste a YouTube link and get the key takeaways instantly, without watching the whole video. See it in action here

This utilizes the python tldw library on the backend to get the YouTube summaries.

✨ Features

  • AI-Powered Summaries: Get concise and accurate summaries of any YouTube video.
  • Streaming Responses: See the summary generated in real-time.
  • Sleek Interface: A modern and user-friendly interface for a smooth experience.
  • Time-Saving: Avoids long intros, ads, and filler content to get straight to the point.

🛠️ Tech Stack

Note on Fly: This was originally deployed in an AWS lambda, then GCS cloud run, then finally to Fly as I hoped that I could find a cloud provider who's IP range wasn't blocked by Youtube. I ended up going with a redisential proxy provider, but I kept the deployment in Fly given the generous egress traffic limit of ~160gb/month versus GCP's 1gb/month limit.

🚀 Getting Started

Prerequisites

Installation

  1. Clone the repository:

    git clone https://github.com/DavidZirinsky/tldw-site.git
    cd tldw-site
  2. Setup Backend:

    • Navigate to the backend directory: cd backend
    • Set up your environment variables by copying the example:
      cp .env.example .env
    • Fill in your OPENAI_API_KEY and other variables in the .env file.
    • Run the backend server:
      docker compose up -d && docker logs tldw -f
  3. Setup Frontend:

    • In a new terminal, navigate to the frontend directory: cd frontend
    • Install dependencies:
      pnpm install
    • Run the development server:
      pnpm run dev

🔍 Linting

To run the linter and check for code quality, run the following command in the frontend directory:

pnpm run lint

🔧 Troubleshooting

Common Issues

  • "Module not found" errors: Make sure you've run pnpm install in the frontend directory
  • Backend connection failed: Ensure Docker is running and the backend container is up with docker compose up -d
  • OpenAI API errors: Check that your OPENAI_API_KEY is correctly set in the .env file
  • Port already in use: The frontend runs on port 3000 and backend on 8000. Kill any processes using these ports or change them in the configuration
  • Docker permission denied: On Linux, you may need to run Docker commands with sudo or add your user to the docker group

🚀 Deployment

This project is configured for deployment on Fly.io.

  1. Create a Fly.io app:

    fly apps create tl-dw
  2. Import secrets: Make sure your .env file is populated, then run:

    fly secrets import < .env
  3. Deploy the application:

    fly deploy

🤝 Contributing

We welcome contributions to TL;DW! Here's how you can help:

  1. Fork the repository and create your feature branch from main
  2. Make your changes following the existing code style and conventions
  3. Test your changes by running the linter: pnpm run lint in the frontend directory
  4. Commit your changes with a clear and descriptive commit message
  5. Push to your fork and submit a pull request

Development Guidelines

  • Follow the existing code style and formatting
  • Add comments for complex logic
  • Test your changes thoroughly before submitting
  • Keep commits focused and atomic
  • Write clear commit messages

For bug reports or feature requests, please open an issue on GitHub.

About

The Source code the tldw site: www.youtubetldw.com/

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors