brainstate

Nat1anWasTaken/lava · source

Snapshot 0 · 2026-11-04T12:47:27Z · Python · MIT

Content fingerprinta6eac18e03f8f19276c80c3b13c391fc4cab1e75361d1a0c06795d67c6444cf8

GitHub description at capture

由 Lavalink 驅動且擁有眾多功能且完全開源、免費的音樂機器人

README at capture

<!-- PROJECT SHIELDS -->
<!--
*** I'm using markdown "reference style" links for readability.
*** Reference links are enclosed in brackets [ ] instead of parentheses ( ).
*** See the bottom of this document for the declaration of the reference variables
*** for contributors-url, forks-url, etc. This is an optional, concise syntax you may use.
*** https://www.markdownguide.org/basic-syntax/#reference-style-links
-->
[![Contributors][contributors-shield]][contributors-url]
[![Forks][forks-shield]][forks-url]
[![Stargazers][stars-shield]][stars-url]
[![Issues][issues-shield]][issues-url]
[![MIT License][license-shield]][license-url]

<!-- PROJECT LOGO -->
<br />
<div align="center">
  <a href="https://github.com/Nat1anWasTaken/Lava">
    <img src="img/logo.png" alt="Logo" width="80" height="80">
  </a>

<h3 align="center">Lava</h3>

  <p align="center">
    由 Lavalink 驅動且擁有眾多功能且完全開源、免費的音樂機器人
    <br />
    <a href="#關於專案"><strong>閱讀更多 »</strong></a>
    <br />
    <br />
    <a href="README.en-us.md">English</a>
    ·
    <br />
    <a href="https://discord.gg/acgmcity">試用</a>
    ·
    <a href="https://discord.com/invite/3y7mN82NQa">支援群組</a>
    ·
    <a href="https://github.com/Nat1anWasTaken/Lava/issues">回報問題</a>
    ·
    <a href="https://github.com/Nat1anWasTaken/Lava/issues">請求功能</a>
  </p>
</div>

<!-- TABLE OF CONTENTS -->
<details>
  <summary>目錄</summary>
  <ol>
    <li>
      <a href="#螢幕截圖">螢幕截圖</a>
    </li>
    <li>
      <a href="#開始使用">開始使用</a>
      <ul>
        <li><a href="#spotify-支援">Spotify 支援</a></li>
        <li><a href="#需求">需求</a></li>
      </ul>
    </li>
    <li><a href="#用法">用法</a></li>
    <li><a href="#設定">設定</a></li>
    <li><a href="#計畫">計畫</a></li>
    <li><a href="#授權">授權</a></li>
    <li><a href="#貢獻">貢獻</a><li>
  </ol>
</details>

<!-- SCREENSHOTS -->

## 螢幕截圖

![播放器][player-screenshot]

<p align="right">(<a href="#readme-top">回到頂部</a>)</p>

<!-- GETTING STARTED -->

## 開始使用

如果你只是想體驗的話,你可以到 [Yeecord][yeecord] 直接使用裡面的 `Lava#8364`

### Pterodactyl (翼手龍)
為了方便使用,我們提供 Pterodactyl Egg 並整合了 Lavalink 來方便架設 Lava 機器人

你可以透過 [這裡](https://github.com/Mantouisyummy/Lava-egg/blob/main/egg-lava.json) 來下載 Lava 的 Egg 檔案並匯入.

### 利用 Docker 一鍵架設

<details>
<summary>Docker compose</summary>

確保 Docker 已經安裝在你的電腦或伺服器上,接著:

1. Clone 這個 Repository
```bash
git clone https://github.com/Nat1anWasTaken/Lava.git
```

2. cd 到專案目錄
```bash
cd Lava
```

3. 將 `example.stack.env` 重新命名為 `stack.env`
```bash
mv example.stack.env stack.env
```
填入 `stack.env` 的內容

4. 啟動
```bash
docker compose up
```
</details>

<details>
<summary>Docker CLI</summary>

確保 Docker 已經安裝在你的電腦或伺服器上,接著:

1. 拉取映像檔
```bash
docker pull ghcr.io/nat1anwastaken/lava:latest
```

2. 設置好你的 Lavalink 節點,並將其 IP 和 Port 填入 `configs/lavalink.json`,如果你懶得架設 Lavalink,請使用 Docker Compose
```json
{
    "host": "Lavalink 節點 IP",
    "port": "Lavalink 節點 Port"
}
```

3. 創建一個 `stack.env` 檔案,並填入以下內容
```env
TOKEN=機器人 Token
SPOTIFY_CLIENT_ID=Spotify client id
SPOTIFY_CLIENT_SECRET=Spotify client secret
``` 

4. 啟動機器人
```bash
docker run -it \
  --name lava \
  --volume "./configs:/app/configs" \
  --env-file stack.env \
  --restart unless-stopped \
  ghcr.io/nat1anwastaken/lava:latest
```

</details>


<p align="right">(<a href="#readme-top">回到頂部</a>)</p>


<!-- USAGE EXAMPLES -->

## 用法

在成功架設起機器人並邀請進伺服器後,你可以直接使用 `/play` 指令播放音樂,就像上方的截圖一樣

每個指令的用途都寫在了指令描述裡,你可以透過他們來學會如何使用這個機器人

<p align="right">(<a href="#readme-top">回到頂部</a>)</p>

<!-- CONFIGURATION -->

## Lavalink 配置
> [!WARNING]  
> 由於 YouTube 的種種限制,必須填入一些驗證資訊才能使音樂服務正常工作,具體方式請詳閱下方教學。  

首先,請先使用 `pip install -r requirements.txt` 安裝所有必要的套件   
安裝完後進入到 Lava 的資料夾運行 `docker run quay.io/invidious/youtube-trusted-session-generator`  
運行後你會看到終端輸出以下內容:

```
visitor_data: your visitor_data
po_token: your po_token
```

打開 `configs/application.yml` 後找到以下配置資訊
```yml
plugins:
  youtube:
    pot:
      token: "paste your po_token here"
      visitorData: "paste your visitor_data here"
```
隨後將你獲得的 `po_token` 和 `visitor_data` 分別填入 `token` 和 `visitorData` 中即可完成配置

<p align="right">(<a href="#readme-top">回到頂部</a>)</p>

## 設定
Lava 提供了一些簡單的設定讓你能夠輕鬆地自定義你的音樂機器人,像是:

### 進度條 
你可以透過修改 `configs/icons.json` 來自定義進度條要使用的表情符號
```json
{
    "empty": "⬛",
    "progress": {
        "start_point": "⬜",
        "start_fill": "⬜",
        "mid_point": "⬜",
        "end_fill": "⬛",
        "end_point": "⬛",
        "end": "⬛"
    },
    "control": {
        "rewind": "⏪",
        "forward": "⏩",
        "pause": "⏸️",
        "resume": "▶️",
        "stop": "⏹️",
        "previous": "⏮️",
        "next": "⏭️",
        "shuffle": "🔀",
        "repeat": "🔁",
        "autoplay": "🔥"
    }
}
```

### 狀態
你可以透過修改 `configs/activity.json` 來自定義機器人的狀態
```json
{
    "type": 0, // 0: 正在玩, 1: 正在直播, 2: 正在聆聽, 3: 正在觀看
    "name": "音樂", // 狀態文字
    "url": "" // 直播連結(僅適用於直播狀態)
}
```

<p align="right">(<a href="#readme-top">回到頂部</a>)</p>


<!-- ROADMAP -->

## 計畫

計畫已遷移至 [Projects][projects]

<p align="right">(<a href="#readme-top">回到頂部</a>)</p>


<!-- LICENSE -->

## 授權

這個專案基於 MIT License,查看 `LICENSE.txt` 來獲取更多資訊

<!-- CONTRIBUTE -->

## 貢獻

你可以前往 [CONTRUBUTING.md](CONTRIBUTING.md) 來查看完整的貢獻指南

<!-- SHIELDS -->

[contributors-shield]: https://img.shields.io/github/contributors/Nat1anWasTaken/Lava.svg?style=for-the-badge

[contributors-url]: https://github.com/Nat1anWasTaken/Lava/graphs/contributors

[forks-shield]: https://img.shields.io/github/forks/Nat1anWasTaken/Lava.svg?style=for-the-badge

[forks-url]: https://github.com/Nat1anWasTaken/Lava/network/members

[stars-shield]: https://img.shields.io/github/stars/Nat1anWasTaken/Lava.svg?style=for-the-badge

[stars-url]: https://github.com/Nat1anWasTaken/Lava/stargazers

[issues-shield]: https://img.shields.io/github/issues/Nat1anWasTaken/Lava.svg?style=for-the-badge

[issues-url]: https://github.com/Nat1anWasTaken/Lava/issues

[license-shield]: https://img.shields.io/github/license/Nat1anWasTaken/Lava.svg?style=for-the-badge

[license-url]: https://github.com/Nat1anWasTaken/Lava/blob/master/LICENSE.txt

<!-- LINKS -->

[yeecord]: https://discord.gg/yeecord

[python]: https://python.org

[lavalink]: https://github.com/freyacodes/Lavalink

[projects]: https://github.com/users/Nat1anWasTaken/projects/3

[LavaLauncher]: https://github.com/Nat1anWasTaken/LavaLauncher

[spotipy-authorization-flow]: https://spotipy.readthedocs.io/en/2.22.0/#authorization-code-flow

[issues]: https://github.com/Nat1anWasTaken/Lava/issues

<!-- IMAGES -->

[player-screenshot]: img/player.png