{"id":15138618,"url":"https://github.com/trflorian/series-heatmap","last_synced_at":"2026-05-20T07:36:13.135Z","repository":{"id":63851989,"uuid":"570911314","full_name":"trflorian/series-heatmap","owner":"trflorian","description":"Scraper and heatmap plotter for episode ratings of series on IMDB","archived":false,"fork":false,"pushed_at":"2022-12-21T22:02:17.000Z","size":5874,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2026-04-27T15:15:29.797Z","etag":null,"topics":["episodes","heatmap","imdb","matplotlib-pyplot","python","ratings","scraper","selenium-webdriver","series","webscraping"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/trflorian.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2022-11-26T14:32:29.000Z","updated_at":"2022-11-27T14:04:24.000Z","dependencies_parsed_at":"2023-01-30T05:01:02.116Z","dependency_job_id":null,"html_url":"https://github.com/trflorian/series-heatmap","commit_stats":null,"previous_names":["trflorian/imdb-scraper-heatmap"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/trflorian/series-heatmap","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/trflorian%2Fseries-heatmap","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/trflorian%2Fseries-heatmap/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/trflorian%2Fseries-heatmap/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/trflorian%2Fseries-heatmap/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/trflorian","download_url":"https://codeload.github.com/trflorian/series-heatmap/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/trflorian%2Fseries-heatmap/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33250372,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-20T04:48:54.280Z","status":"ssl_error","status_checked_at":"2026-05-20T04:48:10.851Z","response_time":356,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["episodes","heatmap","imdb","matplotlib-pyplot","python","ratings","scraper","selenium-webdriver","series","webscraping"],"created_at":"2024-09-26T07:42:26.114Z","updated_at":"2026-05-20T07:36:13.116Z","avatar_url":"https://github.com/trflorian.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# IMDB Series Rating Scraper\n\n## Introduction\n\nThis tool scrapes the website https://www.imdb.com for ratings of individual episodes of a series.\nA csv file is generated to cache the ratings.\nUsing matplotlib, the tool then generates a heatmap representation of all episodes in the series.\nBecause this tools relies on scraping the html tree of the imdb page, it might break anytime. \nFeel free to message me if the scraper doesn't work anymore or create a pull request with adjusted xpaths.\n\n| ![](examples/img/Dark.png)  |  ![](examples/img/Breaking_Bad.png)  |\n|---------|-----|\n| ![](examples/img/Game_Of_Thrones.png) | ![](examples/img/NCIS_Naval_Criminal_Investigative_Service.png) |\n\n## Examples\n\n### Data output\n\nThe following table shows data that is generated by the scraper for the first season of **Breaking Bad**.\nFor the full data output see `examples/data/Breaking Bad.csv`.\n\n| season | episode | name                          | rating |\n|--------|---------|-------------------------------|--------|\n| 1      | 1       | Pilot                         | 9.0    |\n| 1      | 2       | Cat's in the Bag...           | 8.6    |\n| 1      | 3       | ...And the Bag's in the River | 8.7    |\n| 1      | 4       | Cancer Man                    | 8.2    |\n| 1      | 5       | Gray Matter                   | 8.3    |\n| 1      | 6       | Crazy Handful of Nothin'      | 9.3    |\n| 1      | 7       | A No-Rough-Stuff-Type Deal    | 8.8    |\n\n### Heatmap output\n\nThe following image shows an example of the heatmap that can be generated.\nHeatmaps of some example series can be found under `examples/img/`. \n\n![](examples/img/Breaking_Bad.png)\n\n## Quickstart\n\n### Dependencies\n\n- Python version `Python 3.9.13`\n- Python packages see `requirements.txt`\n\n### Setup\n\n1. Clone this repository\n\n| **HTTPS**  | `$ git clone https://github.com/trflorian/imdb-scraper-heatmap.git` |\n| ---|---|\n| **SSH** |`$ git clone git@github.com:trflorian/imdb-scraper-heatmap.git` |\n\n3. (Optional) Create a virtual environment for this project \n4. Install the required python packages in your python environment.\n\n`$ python -m pip install -r requirements.txt`\n\n5. Run `$ python scraper.py` to scrape the IMDB website for a specific series.\n6. Run `$ python heatmap.py` to create a plot for the scraped series.\n\n### Usage\n\n``` \n$ python .\\examples\\heatmap.py --help\n\nusage: heatmap.py [-h] [-s] [-d] [-o] [-n NAME]\n\noptional arguments:\n  -h, --help            show this help message and exit\n  -s, --show            show the heatmap plot instead of saving it\n  -d, --dark            use dark mode for the plot style\n  -o, --override        override existing plots, only used if show flag is not set\n  -n NAME, --name NAME  name of the series, if not set the whole data directory will be scanned\n```\n\n## Development\n\n\n### Upload to Pypi\n\n```python -m build```\n\n```python -m twine upload --skip-existing dist/*```","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftrflorian%2Fseries-heatmap","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftrflorian%2Fseries-heatmap","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftrflorian%2Fseries-heatmap/lists"}