DEVELOPMENT STALLED || Unified Music Service -- 通过实现各大平台API来消除因版权问题导致的音乐资源壁垒,支持网易云音乐、QQ、虾米等平台。
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
L.E.R 8b0f4ac15f Update README.md 2 years ago
.vscode feat(doc): add QQ songlist base and update cloc 2 years ago
IsrafilApp Improve UI and basic playlist support 2 years ago
IsrafilCLI feat(input): temporarily use input.txt to receive input 2 years ago
IsrafilCore feat(core): 尝试从其他来源找相同的歌 2 years ago
doc feat(doc): add QQ songlist base and update cloc 2 years ago
features feat(search): unsorted universal search complete 2 years ago
tests feat(ui): complete all songlist related UI 2 years ago
.appveyor.yml feat(ui): add a demo tabpage 2 years ago
.clang-format feat(core): 尝试从其他来源找相同的歌 2 years ago
.gitignore feat(doc): add QQ songlist base and update cloc 2 years ago
.qmake.conf feat(QtApp): Qt App starts and remove vendors in HttpAPI 2 years ago
.travis.yml fix(ci): FU travis 2 years ago
Israfil.pro feat(search): unsorted universal search complete 2 years ago
LICENSE.md feat(qqmusic json): add json test and initialized qqmusic module 2 years ago
README.md Update README.md 2 years ago
uncrustify.cfg refactor(code): format code using Google C++ Style and update readme 2 years ago

README.md

Israfil

neutrino license israfil AP

|关于|当前进度|开发日志|下载软件|编译|参与项目|编译状态|版权|协议|

LER0ever Project Israfil

Provide Unified Music Service for users in China.

尽可能解决因为独家版权导致听/下一首歌需要下5\6个app以及多个音乐平台间歌曲歌单同步困难等问题。 Project Israfil通过实现各大音乐平台的API来提供统一的音乐服务,消除因版权导致的不方便.

IN EARLY DEVELOPMENT

早期开发尚不可使用!!!

由于我长期在墙外,有些网络相关问题由于海外访问限制无法及时发现,敬请谅解!

Project Israfil只是本人的练笔之作,为了熟悉一下Go语言和Qt的开发,研究音乐平台协议只是顺手 ;)
如本项目有侵权行为,请和我联系,我会立刻删除Repo

关于这个项目

  • 目前支持的平台: Linux, Windows, macOS, Android. (按照兼容性从高到低),(iOS和FreeBSD理论上支持)
  • IsrafilCore: (./IsrafilCore)纯C++11编写,提供音乐服务接口给IsrafilApp, 其他程序也可以自由调用此接口,基本完成
  • Israfil App quick: 尝试用 QML 作UI, 开发中
  • IsrafilCLI(暂停): (./IsrafilCLI)独立子项目,Go语言编写,Go-Pie插件机制,适合部署到服务器端提供统一的API 目前完成了网易和qq的搜索与下载地址获取
Github: LER0ever/Israfil
国内镜像: 码云/LER/Israfil

Israfil 进度

开发日志及当前运行截图(持续更新)

目前已经可以边开发边用它听歌了!

没有人点上面的链接,所以这儿强行插一张截图:

左边为Windows Universal风格,右边为Material Design,可在P4设置中选择 scnsht 由于项目在早期开发,您可以点右上Watch接收项目开发动态提醒

当前代码量统计

任务列表:

加粗项代表正在开发的功能

  • IsrafilApp
    • UI(QML)
      • Qt5.7 QuickControls 2.0 UI界面
      • Qt MediaPlayer播放控制
      • Material Design界面初步
      • C++ 和 QML之间的caodan通讯 :(
  • IsrafilCore
    • 网易云音乐
      • 获取图片和歌词地址
      • 获取Mp3地址函数生效,并合并入search
      • 完成网易搜索,整合进Universal Search,结果尚未排序
      • Universal 歌单整合
      • 免登陆获取用户歌单
      • 跳进新API大坑
    • QQ音乐
      • 获得歌曲歌词、专辑图片及下载链接(包括无损)
      • 歌单相关操作,包括合并为Universal歌单
      • 整合音乐结果到Universal Search并加入Json
    • 天天动听
      • 搜索歌曲获得歌曲详情json
      • Universal整合
    • Universal
      • 封装QQ搜索至IsrafilCore
      • SongList搜索结果重编码为Json供qml调用
      • 整合搜索
    • HTTPClient
      • 自定义header发送GET请求
      • 自定义header进行HTTP POST, 初步的网易搜索获得json
  • IsrafilCLI (Golang 独立项目,暂停,推迟)
    • 网易&QQ:搜索歌曲获得详细信息以及获得下载链接
    • 基于termui的命令行界面
    • termui的editbox实现
    • 其他协议
  • 其他
    • 持续集成
      • 完成全自动化编译+上传二进制文件
      • Travis改用Qt5.7编译
      • 添加自动配置cython及网易新API

Israfil下载

LER0ever/Israfil-builds

  • 直接点上面的链接↸↸↸,(前提是如果你完全不知道这整个页面在说什么的话,)上面的链接会带你去下载地址
  • 目前编译脚本不支持macOS,主要是Qt 5.7的问题。
  • 注意,这个repo里的文件是本项目实时编译结果,尚在早期开发,下下来也没什么用
  • Releases里的格式为“操作系统 - 编译工具链 - 版本号 - 时间戳”,如macx-clang-0.1.0.0003-115355
  • 每次commit过后利用CI打Tag然后将Artifacts上传至Releases,Releases数量可能会较多,选择最近的二进制下载即可
  • Windows的二进制已经被WinDeployQt撸过了,Linux 和 OS X的没有自带Qt库,Linux请用包管理安装(大多数发行版都自带了),Mac用户再说

Israfil编译

项目依赖

子项目 所有依赖项
IsrafilCore C++, libcurl
IsrafilApp/quick C++, Qt5.7, IsrafilCore, 解码器
IsrafilCLI Golang

准备环境

由于用到了QtQuick.Controls 2.0 Qt最小要求版本为5.7

  • Windows: Qt官网(qt.io)下载Qt For Windows并安装
  • Linux: bash sudo apt-add-repository --yes ppa:beineri/opt-qt57-trusty sudo apt-get -y update -qq sudo apt-get -y install qt57-meta-full
  • OS X: brew install qt5 (需要手动加入环境变量) 或者官网下载安装包安装

编译

git clone https://github.com/LER0ever/Israfil
cd Israfil && mkdir build  
cd build && qmake ..
make

或者用Qt-Creator打开Israfil.pro,Release模式构建所有项目.

Contributions are always welcome

See contribute.md

CI Status

Platform Qt & Compiler Status
Linux 5.7 GCC traviscistatus
OS X 5.6 Clang traviscistatus
Windows 5.7 MinGW gcc appvayorstatus
Android 5.5 gcc androideabi shield

Copyright

3rd party License Needed by in source
Qt Project LGPL2 IsrafilApp Universal Dependency
JosephP91/curlcpp MIT IsrafilCore Embedded in source
JieweiWei/md5 Apache IsrafilCore Embedded in source
ddliu/go-httpclient MIT HttpAPI Need manual go get

网易云音乐API参考了网易云音乐API分析
网易云音乐新版/eapi正在研究中…
Israfil中的歌曲和歌单版权归各大音乐平台所有

LICENSE

GNU GENERAL PUBLIC LICENSE V3
See Licence.md for details