{"id":29101980,"url":"https://github.com/tyilo/hs-collection-scanner","last_synced_at":"2025-07-19T20:03:19.949Z","repository":{"id":45442784,"uuid":"142805619","full_name":"tyilo/hs-collection-scanner","owner":"tyilo","description":null,"archived":false,"fork":false,"pushed_at":"2022-12-08T01:14:26.000Z","size":4502,"stargazers_count":0,"open_issues_count":2,"forks_count":0,"subscribers_count":3,"default_branch":"master","last_synced_at":"2024-04-24T03:16:50.092Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/tyilo.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2018-07-30T00:24:55.000Z","updated_at":"2024-04-24T03:16:50.094Z","dependencies_parsed_at":"2023-01-24T04:01:07.701Z","dependency_job_id":null,"html_url":"https://github.com/tyilo/hs-collection-scanner","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/tyilo/hs-collection-scanner","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tyilo%2Fhs-collection-scanner","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tyilo%2Fhs-collection-scanner/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tyilo%2Fhs-collection-scanner/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tyilo%2Fhs-collection-scanner/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/tyilo","download_url":"https://codeload.github.com/tyilo/hs-collection-scanner/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tyilo%2Fhs-collection-scanner/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":262497430,"owners_count":23320300,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","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":[],"created_at":"2025-06-28T21:08:59.868Z","updated_at":"2025-06-28T21:09:01.608Z","avatar_url":"https://github.com/tyilo.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Hearthstone Collection Scanner\n\nThis tool can be used to get a list of the cards in your Hearthstone collection.\nThese can then be exported to easy update your collection on [HearthPwn](https://hearthpwn.com/).\n\nThis tool doesn't rely on being able to read memory from the Hearthstone process, but instead uses image recognition to figure out which cards you own. So before the cards can be recognized, you need to have a screenshot of each page of your collection.\n\nCurrently the tool doesn't detect golden cards and assumes that you don't own more than 2 copies of any card.\n\n\nInstallation\n============\n\nPython 3 and `pipenv` is required to run the scripts and install the additional dependencies.\n\nTo install the additional dependencies run:\n\n```\npipenv install\n```\n\nThe script needs to get a list of the current collectible cards and images of them.\nTo do so you need to get an API key from [here](https://market.mashape.com/omgvamp/hearthstone) and then create a file called `.env`, with the following contents:\n\n```\nHS_API_KEY = '\u003cYour API key here\u003e'\n```\n\n\nTaking screenshots of your collection\n=====================================\n\nTo be able to find out what cards you own, the script needs a screenshot of each page of your collection. You need to place these in the `screenshots` directory.\n\nWhen taking screenshots of your collection it is important, that the filenames of the screenshots are lexicographically ordered, so that the first page of your collection is in the screenshot with the first filename.\n\nA helper tool `screengrabber` is provided to help with this on Linux.\n\nScreengrabber tool\n------------------\n\nTo use the screengrabber tool you need to have `imagemagick` and `xorg-xinput` installed.\n\nTo use it you need to first open Hearthstone and navigate to the first page of your collection.\n\nThen you should run the tool using:\n```\npipenv run ./screengrabber\n```\n\nand while it is running you should click through each page of your collection. When you reach the end, stop the tool by pressing ctrl+C.\n\nYou should now have a screenshot of each of your pages in the `screenshots` directory.\n\n\nRecognizing cards from the screenshots\n======================================\n\nAfter taking the screenshots, running:\n```\npipenv run ./card_detector\n```\n\nshould list all the cards in your collection and copy some javacript code. If you paste this code in your browser console on the HearthPwn collection editor site, it will update your collection.\n\nNote that this will probably take a long time to finish.\n\n\nTODO\n====\n\n- Support golden cards\n- Improve speed\n- Improve screengrabber\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftyilo%2Fhs-collection-scanner","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftyilo%2Fhs-collection-scanner","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftyilo%2Fhs-collection-scanner/lists"}