NicoBot
Nicovideo Player bot for Discord, written from the scratch.
Install / Use
/learn @KokoseiJ/NicoBotREADME
Nicobot
Music bot that plays music from Nicovideo, written from the scratch, without using Discord.py.
What is this bot?
Just like its name, It plays songs from Nicovideo server. Streaming-related code is mostly from nico.py module from my previous bot, while Discord-side API wrapper is completely written from the scratch.
It currently uses urllib to communicate with their HTTP endpoints, websocket-client to communicate with Gateway.
Since It doesn't use coroutine on purpose, It currently uses threading library to parallelly run websockets and heartbeats.
Additionally, installing wsaccel package from pip is recommended, since UTF8 implementation in websocket-client can cause bottlenecks. wsaccel solves this by providing an alternative C implementation.
Use this link to invite the test bot: "IA -ARIA ON THE PLANETES-". WARNING: This bot is being used to test codes, and can be offline/unfunctionable time to time!
Why though? wasn't Discord.py enough?
Well, I just made it because I can ¯\_(ツ)_/¯
More specifically, since Discord.py heavily depends on coroutine which coufuses the hell out of beginners and make them write a spaghetti,
I thought we might need a corountine-less library. That's why I didn't use a famous websockets library(They stated that its purpose is to provide a convenient asynchronous API, not synchronous one.), and went with websocket-client instead.
Using threading instead of multiprocessing?! Cast it into the fire, DESTROY IT!!

I'm well aware that threading in python has a disadvantage due to Global Interpreter Lock. but since there are overheads in HTTP requests, I expect performance degradation caused by GIL to be ignorable. There's no test done regarding this, but I'm planning to do one. If it appears to degrade performance, I will gradually migrate to multiprocessing library.
Features
-
[x] Full Gateway V9 Implementation
-
[x] HTTP API requests
-
[x] Voice Connection
-
[x] Slash Command
-
[ ] User Command
-
[ ] Message Command
-
[ ] Message Components
-
[ ] Autocomplete
-
[ ] Modal
Contributions?
I'll happily accept any forms of contributions. but please do the followings:
-
Run tests to ensure the code is working correctly - Test suite is being prepared, so before that please do it manually.
-
Format your code properly using black or any other reformatting tools.
-
Properly comment your code following Google Python Style Guide.
PR will be merged after I'm done reviewing the changes.
Contact
You can reach out to me on:
E-mail: kokoseij@gmail.com
Discord: KokoseiJ#2113
Or issue tracker if you're trying to reach out regarding the bug or issue.
Please contact me if you have any questions. Thanks.
Related Skills
docs-writer
99.2k`docs-writer` skill instructions As an expert technical writer and editor for the Gemini CLI project, you produce accurate, clear, and consistent documentation. When asked to write, edit, or revie
model-usage
336.9kUse CodexBar CLI local cost usage to summarize per-model usage for Codex or Claude, including the current (most recent) model or a full model breakdown. Trigger when asked for model-level usage/cost data from codexbar, or when you need a scriptable per-model summary from codexbar cost JSON.
arscontexta
2.9kClaude Code plugin that generates individualized knowledge systems from conversation. You describe how you think and work, have a conversation and get a complete second brain as markdown files you own.
zola-ai
An autonomous Solana wallet agent that executes payments via Twitter mentions and an in-app dashboard, powered by Claude.
