hisatri / lrcapi Goto Github PK
View Code? Open in Web Editor NEWA Flask API For StreamMusic
Home Page: https://docs.lrc.cx
License: GNU General Public License v3.0
A Flask API For StreamMusic
Home Page: https://docs.lrc.cx
License: GNU General Public License v3.0
每次都要重新获取歌词,而且获取的比较慢,建议把API获取到的歌词直接写入音乐文件标签。
可以在音流APP上api获取到的歌词写入到音乐源文件标签,比如在音流APP歌词显示哪里添加一个歌词嵌入按钮。
No response
.dockerignore
文件配置错误,应该为 .dockerignore
而不是 dockerignore
python3.10+
支持的 match...case...
特性,但基础镜像为 3.9.17
版本wsgi
的 http
服务器替换 flash
自带的 DebugServer
No response
No response
2024-02-07 16:48:00,513 - ERROR - Exception on /jsonapi [GET]
Traceback (most recent call last):
File "/usr/local/lib/python3.11/site-packages/flask/app.py", line 1455, in wsgi_app
response = self.full_dispatch_request()
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.11/site-packages/flask/app.py", line 869, in full_dispatch_request
rv = self.handle_user_exception(e)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.11/site-packages/flask/app.py", line 867, in full_dispatch_request
rv = self.dispatch_request()
^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.11/site-packages/flask/app.py", line 852, in dispatch_request
return self.ensure_sync(self.view_functions[rule.endpoint])(**view_args)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.11/site-packages/flask_caching/init.py", line 399, in decorated_function
rv = self._call_fn(f, *args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.11/site-packages/flask_caching/init.py", line 175, in _call_fn
return ensure_sync(fn)(*args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/app/app.py", line 159, in lrc_json
i = lrc.standard(i)
^^^^^^^^^^^^^^^
File "/app/mod/lrc.py", line 9, in standard
matches = pattern.findall(lrc_text)
^^^^^^^^^^^^^^^^^^^^^^^^^
TypeError: expected string or bytes-like object, got 'NoneType'
No response
No response
docker
No response
windows安装Navidrome获取不到文件路径同名的 .lrc 文件
判断一下路径是否带有盘符,如果带就去掉
No response
docker部署后,访问 /lyrics?title=雨一直下
页面显示:Internal Server Error
The server encountered an internal error and was unable to complete your request. Either the server is overloaded or there is an error in the application.
日志错误记录:
2023-11-15 09:53:50,438 - ERROR - Exception on /lyrics [GET] Traceback (most recent call last): File "/usr/local/lib/python3.9/site-packages/flask/app.py", line 2190, in wsgi_app response = self.full_dispatch_request() File "/usr/local/lib/python3.9/site-packages/flask/app.py", line 1486, in full_dispatch_request rv = self.handle_user_exception(e) File "/usr/local/lib/python3.9/site-packages/flask/app.py", line 1484, in full_dispatch_request rv = self.dispatch_request() File "/usr/local/lib/python3.9/site-packages/flask/app.py", line 1469, in dispatch_request return self.ensure_sync(self.view_functions[rule.endpoint])(**view_args) File "/usr/local/lib/python3.9/site-packages/flask_caching/__init__.py", line 404, in decorated_function rv = self._call_fn(f, *args, **kwargs) File "/usr/local/lib/python3.9/site-packages/flask_caching/__init__.py", line 180, in _call_fn return ensure_sync(fn)(*args, **kwargs) File "/app/app.py", line 84, in lyrics path = unquote_plus(request.args.get('path')) File "/usr/local/lib/python3.9/urllib/parse.py", line 799, in unquote_plus string = string.replace('+', ' ') AttributeError: 'NoneType' object has no attribute 'replace'
可以request 歌曲嗎? 就是如果我搜一個歌名或歌手名就會返回一個list, 然後就可以從中選擇歌詞就像lrclib一樣可以search
No response
No response
现在默认情况是严格模式,我做了个小玩意是使用H5音乐播放器Aplayer去调用这个API,发现当我请求的这个页面和API所在服务器不相同时,就会触发跨站安全策略禁止访问(严格模式),只有手动在_init_.py里面去修改v1_bp.config的响应包头才能让其访问,比方如下
@v1_bp.after_request
def add_custom_headers(response):
response.headers['Access-Control-Allow-Origin'] = '*'
return response
当然,应该存在修改前端代码也可以修复这个问题,不过那样可能要去伪造请求源,感觉是不是正路,黑客行为。
我的问题是公开的api有必要做跨站访问限制吗?限制完就是禁止几乎一切的浏览器被动调用这个api,毕竟h5音乐播放器就是放在个人博客一类中,一般不会和api是同个站点。
个人认为应该是没有必要限制,原因是使用歌词api一般是主动要用的这个功能,差别无非就是客户端是浏览器还是音流app,他们在这个过程中角色都是一样的。
建议放开同源限制。
No response
是否可以设置通过二级路由访问,不然每个服务需要一个子域名
No response
No response
有没有大佬教教我改成ttplayer可以用的歌词源
No response
No response
为什么我按照文档拉取镜像并启动容器后在音流里面调用接口,无法获取歌手和封面图片呢,是这个api失效了吗,我的命令行:
docker run -d -p 28883:28883 -v /mnt/nvme1-1/音乐:/mnt/nvme1-1/音乐 -e API_AUTH=xiaohaha1523 hisatri/lrcapi:latest
No response
No response
openwrt
No response
流音封面接口covers与lrcapi的cover接口不一致,怎么破呀
cover
iOS
No response
search.py
中创建的异步获取参数代码存在 bug,未实现异步请求目标接口。
通过以下提供的demoserver以及demorequest代码可验证。
# demo server
import time
from http.server import BaseHTTPRequestHandler, HTTPServer
from socketserver import ThreadingMixIn
class HTTPRequestHandler(BaseHTTPRequestHandler):
def do_GET(self):
time.sleep(1)
self.send_response(200)
self.end_headers()
self.wfile.write(b"Hello World")
class ThreadedHTTPServer(ThreadingMixIn, HTTPServer):
pass
server = ThreadedHTTPServer(("localhost", 8000), HTTPRequestHandler)
server.serve_forever()
# demo request
import time
import asyncio
import requests
def sync_block_function():
requests.get("http://127.0.0.1:8000")
async def async_request(index: int):
print(f"开始请求: url{index}")
loop = asyncio.get_running_loop()
await loop.run_in_executor(None, sync_block_function)
print(f"请求结束: url{index}")
async def sync_request(index: int):
print(f"开始请求: url{index}")
sync_block_function()
print(f"请求结束: url{index}")
async def correctly(task_num: int):
tasks = [asyncio.create_task(async_request(i)) for i in range(task_num)]
await asyncio.wait(tasks)
async def incorrect(task_num: int):
tasks = [asyncio.create_task(sync_request(i)) for i in range(task_num)]
await asyncio.wait(tasks)
if __name__ == '__main__':
s_time = time.time()
asyncio.run(correctly(5))
print(f"正确的耗时: {time.time() - s_time}")
s_time = time.time()
asyncio.run(incorrect(5))
print(f"错误的耗时: {time.time() - s_time}")
No response
# 简易测试 log
开始请求: url0
开始请求: url1
开始请求: url2
开始请求: url3
开始请求: url4
请求结束: url1
请求结束: url0
请求结束: url3
请求结束: url4
请求结束: url2
正确的耗时: 1.0444190502166748
开始请求: url0
请求结束: url0
开始请求: url1
请求结束: url1
开始请求: url2
请求结束: url2
开始请求: url3
请求结束: url3
开始请求: url4
请求结束: url4
错误的耗时: 5.05975604057312
系统无关
No response
UNRAID下安装后启动成功。
访问/src正常
访问/jsonapi与/cover出现如下HTTP页面报错:
Internal Server Error
The server encountered an internal error and was unable to complete your request. Either the server is overloaded or there is an error in the application.
DOCKER日志显示:
UnicodeDecodeError: 'utf-8' codec can't decode byte 0x93 in position 0: invalid start byte
2024-08-08 21:22:52,203 - ERROR - Exception on /jsonapi [GET]
Traceback (most recent call last):
File "/usr/local/lib/python3.12/site-packages/flask/app.py", line 1473, in wsgi_app
response = self.full_dispatch_request()
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/flask/app.py", line 882, in full_dispatch_request
rv = self.handle_user_exception(e)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/flask/app.py", line 880, in full_dispatch_request
rv = self.dispatch_request()
^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/flask/app.py", line 865, in dispatch_request
return self.ensure_sync(self.view_functions[rule.endpoint])(**view_args) # type: ignore[no-any-return]
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/flask_caching/init.py", line 399, in decorated_function
rv = self._call_fn(f, *args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/flask_caching/init.py", line 175, in _call_fn
return ensure_sync(fn)(*args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/app/api/lyrics.py", line 70, in lrc_json
match require_auth(request=request):
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/app/mod/auth/authentication.py", line 18, in require_auth
cookie_key: str = cookie.cookie_key(user_cookie)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/app/mod/auth/cookie.py", line 33, in cookie_key
plain_text = crypto.decrypt(cookie_string)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/app/mod/auth/crypto.py", line 35, in decrypt
return aes.decrypt(bytes.fromhex(data)).decode(encoding='utf-8')
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
UnicodeDecodeError: 'utf-8' codec can't decode byte 0x93 in position 0: invalid start byte
2024-08-08 21:23:35,302 - ERROR - Exception on /cover [GET]
Traceback (most recent call last):
File "/usr/local/lib/python3.12/site-packages/flask/app.py", line 1473, in wsgi_app
response = self.full_dispatch_request()
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/flask/app.py", line 882, in full_dispatch_request
rv = self.handle_user_exception(e)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/flask/app.py", line 880, in full_dispatch_request
rv = self.dispatch_request()
^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/flask/app.py", line 865, in dispatch_request
return self.ensure_sync(self.view_functions[rule.endpoint])(**view_args) # type: ignore[no-any-return]
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/flask_caching/init.py", line 399, in decorated_function
rv = self._call_fn(f, *args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/flask_caching/init.py", line 175, in _call_fn
return ensure_sync(fn)(*args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/app/api/cover.py", line 37, in cover_api
title = unquote_plus(request.args.get('title'))
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/urllib/parse.py", line 810, in unquote_plus
string = string.replace('+', ' ')
^^^^^^^^^^^^^^
AttributeError: 'NoneType' object has no attribute 'replace'
以下是安装过程显示:
执行命令
docker run
-d
--name='lrcapi'
--net='bridge'
-e TZ="Asia/Shanghai"
-e HOST_OS="Unraid"
-e HOST_HOSTNAME="Yangc"
-e HOST_CONTAINERNAME="lrcapi"
-e 'API_AUTH'='111'
-l net.unraid.docker.managed=dockerman
-l net.unraid.docker.webui='http://10.10.10.190:28883/'
-l net.unraid.docker.icon='http://10.10.10.190:8081/LrcApi.png'
-p '28883:28883/tcp'
-v '/mnt/user/Movies/Movies/音乐/音乐/':'/music':'rw' 'hisatri/lrcapi:latest'
61ff165b3a9a99f21ab7f6d42e452d820b13393bfa78769312e08e00bf25fa8e
命令成功完成!
No response
No response
UNRAID 6.12.10
No response
提示Connection to cn.lrc.cx 错误。
No response
No response
debian12,python部署
No response
试了1.5.1/1.5.2/1.5.3都报同样的错误
No response
2024-06-09 21:58:17,453 - ERROR - Exception on /jsonapi [GET]
Traceback (most recent call last):
File "/usr/local/lib/python3.12/site-packages/flask/app.py", line 1463, in wsgi_app
response = self.full_dispatch_request()
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/flask/app.py", line 872, in full_dispatch_request
rv = self.handle_user_exception(e)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/flask/app.py", line 870, in full_dispatch_request
rv = self.dispatch_request()
^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/flask/app.py", line 855, in dispatch_request
return self.ensure_sync(self.view_functions[rule.endpoint])(**view_args) # type: ignore[no-any-return]
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/flask_caching/init.py", line 399, in decorated_function
rv = self._call_fn(f, *args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/flask_caching/init.py", line 175, in _call_fn
return ensure_sync(fn)(*args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/app/api/lyrics.py", line 95, in lrc_json
lyrics_list = searchx.search_all(title, artist, album)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/app/mod/searchx/init.py", line 22, in search_all
future.result()
File "/usr/local/lib/python3.12/concurrent/futures/_base.py", line 449, in result
return self.__get_result()
^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/concurrent/futures/_base.py", line 401, in __get_result
raise self._exception
File "/usr/local/lib/python3.12/concurrent/futures/thread.py", line 58, in run
result = self.fn(*self.args, **self.kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/app/mod/searchx/init.py", line 11, in request
res: list = task.search(title, artist, album)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/app/mod/searchx/kugou.py", line 104, in search
return asyncio.run(a_search(title=title, artist=artist, album=album))
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/asyncio/runners.py", line 194, in run
return runner.run(main)
^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/asyncio/runners.py", line 118, in run
return self._loop.run_until_complete(task)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/asyncio/base_events.py", line 684, in run_until_complete
return future.result()
^^^^^^^^^^^^^^^
File "/app/mod/searchx/kugou.py", line 75, in a_search
async with session.get(
File "/usr/local/lib/python3.12/site-packages/aiohttp/client.py", line 1194, in aenter
self._resp = await self._coro
^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/aiohttp/client.py", line 605, in _request
await resp.start(conn)
File "/usr/local/lib/python3.12/site-packages/aiohttp/client_reqrep.py", line 966, in start
message, payload = await protocol.read() # type: ignore[union-attr]
^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/aiohttp/streams.py", line 622, in read
await self._waiter
aiohttp.client_exceptions.ClientOSError: [Errno 104] Connection reset by peer
qnap docker
No response
如果歌词能保存到docker本地映射的目录最好了,这样不用每次都要再次请求。
如果歌词能保存到docker本地映射的目录最好了,这样不用每次都要再次请求。
No response
docker部署会一直存在100多KB的上传流量,即使在接口未使用的时候,请问这个上传主要是在运行什么功能吗,按照我的理解应该仅在使用的时候调用了相应的接口才会产生上行流量,但是即使在未使用的时候也在持续产生上传流量
No response
No response
群晖7.0.1 docker部署最新版
No response
版本1.5.3,linux架构如下文件运行有问题
arm7l
./lrcapi: cannot execute: required file not found
x86_64
-bash: ./lrcapi: No such file or directory
No response
root@dokcer:# ls|grep lrc# ./lrcapi
lrcapi
root@dokcer:
-bash: ./lrcapi: No such file or directory
root@dokcer:# uname -a# cat /etc/os-release
Linux dokcer 5.15.74-1-pve #1 SMP PVE 5.15.74-1 (Mon, 14 Nov 2022 20:17:15 +0100) x86_64 GNU/Linux
root@dokcer:
PRETTY_NAME="Debian GNU/Linux 11 (bullseye)"
NAME="Debian GNU/Linux"
VERSION_ID="11"
VERSION="11 (bullseye)"
VERSION_CODENAME=bullseye
ID=debian
HOME_URL="https://www.debian.org/"
SUPPORT_URL="https://www.debian.org/support"
BUG_REPORT_URL="https://bugs.debian.org/"
~/lrcapi $ uname -a
Linux localhost 3.4.113-perf-g9cd90d33e3a #1 SMP PREEMPT Wed Oct 19 16:15:37 CST 2022 armv7l Android
~/lrcapi $ ./lrcapi
bash: ./lrcapi: cannot execute: required file not found
~/lrcapi $ ./lrcapi --port 8080 --auth abc
bash: ./lrcapi: cannot execute: required file not found
debian11&&android
python对目录处理有问题
如标题所示
No response
并未发现相关关键词日志,这个报错好像跟问题没什么关系
2024-06-21 10:55:35,375 - ERROR - Exception on /cover [HEAD]
Traceback (most recent call last):
File "/usr/local/lib/python3.12/site-packages/flask/app.py", line 1473, in wsgi_app
response = self.full_dispatch_request()
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/flask/app.py", line 882, in full_dispatch_request
rv = self.handle_user_exception(e)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/flask/app.py", line 880, in full_dispatch_request
rv = self.dispatch_request()
^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/flask/app.py", line 865, in dispatch_request
return self.ensure_sync(self.view_functions[rule.endpoint])(**view_args) # type: ignore[no-any-return]
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/flask_caching/__init__.py", line 399, in decorated_function
rv = self._call_fn(f, *args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/flask_caching/__init__.py", line 175, in _call_fn
return ensure_sync(fn)(*args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/app/api/cover.py", line 37, in cover_api
title = unquote_plus(request.args.get('title'))
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/urllib/parse.py", line 810, in unquote_plus
string = string.replace('+', ' ')
^^^^^^^^^^^^^^
AttributeError: 'NoneType' object has no attribute 'replace'
2024-06-21 10:55:35,551 - ERROR - Exception on /cover [GET]
Traceback (most recent call last):
File "/usr/local/lib/python3.12/site-packages/flask/app.py", line 1473, in wsgi_app
response = self.full_dispatch_request()
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/flask/app.py", line 882, in full_dispatch_request
rv = self.handle_user_exception(e)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/flask/app.py", line 880, in full_dispatch_request
rv = self.dispatch_request()
^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/flask/app.py", line 865, in dispatch_request
return self.ensure_sync(self.view_functions[rule.endpoint])(**view_args) # type: ignore[no-any-return]
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/flask_caching/__init__.py", line 399, in decorated_function
rv = self._call_fn(f, *args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/flask_caching/__init__.py", line 175, in _call_fn
return ensure_sync(fn)(*args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/app/api/cover.py", line 37, in cover_api
title = unquote_plus(request.args.get('title'))
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/urllib/parse.py", line 810, in unquote_plus
string = string.replace('+', ' ')
^^^^^^^^^^^^^^
AttributeError: 'NoneType' object has no attribute 'replace'
2024-06-21 11:50:29,565 - INFO - 正在启动服务器
2024-06-21 11:50:29,565 - INFO - 正在检查更新,当前版本
2024-06-21 11:50:29,579 - INFO - Serving on http://0.0.0.0:28883
2024-06-21 11:50:29,982 - INFO - 当前已是最新版本
2024-06-21 12:02:06,696 - INFO - Error:
环境使用docker搭建 + nginx proxy manager 反代 + 音流安卓客户端(ver: 1.29)
# docker-compose.yaml
version: "3"
services:
navidrome:
container_name: navidrome
image: deluan/navidrome:latest
ports:
- "4533:4533"
environment:
#程序默认语言
- ND_DEFAULTLANGUAGE=zh-Hans
#启用GRAVATAR头像
- ND_ENABLEGRAVATAR=true
#关闭转码,如需要转码请设置为true
- ND_ENABLETRANSCODINGCONFIG=true
volumes:
- "/share/Container/navidrome:/data"
- "/share/Video/Link/Music/Completed:/music:ro"
restart: always
lrcapi:
image: hisatri/lrcapi:latest
container_name: lrcapi
ports:
- 28883:28883
volumes:
- /share/Video/Link/Music/Completed:/music:ro
restart: always
请求歌词有最近一次请求得内容显示,但是确认接口没地方查看日志,docker并未发现与之相关的报错
是否可以加上类似日志得功能,以方便定位相关问题
使用docker部署的api服务:docker run -d -p 28883:28883 -v /root/music:/music hisatri/lrcapi:latest
在请求歌词api时正常,但是在请求封面api时异常,会重定向到:
https://api.lrc.cx/cover/album/title=xxx&artist=xxx
原始请求是http://ip:port/api/v1/cover/album?title=xxx&artist=xxx
No response
No response
ubuntu 22.04
No response
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.