Skip to content

Hands On with Backend - YouTube Search #4

Open
@suchita-mehta

Description

@suchita-mehta

Project Goal

To make an API to fetch latest videos sorted in reverse chronological order of their publishing date-time from YouTube for a given tag/search query in a paginated response.

Basic Requirements:

  • Server should call the YouTube API continuously in background (async) with some interval (say 10 seconds) for fetching the latest videos for a predefined search query and should store the data of videos (specifically these fields - Video title, description, publishing datetime, thumbnails URLs and any other fields you require) in a database with proper indexes.
  • A GET API which returns the stored video data in a paginated response sorted in descending order of published datetime.
  • A basic search API to search the stored videos using their title and description.
  • Dockerize the project.
  • It should be scalable and optimised.

Challenge Yourselves:

  • Add support for supplying multiple API keys so that if quota is exhausted on one, it automatically uses the next available key.
  • Make a dashboard to view the stored videos with filters and sorting options (optional)
  • Optimise search api, so that it's able to search videos containing partial match for the search query in either video title or description.
    • Ex 1: A video with title How to make tea? should match for the search query tea how

Instructions:

  • You are free to choose any search query, for example: official, cricket, football etc. (choose something that has high frequency of video uploads)
  • Try and keep your commit messages clean, and leave comments explaining what you are doing wherever it makes sense.
  • Also try and use meaningful variable/function names, and maintain indentation and code style.
  • Submission should have a README file containing instructions to run the server and test the API.
  • Accepted language & Framework
    1. Python (DRF, Django, Flask, etc)
    2. GoLang
    3. JavaScript
    4. Java/SpringBoot

Reference:

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    Status

    Todo

    Status

    Todo

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions