# srini-kumar/rssfeedscraper architecture

> Architecture diagram of the GitHub repository srini-kumar/rssfeedscraper, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-09-29). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/srini-kumar/rssfeedscraper
- Repository: https://github.com/srini-kumar/rssfeedscraper

## Overview

The repository generates separate entertainment RSS feeds by source, category, and language. Its main workflow scrapes Times of India movies, 91Mobiles OTT releases and web series, and 1TamilMV titles; organizes results into feeds; and publishes the static XML files through GitHub Pages. The sampled source shows fetching and feed generation, while the README documents the full feed set and hourly automation. Some orchestration details and the workflow implementation were not sampled.

Main entry points: [`generate_rss.py`](https://github.com/srini-kumar/rssfeedscraper/blob/main/generate_rss.py) (Feed generator), [`.github/workflows/update_rss.yml`](https://github.com/srini-kumar/rssfeedscraper/blob/main/.github/workflows/update_rss.yml) (Update workflow), [`feed_91mobiles_ott_english.xml`](https://github.com/srini-kumar/rssfeedscraper/blob/main/feed_91mobiles_ott_english.xml) (OTT language feeds), [`feed_91mobiles_series_english.xml`](https://github.com/srini-kumar/rssfeedscraper/blob/main/feed_91mobiles_series_english.xml) (Series language feeds)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_orchestration["Automation"]
  node_workflow["Update workflow<br/>[update_rss.yml]"]
  node_generator["Feed generator<br/>[generate_rss.py]"]
end

subgraph group_scraping["Source scraping"]
  node_toi["TOI movies<br/>[generate_rss.py]"]
  node_mobiles_ott["91Mobiles OTT<br/>[generate_rss.py]"]
  node_mobiles_series["91Mobiles series<br/>[generate_rss.py]"]
  node_tamilmv["1TamilMV titles<br/>[generate_rss.py]"]
  node_fetch["HTTP fetching<br/>[generate_rss.py]"]
end

subgraph group_feeds["RSS feeds"]
  node_toi_feeds["TOI language feeds"]
  node_ott_feeds["OTT language feeds"]
  node_series_feeds["Series language feeds"]
  node_tamilmv_feed["1TamilMV feed"]
end

subgraph group_publishing["Static publishing"]
  node_pages["GitHub Pages"]
end

node_schedule(("Hourly schedule"))
node_toi_source(("Times of India"))
node_mobiles_source(("91Mobiles"))
node_tamilmv_source(("1TamilMV"))

node_schedule -->|"triggers"| node_workflow
node_workflow -->|"runs"| node_generator
node_generator -->|"scrapes"| node_toi
node_generator -->|"scrapes"| node_mobiles_ott
node_generator -->|"scrapes"| node_mobiles_series
node_generator -->|"scrapes"| node_tamilmv
node_toi -->|"requests pages"| node_fetch
node_mobiles_ott -->|"requests pages"| node_fetch
node_mobiles_series -->|"requests pages"| node_fetch
node_tamilmv -->|"requests pages"| node_fetch
node_toi_source -->|"serves pages"| node_fetch
node_mobiles_source -->|"serves pages"| node_fetch
node_tamilmv_source -->|"serves pages"| node_fetch
node_generator -->|"writes feeds"| node_toi_feeds
node_generator -->|"writes feeds"| node_ott_feeds
node_generator -->|"writes feeds"| node_series_feeds
node_generator -->|"writes feed"| node_tamilmv_feed
node_toi_feeds -->|"published by"| node_pages
node_ott_feeds -->|"published by"| node_pages
node_series_feeds -->|"published by"| node_pages
node_tamilmv_feed -->|"published by"| node_pages

click node_workflow "https://github.com/srini-kumar/rssfeedscraper/blob/main/.github/workflows/update_rss.yml"
click node_generator "https://github.com/srini-kumar/rssfeedscraper/blob/main/generate_rss.py"
click node_toi "https://github.com/srini-kumar/rssfeedscraper/blob/main/generate_rss.py"
click node_mobiles_ott "https://github.com/srini-kumar/rssfeedscraper/blob/main/generate_rss.py"
click node_mobiles_series "https://github.com/srini-kumar/rssfeedscraper/blob/main/generate_rss.py"
click node_tamilmv "https://github.com/srini-kumar/rssfeedscraper/blob/main/generate_rss.py"
click node_fetch "https://github.com/srini-kumar/rssfeedscraper/blob/main/generate_rss.py"
click node_ott_feeds "https://github.com/srini-kumar/rssfeedscraper/blob/main/feed_91mobiles_ott_english.xml"
click node_series_feeds "https://github.com/srini-kumar/rssfeedscraper/blob/main/feed_91mobiles_series_english.xml"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_workflow,node_generator toneBlue
class node_toi,node_mobiles_ott,node_mobiles_series,node_tamilmv,node_fetch toneAmber
class node_toi_feeds,node_ott_feeds,node_series_feeds,node_tamilmv_feed toneMint
class node_pages toneRose
class node_schedule,node_toi_source,node_mobiles_source,node_tamilmv_source toneIndigo
```

## Components

### Automation

- [Update workflow](https://github.com/srini-kumar/rssfeedscraper/blob/main/.github/workflows/update_rss.yml): `.github/workflows/update_rss.yml`
- [Feed generator](https://github.com/srini-kumar/rssfeedscraper/blob/main/generate_rss.py): `generate_rss.py`

### Source scraping

- [TOI movies](https://github.com/srini-kumar/rssfeedscraper/blob/main/generate_rss.py): `generate_rss.py`
- [91Mobiles OTT](https://github.com/srini-kumar/rssfeedscraper/blob/main/generate_rss.py): `generate_rss.py`
- [91Mobiles series](https://github.com/srini-kumar/rssfeedscraper/blob/main/generate_rss.py): `generate_rss.py`
- [1TamilMV titles](https://github.com/srini-kumar/rssfeedscraper/blob/main/generate_rss.py): `generate_rss.py`
- [HTTP fetching](https://github.com/srini-kumar/rssfeedscraper/blob/main/generate_rss.py): `generate_rss.py`

### RSS feeds

- **TOI language feeds**
- [OTT language feeds](https://github.com/srini-kumar/rssfeedscraper/blob/main/feed_91mobiles_ott_english.xml): `feed_91mobiles_ott_english.xml`
- [Series language feeds](https://github.com/srini-kumar/rssfeedscraper/blob/main/feed_91mobiles_series_english.xml): `feed_91mobiles_series_english.xml`
- **1TamilMV feed**

### Static publishing

- **GitHub Pages**

### Other components

- **Hourly schedule**
- **Times of India**
- **91Mobiles**
- **1TamilMV**

## Connections

- Hourly schedule → Update workflow: triggers
- Update workflow → Feed generator: runs
- Feed generator → TOI movies: scrapes
- Feed generator → 91Mobiles OTT: scrapes
- Feed generator → 91Mobiles series: scrapes
- Feed generator → 1TamilMV titles: scrapes
- TOI movies → HTTP fetching: requests pages
- 91Mobiles OTT → HTTP fetching: requests pages
- 91Mobiles series → HTTP fetching: requests pages
- 1TamilMV titles → HTTP fetching: requests pages
- Times of India → HTTP fetching: serves pages
- 91Mobiles → HTTP fetching: serves pages
- 1TamilMV → HTTP fetching: serves pages
- Feed generator → TOI language feeds: writes feeds
- Feed generator → OTT language feeds: writes feeds
- Feed generator → Series language feeds: writes feeds
- Feed generator → 1TamilMV feed: writes feed
- TOI language feeds → GitHub Pages: published by
- OTT language feeds → GitHub Pages: published by
- Series language feeds → GitHub Pages: published by
- 1TamilMV feed → GitHub Pages: published by
