>_ DevTrendsen

Language

Home

Languages

Sections

Frontend Backend Mobile DevOps AI / ML GameDev Blockchain Embedded Security
JavaScript

How to Automate Link Lists: The awesome-zhuiju-free Catalog

GitHub link collections typically meet the same fate. The author gathers a hundred useful sites, gets a couple thousand stars, abandons the repository after six months, and half the links turn into 404s. The awesome-zhuiju-free repository solves this problem through engineering.

At first glance, this appears to be a catalog of Chinese media resources: streaming platforms, Android TV players, IPTV playlists, cloud storage search engines, and torrent trackers. However, from a technical perspective, the project is notable for its link availability checking implementation and data structure design.

laoma2053/awesome-zhuiju-free | Trendshift

What's Inside the Catalog

The project database covers around a hundred resources, organized by category:

  • Ready-made configurations and interfaces for TVBox and CatVod players
  • Content aggregators for Android-based TV set-top boxes
  • Open-source players and clients like Kazumi, Animeko, and SeleneTV
  • Links to public IPTV streams and parsers like iptv-org and iptv-api

The catalog authors evaluate each resource across four criteria: database size, response speed, absence of intrusive advertising, and domain stability. Scores are stored in JSON format, with the final rating displayed in the readme table.

Automatic Link Availability Checking via GitHub Actions

The repository's main feature lies in its CI/CD setup. Rather than manually removing dead links, the author configured a pipeline using GitHub Actions.

Scripts execute on a schedule every morning at 09:00 Beijing time, as well as with each commit containing new data. The process works as follows:

  1. The link database is stored in a separate file resources/resources.json.
  2. The Action triggers data schema validation validate-data.yml.
  3. The worker check-availability.yml pings each site and records the response code.
  4. Results are written to the report reports/availability.json.
  5. The script dynamically updates statuses in README.md, applying markers: green for operational sites, yellow for partial restrictions, and red for unavailable ones.

This approach transforms a static markdown file into a dynamic status dashboard.

Star History Chart

Repobeats

Data Storage Architecture

Each entry in the database is represented as a structured JSON object. Here's an example of the tracking structure:

{
  "id": "kazumi",
  "name": "Kazumi",
  "url": "https://kazumi.app/download",
  "category": "app",
  "platforms": ["Android", "iOS", "Windows", "macOS", "HarmonyOS"],
  "rating": {
    "volume": 5,
    "speed": 5,
    "cleanliness": 5,
    "stability": 5
  },
  "risk": {
    "copyright": "low",
    "security": "low",
    "privacy": "low"
  }
}

Separating content into resources.json and visual presentation in README.md streamlines pull request handling. Users submit new sites through standard GitHub Issues forms (YAML templates), and the maintainer only needs to verify rule compliance and approve the merge.

How This Project Benefits Developers

If you're looking for ready-made clients for home media centers or TV set-top boxes, you'll find links to current forks of FongMi TV, TVBox, pansou parsers, and Kazumi players.

If you maintain your own repository of useful tools (awesome-list), the project is worth forking for its automation structure:

  • Ready-made workflow for daily pinging of external addresses
  • Table generation with check dates and indicators directly in Markdown
  • Input data validation through GitHub Actions
  • Check history storage in JSON files within the repository

The catalog demonstrates how a simple link list can become a maintainable microservice using only GitHub Actions. You can explore the workflow structure or find Android TV media players in the laoma2053/awesome-zhuiju-free repository.

Related projects