ManimCommunity / ManimCommunity/manim-website-api

Ideas for the API

Open
#2 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
Python
Stars
5
Forks
3
PR merge metrics
No merged PRs in 30d

Description

We are about to deploy the initial version of the API which currently provides data for the awesome-manim feed on the website (corresponding PR for the website https://github.com/ManimCommunity/manim-website/pull/73)

The scraper currently:

  • fetches the list of all YouTube channel links from the README file
  • scrapes the publicly available RSS feeds that are available from https://www.youtube.com/feeds/videos.xml?channel_id=xxxxxxx.
  • searches for the substrings Manim (case insensitive), #some (case insensitive), SoME (case sensitive) in the video title or description. When found, the videos are marked as "being manim videos".
  • The scraper then puts them on a MySQL database and serves videos chronologically on a paginated endpoint /videos/n, 30 videos at a time.

This issue records some ideas we could implement in the future based on feedback.

  • A deeper scrape of all the channels (RSS feeds just return the latest 15 videos)
  • An algorithmic feed that prioritizes videos with higher engagement, but still retains the chronological ordering to some degree
  • ...

Feel free to discuss these and propose any other ideas.

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

No files, tests, or concrete acceptance criteria are identified. Start by reviewing the current scraper and the paginated /videos/n endpoint, then choose one proposal, such as deeper channel scraping or engagement-based ordering. Before implementation, define the required behavior and what constitutes a complete result.

Written by the indexing model from the issue text.

Assessment

Tech stack
mysql, python
Domain
api, backend, databases
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
20/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.