Skip to content

Sekoree/MikuSharp

Repository files navigation

MikuSharp

The Full C# version of the Hatsune Miku Discord bot!

The bot

Rewritten from JS to C# with completely redone Music part!

Not affiliated with Crypton Future Media. This bot features an adaptation of Hatsune Miku, © Crypton Future Media, Inc. 2007, licensed under a CC BY-NC: https://creativecommons.org/licenses/by-nc/3.0/.

Contact

If you have good C# knowledge and want to help, feel free to contact us on Discord.

What this is for

If you want to support the bot and/or fix bugs or add documentation, feel free to fork this and then submit a pull request with changes!

Requirements

General

You need to init the submodules to get the nnd project:

git submodule init
git submodule sync
git submodule update

Linux

  • python3
  • python3-pip
  • nndownload
  • youtube-dl
  • ffmpeg
Install python stuff
#!/bin/bash
echo "Installing Python"
apt install python3 python3-pip -y
echo "Done"
echo "Installing nnddownloader"
pip3 install nndownload
echo "Done"

Lavalink

Download lavalink v3.5-rc4

This configuration is a bit different.

  • We use an youtube account to avoid age-restrictions
  • Additionally an spotify developer application is needed
server:
  port: 2333
  address: 0.0.0.0
lavalink:
  server:
    password: "YOU_SHALL_NOT_PASS"
    sources:
      youtube: true
      bandcamp: true
      soundcloud: true
      twitch: true
      vimeo: true
      http: true
      local: false
    bufferDurationMs: 400
    frameBufferDurationMs: 5000
    trackStuckThresholdMs: 10000
    youtubePlaylistLoadLimit: 6
    playerUpdateInterval: 5
    youtubeSearchEnabled: true
    soundcloudSearchEnabled: true
    gc-warnings: true
    youtubeConfig:
      email: "someone@gmail.com" # Email of Google account
      password: "abcdefg" # App password for Google account
  plugins:
    - dependency: "com.github.Topis-Lavalink-Plugins:Topis-Source-Managers-Plugin:v2.0.7"
      repository: "https://jitpack.io"
    - dependency: "me.rohank05:lavalink-filter-plugin:0.0.1"
      repository: "https://jitpack.io"

plugins:
  topissourcemanagers:
    providers:
      - "ytsearch:\"%ISRC%\""
      - "ytsearch:%QUERY%"
      - "scsearch:%QUERY%"
    sources:
      spotify: true
      applemusic: true
    spotify:
        clientId: "SPOTIFY_CLIENT_ID" 
        clientSecret: "SPOTIFY_CLIENT_SECRET"
        countryCode: "DE"
    applemusic:
        countryCode: "DE"

metrics:
  prometheus:
    enabled: false
    endpoint: /metrics

sentry:
  dsn: ""
  environment: ""

logging:
  file:
    max-history: 30
    max-size: 1GB
  path: ./logs/

  level:
    root: INFO
    lavalink: INFO

Used libraries ❤

Original JS bot made by davidcralph