Coder Social home page Coder Social logo

httprandommusic's Introduction

httpRandomMusic

本项目能让你的小爱音箱播放局域网NAS上的音乐
因为小爱play增强版的BES2300太垃圾了,曲库没一首歌能够完整放完的

当然了这个程序还能配合esp8266或esp32作为随机的音乐电台

如何部署

在你的nas上安装Python3,下载并打开httpRandomMusic.py,编辑fileDir变量,填写你存放音乐的文件夹的完整路径
如果你是Windows服务器,那你的路径可能是E:\音乐的,要把\换成/

如果您需要在线转码,请修改ffmpeg变量,填写你的ffmpeg路径,比如群晖的是/var/packages/VideoStation/target/bin/ffmpeg
如果不需要请留空,既改成ffmpeg = '' 如果您不知道您的音响到底能不能放flac等比较先进的音频格式,可以先留空试试,如果不能播放,再填写ffmpeg路径,因为音频会实时转成没有任何压缩的wav格式,所以服务端需要相对较高的局域网带宽和性能

然后修改路由器的hosts,加入这样一行,或者直接将服务器主机名改成op

你服务器的ip op.lan op

就算你使用别的方式也好,只要将op.lan这个不存在的域名在你局域网解析到你的服务器就行了
然后启动程序
如果你没有正确的配置解析或是主机名,程序将报错并拒绝启动
请不要自作聪明的将程序里的op改成别的来尝试启动,绝对用不了

# 正常是这样启动的
python3 httpRandomMusic.py
# Windows可能是这样的
python httpRandomMusic.py

验证部署

用其他设备浏览器访问 http://op.lan:65533 能正常播放
如果你可以进去小爱音响的shell,那么尝试 curl -v http://op.lan:65533
此时控制台会有响应的输出
如果能验证通过但还是用不了,请尝试重启,并确保dns真的成功劫持了,因为只要能解析就一定能用

如何使用

小爱同学
打开小怪

然后以下三条指令三选一

指令 功能
播放服务器的音乐 按着上次的进度继续播放(没有进度就是从头放)
从头播放服务器的音乐 按修改时间倒序播放(先放最后放进文件夹的文件)
随机播放服务器的音乐 随机播放(播放列表打乱,不会重复随机到同一首)

FAQ

Q:为什么不做文件名搜索功能?
A:因为与技能的网抑云歌曲搜索功能冲突(搜索xxx,播放xxx),以及这只是个附属功能,小爱同学只支持中文语音识别,所以搜索非常局限

Q:为什么只支持一层文件夹内文件播放?
A:因为没有写多层文件夹文件扫描,以及加快扫描速度,欢迎PR

Q:怎么放不出声音?
A:文件格式不支持,BES2300的音响性能太差,跑的是NuttX而不是旧款的Openwrt,使用了裁剪的ffmpeg,大概只能放mp3(印着xiaomi的小爱音响play和play增强版)
已支持使用ffmpeg实时转码成wav,支持所有格式,你甚至可以将视频当音频放

Q:群晖怎么用?
A:在软件中心安装Python3,如果需要ffmpeg实时转码还需要安装VideoStation,然后将本程序放到一个你喜欢的地方,在计划任务添加一个开机启动,命令是python3 你的路径/httpRandomMusic.py,然后手动点击一下运行,就可以用了

httprandommusic's People

Contributors

zanjie1999 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.