{"id":15066021,"url":"https://github.com/AedDev/Twitchery.Net","last_synced_at":"2026-04-04T17:58:52.192Z","repository":{"id":257468102,"uuid":"858171351","full_name":"zion-networks/Twitchery.Net","owner":"zion-networks","description":"Freshly born library to access Twitch stuff.","archived":false,"fork":false,"pushed_at":"2024-10-07T21:35:41.000Z","size":238,"stargazers_count":8,"open_issues_count":4,"forks_count":0,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-03-24T12:21:26.503Z","etag":null,"topics":["dotnet","twitch","twitch-api"],"latest_commit_sha":null,"homepage":"https://twitch.tv/zionnetworks","language":"C#","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/zion-networks.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":".github/FUNDING.yml","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},"funding":{"github":null,"patreon":null,"open_collective":null,"ko_fi":"zionnetworks","tidelift":null,"community_bridge":null,"liberapay":null,"issuehunt":null,"lfx_crowdfunding":null,"polar":null,"buy_me_a_coffee":null,"thanks_dev":null,"custom":null}},"created_at":"2024-09-16T12:41:33.000Z","updated_at":"2024-09-29T20:58:09.000Z","dependencies_parsed_at":null,"dependency_job_id":"c9019d21-3b72-43fd-9573-b7a315c0ccee","html_url":"https://github.com/zion-networks/Twitchery.Net","commit_stats":null,"previous_names":["zion-networks/twitchery.net"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zion-networks%2FTwitchery.Net","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zion-networks%2FTwitchery.Net/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zion-networks%2FTwitchery.Net/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zion-networks%2FTwitchery.Net/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/zion-networks","download_url":"https://codeload.github.com/zion-networks/Twitchery.Net/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248225878,"owners_count":21068079,"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":["dotnet","twitch","twitch-api"],"created_at":"2024-09-25T00:59:55.629Z","updated_at":"2026-04-04T17:58:52.117Z","avatar_url":"https://github.com/zion-networks.png","language":"C#","funding_links":["https://ko-fi.com/zionnetworks"],"categories":[],"sub_categories":[],"readme":"# Twitchery.Net - A .NET library for Twitch\nFreshly born library to access Twitch stuff, designed to be simple, efficient and easy to use.\nWe want you to be able to create your own Twitch bots, chat clients, stream viewers, and more with ease.\n\n\u003e [!WARNING]  \n\u003e  **This library is still under heavy development and not ready for production use.**\n\nYou can check the current implementation status here: [Implementation Status](RouteImplementations.md)\n\n# Using Twitchery.Net: For Developers, Contributors and Testers\n\n## Getting Started as a Developer\n\n1. Create a new Twitch application at [Twitch Developer Console](https://dev.twitch.tv/console/apps)\n2. Create a new .NET8+ project or open an existing one\n3. Install the library from NuGet: `dotnet add package TwitcheryNet --prerelease`\n4. Start coding!\n\n### Example Usage\n\n```csharp\nusing TwitcheryNet.Models.Helix.Channels;\nusing TwitcheryNet.Services.Implementations;\n\nconst string myClientId = \"your-client-id\"; // Get this from your Twitch application\nconst string myRedirectUri = \"http://localhost:8181\"; // Must match the one in your Twitch application\nvar myScopes = new[]\n{\n    \"chat:read\",\n    \"chat:edit\",\n    \"user:read:chat\",\n    \"channel:moderate\",\n    \"channel:read:subscriptions\",\n    \"moderator:read:followers\"\n};\n\n// Create a new Twitchery instance\nvar twitchery = new Twitchery();\n\n// Authenticate with the user's default browser (Windows, Linux and OSX supported)\n// If none is available, a URL will be printed to the console\nawait twitchery.UserBrowserAuthAsync(myClientId, myRedirectUri, myScopes);\n\n// Print the user's display name\nConsole.WriteLine(\"Logged in as: \" + twitchery.Me!.DisplayName);\n\n// Get the authenticated user's channel\nvar myChannel = twitchery.Me.Channel;\n\n// How many followers do I have?\n// This will fetch all followers, so it may take a while if you have a lot\n// In a future version, you'll be able to access the total amount and the recent followers more easy\nvar followerCount = 0;\nFollower lastFollower = null;\nawait foreach (var follower in myChannel.Followers)\n{\n    // The first follower in the list is the most recent one\n    if (lastFollower is null)\n    {\n        lastFollower = follower;\n    }\n    \n    followerCount++;\n}\n\nConsole.WriteLine(\"I have {0} followers\", followerCount);\n\n// Am I streaming right now?\nvar myStream = twitchery.Streams[twitchery.Me!.Login];\nif (myStream is null)\n{\n    Console.WriteLine(\"I'm not streaming right now\");\n}\nelse\n{\n    Console.WriteLine(\"I'm streaming {0} for {1} viewers!\", myStream.GameName, myStream.ViewerCount);\n}\n\n// Who was the last person to follow me?\nConsole.WriteLine(\"My last follower was {0}, who followed on {1}!\", lastFollower.UserName, lastFollower.FollowedAt);\n\n// Listen for events\nmyChannel.ChatMessage += (sender, e) =\u003e\n{\n    Console.WriteLine(\"{0} said: {1}\", e.ChatterUserName, e.Message.Text);\n    return Task.CompletedTask;\n};\n\nmyChannel.Follow += (sender, e) =\u003e\n{\n    Console.WriteLine(\"{0} followed me!\", e.UserName);\n    return Task.CompletedTask;\n};\n\nmyChannel.Subscribe += (sender, e) =\u003e\n{\n    Console.WriteLine(\"{0} subscribed to me!\", e.UserName);\n    return Task.CompletedTask;\n};\n\nConsole.WriteLine(\"Press any key to exit...\");\n\n// This is required to keep the bot running until the user presses a key\n// To keep the bot running indefinitely, you can use `await Task.Delay(-1);`\nawait Task.Run(Console.ReadKey);\n\n// Yes, it's that simple!\n```\n\n## Getting Started as a Contributor\n\nFollow the contribution guidelines in [CONTRIBUTING.md](CONTRIBUTING.md) to get started.","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FAedDev%2FTwitchery.Net","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FAedDev%2FTwitchery.Net","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FAedDev%2FTwitchery.Net/lists"}