Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

HisAtri/LrcApi

Open more actions menu

Repository files navigation

LOGO

LrcApi

A Flask API For StreamMusic

欢迎更多的音乐服务接入本API,也欢迎各位前端开发者提出新的API适配需求。

JetBrains 为本项目提供免费的开源许可证。


功能

支持酷狗/聚合API获取LRC歌词

支持text/json API

支持获取音乐/专辑/艺术家封面

默认监听28883端口,API地址 http://0.0.0.0:28883/lyrics ;新版API地址 http://0.0.0.0:28883/jsonapi ;封面API地址 http://0.0.0.0:28883/cover

启动参数

参数 类型 默认值
--port int 28883
--auth str

--auth参数用于header鉴权,留空则跳过鉴权。验证header中的AuthorizationAuthentication字段。如果鉴权不符合,则返回403响应。

也可以使用环境变量API_AUTH定义,其优先性低于--auth参数,但是更容易在Docker中部署。-e API_AUTH=自定义一个鉴权key

使用方法

公开API

如果无法私有部署,可以先尝试使用公开API。注意:公开API通过酷狗等接口获取歌词,可能响应较慢且并不完全准确。

歌词API地址:https://api.lrc.cx/lyrics

封面API地址: https://api.lrc.cx/cover

二进制文件

上传至运行目录,./lrcapi --port 8080 --auth 自定义一个鉴权key

Python源文件

拉取本项目;或者下载后上传至运行目录,解压tar.gz

安装依赖:pip install -r requirements.txt

启动服务:python3 app.py --port 8080 --auth 自定义一个鉴权key

Docker部署方式

docker run -d \
    -p 28883:28883 \
    -v /home/user/music:/music \
    -e API_AUTH=自定义一个鉴权key \
    hisatri/lrcapi:latest

或者,请指定一个Tag(推荐)

docker run -d \
    -p 28883:28883 \
    -v /home/user/music:/music \
    -e API_AUTH=自定义一个鉴权key \
    hisatri/lrcapi:1.5.2

一个Docker-compose配置如下

services:
  lrcapi:
    image: hisatri/lrcapi:latest
    container_name: lrcapi
    ports:
      - "28883:28883"
    volumes:
      - /home/user/music:/music
    environment:
      - API_AUTH=自定义一个鉴权key
    restart: always

如果你正在使用Navidrome Docker,请将 /home/user/music:/music 中的 /home/user/music 修改为你在Navidrome中映射的主机路径;

换句话说,-v 参数与Navidrome保持一致即可。

如果你正在使用Navidrome,请将你的音乐文件目录映射到Docker内目录;例如如果你音乐存储的目录是/www/path/music,请将启动命令中的映射修改为 /www/path/music:/www/path/music

然后访问 http://0.0.0.0:28883/lyrics 或新版API http://0.0.0.0:28883/jsonapi

图片API地址为 http://0.0.0.0:28883/cover

注意:图片返回目前采用反向代理策略,可能存在一定的上下行流量消耗和延迟。

支持使用Nginx或Apache进行反向代理与SSL。

音乐元数据修改接口

接口详情

  • 请求方法:POST
  • 请求路径:/tag
  • 数据类型:application/json

支持格式

已测试:

  • FLAC(flac)
  • ID3v2(mp3)
  • VorbisComment(ogg)

支持标签

  • 标题:title
  • 艺术家:artist
  • 专辑:album
  • 歌词:lyrics

状态码

  • 200 成功
  • 404 未找到文件
  • 421 无权限
  • 422 解析错误
  • 5xx 执行出错

简易测试环境

import requests
json_data = {
    "path": "/path/to/music/file",
    "title": "title",
    "artist": "artist",
    "album": "album",
    "lyrics": "lyrics"
}
url = 'http://127.0.0.1:28883/tag'
response = requests.post(url, json=json_data)
print(response.status_code)
print(response.text)

二次开发说明

本程序基于GPL-3.0开源许可证,您可以自由免费地使用、修改和分发本程序。在二次开发时,请遵守以下要求:

  1. 在您的衍生作品中保留原始版权和许可声明。
  2. 如果您对本程序进行了修改,请清楚地说明您的修改。
  3. 在进行分发时,您需要提供完整的源代码,并以GPL-3.0许可证分发您的衍生作品。
  4. 任何以本程序为基础的商业用途都需要遵守GPL-3.0许可证,并保持免费开放访问。
  5. 除源代码外,本项目的其他部分(包括Logo、服务或标语等)并非由 GPL 3.0 协议开源。

请确保您详细了解GPL-3.0许可证的要求并遵守相关规定。

Star History Chart

About

A Flask API For StreamMusic.

Topics

Resources

License

Stars

Watchers

Forks

Contributors 10

Morty Proxy This is a proxified and sanitized view of the page, visit original site.