{"id":15639300,"url":"https://github.com/healeycodes/bandwidth-checker","last_synced_at":"2025-04-30T07:05:48.781Z","repository":{"id":112377858,"uuid":"202556269","full_name":"healeycodes/bandwidth-checker","owner":"healeycodes","description":"⚡ Test and graph your internet bandwidth over time","archived":false,"fork":false,"pushed_at":"2020-01-08T19:04:44.000Z","size":7172,"stargazers_count":86,"open_issues_count":0,"forks_count":13,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-04-30T07:05:39.034Z","etag":null,"topics":["bandwidth","bandwidth-monitor","bandwidth-test","raspberry-pi"],"latest_commit_sha":null,"homepage":"https://healeycodes.com/webdev/javascript/python/opensource/2019/08/22/bot-vs-isp.html","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/healeycodes.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,"governance":null}},"created_at":"2019-08-15T14:30:52.000Z","updated_at":"2022-09-01T19:11:01.000Z","dependencies_parsed_at":"2023-05-14T04:00:36.154Z","dependency_job_id":null,"html_url":"https://github.com/healeycodes/bandwidth-checker","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/healeycodes%2Fbandwidth-checker","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/healeycodes%2Fbandwidth-checker/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/healeycodes%2Fbandwidth-checker/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/healeycodes%2Fbandwidth-checker/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/healeycodes","download_url":"https://codeload.github.com/healeycodes/bandwidth-checker/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":251658200,"owners_count":21622819,"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":["bandwidth","bandwidth-monitor","bandwidth-test","raspberry-pi"],"created_at":"2024-10-03T11:25:19.916Z","updated_at":"2025-04-30T07:05:48.759Z","avatar_url":"https://github.com/healeycodes.png","language":"Python","readme":"# ⚡ Bandwidth Checker ⚡\n\n\u003e My blog post: [I Built a Bot to Try and Get Money Back From My Internet Provider](https://healeycodes.com/webdev/javascript/python/opensource/2019/08/22/bot-vs-isp.html)\n\n\u003cbr\u003e\n\n![preview image](https://github.com/healeycodes/bandwidth-checker/raw/master/graphexample.png \"Image of scatter graph bandwidth results\")\n\n\u0026nbsp;\n\nSome ISPs promise money back if your bandwidth goes below a certain level.\n\nThis project includes two automated methods of testing download speed.\n  - Speedtest's CLI.\n  - Headless Chromium browser via Netflix's fast.com.\n\nA Node server displays a scatter graph of the recent bandwidth results via Chart.js.\n\nI run my own setup on a Raspberry Pi connected to my router via ethernet.\n\n\u0026nbsp;\n\n## Install\n\n### Client\n\n`cd client`\n\n`pip install requests`\n\nand one of the following\n\n**Speedtest CLI**:\n\n`pip install speedtest-cli`\n\n**Headless browser**:\n\n`pip install selenium`\n\n### Server\n\n`cd server`\n\n`npm install`\n\n\u0026nbsp;\n\n## Run\n\n### Client\n\nSetup a cron job to run either version.\n\n**Speedtest CLI**:\n\n```\ncd client\npython clitest.py 'https://server-location/save' 'password'\n```\n\nWhere the arguments are:\n- Path to the endpoint to save the results.\n- Password for that endpoint.\n\n**Headless browser**:\n\n`python browsertest.py '/usr/lib/chromium-browser/chromedriver' 'https://server-location/save' 'password'`\n\nWhere the arguments are:\n- Path to the ChromeDriver executable (watch out for version clashes).\n- Path to the endpoint to save the results.\n- Password for that endpoint.\n\n### Server\n\nSetup password, and port (default: 3000):\n```\nUnix Bash (Linux, Mac, etc.):\n$ export SECRET=hello\n$ export PORT=3000\n\nWindows CMD:\n\u003e set SECRET=hello\n\u003e set PORT=3000\n\nWindows PowerShell:\n\u003e $env:SECRET = \"hello\"\n\u003e $env:PORT = \"3000\"\n```\n\n```\ncd server\nnpm start\n```\n\nVisit the root path `/` to view bandwidth results.\n\nBandwidth results are stored by the client via `/save`\n\n\u0026nbsp;\n\n### Contributing\n\nFeel free to raise any issues and submit any reasonable pull requests.\n\n\u0026nbsp;\n\n### License\n\nMIT (see LICENSE.md).\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhealeycodes%2Fbandwidth-checker","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fhealeycodes%2Fbandwidth-checker","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhealeycodes%2Fbandwidth-checker/lists"}