Получить данные через музыкальный интерфейс QQ + доступные источники воспроизведения

внешний интерфейс JavaScript

В последнее время я учусь делать веб-мобильный музыкальный проигрыватель, так как я не хочу хранить данные в базе данных, я научился получать некоторые данные через интерфейс QQ Music.

Другие данные выглядят нормально, но друзья, которые не могут играть, могут попробовать это.

Вчера нашел два полезных источника, надеюсь помочь друзьям-единомышленникам

这里是使用的songmid 
url: `http://isure.stream.qqmusic.qq.com/C100${musicData.songmid}.m4a?fromtag=32`        
url: `http://thirdparty.gtimg.com/C100${musicData.songmid}.m4a?fromtag=38`

Получить данные плейлиста:

url: От.there.QQ.com/SPLcloud/very…

//songList.js
export function getDiscList() {
    const url = '/api/getDiscList'
    const data = Object.assign({}, commonParams, {
        platform: 'yqq',
        hostUin: 0,
        sin: 0,
        ein: 29,
        sortId: 5,
        needNewCode: 0,
        categoryId: 10000000,
        rnd: Math.random(),
        format: 'json'
    })

    return axios.get(url, {
        params: data
    }).then((res) => {
        return Promise.resolve(res.data)
    })
}

webpack.dev.conf.js
// 通过axios代理获取
/**
* 通过axios,从真实的QQ音乐的地址发送一个http请求,同时修改一个headers,正确响应,
* 并将内容返回到前端界面
* @param  {[type]}   req     [require]
* @param  {String}   res    [response]
* @param  {Function} params: req.query  [参数]
* @return {[type]}           [description]
*/
apiRoutes.get('/api/getDiscList', function(req, res) {
     var url = 'https://c.y.qq.com/splcloud/fcgi-bin/fcg_get_diss_by_tag.fcg'
     axios.get(url, {
         headers: {
             referer: 'https://c.y.qq.com/',
             host: 'c.y.qq.com'
         },
         params: req.query
     }).then((response) => {
        // 将数据返回给前端
         res.json(response.data)
     }).catch((e) => {
        console.log(e)
     })
})

Получить данные карусели:

url: С сайта QQ.com/musichall/…

export function getRecommend() {
    const url = 'https://c.y.qq.com/musichall/fcgi-bin/fcg_yqqhomepagerecommend.fcg'
    const data = Object.assign({}, commonParams, {
        platform: 'h5',
        uin: 0,
        needNewCode: 1
    })
    return jsonp(url, data, options)
}

Получить данные текстов песен:

url: From.have.QQ.com/lyric/F CGI-…

export function getDiscList() {
    const url = '/api/getDiscList'
    const data = Object.assign({}, commonParams, {
        platform: 'yqq',
        hostUin: 0,
        sin: 0,
        ein: 29,
        sortId: 5,
        needNewCode: 0,
        categoryId: 10000000,
        rnd: Math.random(),
        format: 'jsonp'
    })

    return axios.get(url, {
        params: data
    }).then((res) => {
        return Promise.resolve(res.data)
    })
}
// webpack.dev.conf.js
apiRoutes.get('/api/lyric', function(req, res) {
   var url = 'https://c.y.qq.com/lyric/fcgi-bin/fcg_query_lyric_new.fcg'
   axios.get(url, {
         headers: {
            referer: 'https://c.y.qq.com',
            host: 'c.y.qq.com'
        },
        params: req.query
   }).then((response) => {
         var ret = response.data
         if (typeof ret === 'string') {
             var reg = /^\w+\(({[^()]+})\)$/
             var matches = ret.match(reg)
                 if (matches) {
                    ret = JSON.parse(matches[1])
                 }
        }
        res.json(ret)
   }).catch((e) => {
         console.log(e)
  })
})

Получить информацию об исполнителе:

url: Установите значение «иметь». QQ.com/V8/unconventional-bin/…

export function getSingerList() {
    const url = 'https://c.y.qq.com/v8/fcg-bin/v8.fcg'
    const data = Object.assign({}, commonParams, {
        channel: 'singer',
        page: 'list',
        key: 'all_all_all',
        pagesize: 100,
        pagenum: 1,
        hostUin: 0,
        needNewCode: 0,
        platform: 'yqq',
        g_tk: 2001751543
    })
    return jsonp(url, data, options)
}

Получить информацию о песне:

URL:От. Там.qqqu/v8/unconvental-bin/...

export function getSingerDetail(singerId) {
    const url = 'https://c.y.qq.com/v8/fcg-bin/fcg_v8_singer_track_cp.fcg'

    const data = Object.assign({}, commonParams, {
        hostUin: 0,
        needNewCode: 0,
        order: 'listen',
        platform: 'h5page',
        begin: 0,
        num: 100,
        songstatus: 1,
        singermid: singerId,
        g_tk: 2001751543
    })
    return jsonp(url, data, options)
}

Получить данные таблицы лидеров (просканировать мобильный терминал):

url: Отсюда.qq.com/v8/unconventional-bin/…

Получить список песен в плейлисте:

url: From.there.QQ.com/Qzone/Unconventional-no…

Получить детали списка (мобильный терминал):

url: Отсюда.qq.com/v8/unconventional-bin/…