首页 > 解决方案 > Heroku 服务器中的节点 JS 端点在从 JioSaavn API 检索它们时针对不同类型的音乐数据表现不同

问题描述

我正在开发一个音乐应用程序,我在其中使用 JioSaavn 非官方 API 来检索音乐信息。我在 Heroku 服务器上设置了一个节点端点应用程序,在呈现数据的前端有一个 firebase react 应用程序。一切都运行良好,直到我最近发现我的一个节点端点出现了一个奇怪的问题。

所以,我有一个节点端点,它为给定的播放列表 id(数字)获取播放列表详细信息(使用 axios)。看起来像这样 https://musify-api-plus.herokuapp.com/api/5ET4NH9-4M64SNC-J3X5MGD-7MHPYZB/playlist?pid=2710678

这里 pid=2710678 是 JioSaavn 的合法英语流派播放列表 ID,标题设置为“Lets Play - The Rolling Stones”。它让我回来的响应如下:

{
"id": "2710678",
"title": "Lets Play - The Rolling Stones",
"subtitle": "159 Followers",
"header_desc": "",
"type": "playlist",
"perma_url": "https://www.jiosaavn.com/featured/lets-play---the-rolling-stones/htOJvDrP3Qw_",
"image": "https://c.saavncdn.com/editorial/RockNRollwithTheRollingStones_20200803083052.jpg",
"language": "",
"year": "",
"play_count": "",
"explicit_content": "0",
"list_count": "0",
"list_type": "",
**"list": "",**
"more_info": {
"uid": "phulki_user",
"is_dolby_content": false,
"subtype": [],
"last_updated": "1596468675",
"username": "",
"firstname": "JioSaavn",
"lastname": "",
"is_followed": "",
"isFY": false,
"follower_count": "159",
"fan_count": "0",
"playlist_type": "playlist",
"share": "1",
"sub_types": [],
"images": [],
"H2": null,
"subheading": null,
"video_count": "0"
}
}

注意列表对象是空的,但它不应该是。如果我为印地语流派运行相同的端点,则运行良好,示例如下: https ://musify-api-plus.herokuapp.com/api/5ET4NH9-4M64SNC-J3X5MGD-7MHPYZB/playlist?pid=234432

这里 pid=234432 是一个合法的 HINDI 播放列表 ID,其标题设置为“Kumar Sanu、SP Balasubrahmanyam、Alka Yagnik 等”,它源自印地语,它带回了正确的结果集,如下所示:

{
"id": "234432",
"title": "alka",
"subtitle": "Kumar Sanu, S. P. Balasubrahmanyam, Alka Yagnik, and more",
"header_desc": "62 songs with music from artists like Kumar Sanu, S. P. Balasubrahmanyam, Alka Yagnik, and more.",
"type": "playlist",
"perma_url": "https://www.jiosaavn.com/s/playlist/sriparna.here737/alka/sgrzeyzd,d8_",
"image": "https://pli.saavncdn.com/44/32/234432.jpg?bch=1416620063",
"language": "",
"year": "",
"play_count": "",
"explicit_content": "0",
"list_count": "62",
"list_type": "",
**"list": [**
{
"id": "nAuW4AWU",
"title": "Jaati Hoon Main",
"subtitle": "Kumar Sanu, Alka Yagnik - Karan Arjun",
"header_desc": "Track from Kumar Sanu and Alka Yagnik from album Karan Arjun.",
"type": "song",
"perma_url": "https://www.jiosaavn.com/song/jaati-hoon-main/HikeZkBxYGY",
"image": "https://c.saavncdn.com/232/Karan-Arjun-Hindi-1995-20190829081335-500x500.jpg",
"language": "hindi",
"year": "1995",
"play_count": "10949725",
"explicit_content": "0",
"list_count": "0",
"list_type": "",
"list": "",
"more_info": {
"music": "Rajesh Roshan",
"album_id": "1033999",
"album": "Karan Arjun",
"label": "Tips Music",
"origin": "none",
"is_dolby_content": false,
"320kbps": "true",
......*and so on*

您可以看到列表对象现在已在此处填充。

起初我认为这是我在 heroku 的节点端点的错误,但没有,因为奇怪的是当我从本地主机运行端点时,它为英语和印地语流派播放列表提供了一致的结果。但是当我从 heroku 运行它时,它给了我印地语的好结果,但没有填充英语的列表。是否与heroku的区域设置有关。

这是我遇到的非常奇怪的事情。

这是我通过端点 https://www.jiosaavn.com/api.php?__call=playlist.getDetails&api_version=4&_format=json&_marker=0&ctx=web6dot0&listid=在内部访问的播放列表 API

您认为这里的问题可能是什么。我希望我能够解释这个问题。

这是api的github https://github.com/ayanchax/musify-api-plus

标签: node.jsherokuaxios

解决方案


推荐阅读