{"id":18267467,"url":"https://github.com/freaktechnik/twitchbots","last_synced_at":"2026-03-17T18:02:25.915Z","repository":{"id":54135625,"uuid":"46535817","full_name":"freaktechnik/twitchbots","owner":"freaktechnik","description":"A directory of Twitch chat bot accounts","archived":false,"fork":false,"pushed_at":"2025-08-29T18:29:52.000Z","size":1777,"stargazers_count":12,"open_issues_count":32,"forks_count":2,"subscribers_count":3,"default_branch":"main","last_synced_at":"2025-08-29T20:54:23.002Z","etag":null,"topics":["bot","directory","mysql","pdo","php","slim","twitch"],"latest_commit_sha":null,"homepage":"https://twitchbots.info","language":"PHP","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/freaktechnik.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,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2015-11-20T03:07:43.000Z","updated_at":"2025-08-29T18:29:56.000Z","dependencies_parsed_at":"2025-04-04T22:40:47.970Z","dependency_job_id":null,"html_url":"https://github.com/freaktechnik/twitchbots","commit_stats":null,"previous_names":[],"tags_count":153,"template":false,"template_full_name":null,"purl":"pkg:github/freaktechnik/twitchbots","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/freaktechnik%2Ftwitchbots","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/freaktechnik%2Ftwitchbots/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/freaktechnik%2Ftwitchbots/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/freaktechnik%2Ftwitchbots/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/freaktechnik","download_url":"https://codeload.github.com/freaktechnik/twitchbots/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/freaktechnik%2Ftwitchbots/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":30628405,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-17T17:32:55.572Z","status":"ssl_error","status_checked_at":"2026-03-17T17:32:38.732Z","response_time":56,"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":["bot","directory","mysql","pdo","php","slim","twitch"],"created_at":"2024-11-05T11:27:32.541Z","updated_at":"2026-03-17T18:02:25.909Z","avatar_url":"https://github.com/freaktechnik.png","language":"PHP","readme":"# ![](public/favicon.png) Twitch Bot Directory\n\n\u003e [!IMPORTANT]\n\u003e **Project deprecation notice**:\n\u003e Twitch now offers native chat bot identification in their chat product:\n\u003e https://dev.twitch.tv/docs/chat/#chatbot-badge-and-chat-identity\n\u003e\n\u003e As such this service should no longer be needed and thus only minimal maintenance will continue and new data will no longer be added.\n\n[![codecov](https://codecov.io/gh/freaktechnik/twitchbots/branch/master/graph/badge.svg)](https://codecov.io/gh/freaktechnik/twitchbots)\n\nA directory of Twitch chat bot accounts.\n\nThis is the code used for [twitchbots.info](https://twitchbots.info).\n\nThanks to [Mini2](https://github.com/panique/mini2) for the great base template.\n\n## License\n\nThe code in this repo is licensed under the MIT license.\n\n## Used APIs\n\nThanks to the following APIs, the service can try to curate the list as best as it can on its own:\n\n- [Twitch API](https://github.com/justintv/Twitch-API)\n- [3v.fi Twitch Mod Check API](https://t.3v.fi/modlookup/docs)\n- FrankerFaceZ bots list\n- BetterTTV channel bots list\n\nSee [Configuration](#configuration) for details on required credentials for the respective APIs.\n\n## Set up\n\n### Database\n\nThe SQL table layout is currently not public, but can be\nreverse-engineered from the code (look at the unit tests setup.php, or sometimes\nas a comment in the table wrapper class).\n\n### PHP Dependencies\n\nTo install all the dependencies get [Composer](https://getcomposer.org/download)\nand then run `composer install` or `php composer.phar install`, depending on how\nyou installed it. This will then download all the deps and set them up.\n\n### Cron Job\n\nIt is recommended to set up a cron job that runs `php Mini/console.php check`\nevery so often. The job removes any bots whose account has since been deleted on\ntwitch. You can also split it out to make fewer API requests in one job.\n\n### Configuration\n\nThere are two configurations: one is a config.php in a folder called \"lib\" in the\nroot of the project and contains all configuration needed before the DB connection\nis established. Almost all values defined by it can be found in the index.php files.\n\nThen there is the config table, which holds key/value pairs for configuration.\nYou should manually set the following:\n\n- 28_URL: URL to crawl for ModBot.\n- checks_per_day: Number of bot pruning runs per day. Needs to be at least 1,\n  recommended are at least one per hour.\n- client-ID: [Twitch Client-ID](https://dev.twitch.tv/docs#client-id)\n- client-secret: Twitch client secret\n- 3v-ua: User Agent for the Mod Checker API\n- auth0_domain, auth0_redirectUrl, auth0_clientId, auth0_clientSecret: auth0 configuration\n\n### Pitfalls\n\n#### Crawlers\n\nAll TypeCrawlers currently rely on the type ID. This means your DeepBots have to\nhave id 22, ModBots 28 and Pajbots 44. I hope to fix this in the future.\n\n### Run tests\n\nAfter installing Composer you can run the unit tests:\n\n```bash\nphp vendor/bin/phpunit --bootstrap vendor/autload.php test\n```\n\nYou might want to customize the `phpunit.xml` to match the database credentials\nof your system. The unit tests expect a database called `twitchbots`.\n\n## Contributors\n\nThanks goes to these wonderful people ([emoji key](https://github.com/kentcdodds/all-contributors#emoji-key)):\n\n\u003c!-- ALL-CONTRIBUTORS-LIST:START - Do not remove or modify this section --\u003e\n\u003c!-- prettier-ignore --\u003e\n| [\u003cimg src=\"https://avatars0.githubusercontent.com/u/640949?v=4\" width=\"100px;\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eMartin Giger\u003c/b\u003e\u003c/sub\u003e](https://humanoids.be)\u003cbr /\u003e[💻](https://github.com/freaktechnik/twitchbots/commits?author=freaktechnik \"Code\") [🐛](https://github.com/freaktechnik/twitchbots/issues?q=author%3Afreaktechnik \"Bug reports\") [🚇](#infra-freaktechnik \"Infrastructure (Hosting, Build-Tools, etc)\") [📖](https://github.com/freaktechnik/twitchbots/commits?author=freaktechnik \"Documentation\") [💡](#example-freaktechnik \"Examples\") | [\u003cimg src=\"https://avatars3.githubusercontent.com/u/8625450?v=4\" width=\"100px;\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003enD00rn\u003c/b\u003e\u003c/sub\u003e](https://github.com/nD00rn)\u003cbr /\u003e[📖](https://github.com/freaktechnik/twitchbots/commits?author=nD00rn \"Documentation\") | [\u003cimg src=\"https://fiverr-res.cloudinary.com/t_profile_original,q_auto,f_auto/attachments/profile/photo/7430d3f11c372d8fcae51674276bfa51-1503422143339/9ea8d44f-b3d4-41c4-ac8b-cd4038d95adc.jpg\" width=\"100px;\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eLuis Muñiz\u003c/b\u003e\u003c/sub\u003e](https://www.linkedin.com/in/luismuniz1)\u003cbr /\u003e[🎨](#design-luism03 \"Design\") | [\u003cimg src=\"https://avatars1.githubusercontent.com/u/3787686?v=4\" width=\"100px;\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eCBenni\u003c/b\u003e\u003c/sub\u003e](https://github.com/CBenni)\u003cbr /\u003e[🤔](#ideas-CBenni \"Ideas, Planning, \u0026 Feedback\") |\n| :---: | :---: | :---: | :---: |\n\u003c!-- ALL-CONTRIBUTORS-LIST:END --\u003e\n\nThis project follows the [all-contributors](https://github.com/kentcdodds/all-contributors) specification. Contributions of any kind welcome!\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffreaktechnik%2Ftwitchbots","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ffreaktechnik%2Ftwitchbots","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffreaktechnik%2Ftwitchbots/lists"}