soundcloud 轨道的流 URL,其中 Streamble 为 false

2024-05-12

曲目有一个“streamable”属性,如果“false”,我无法获取该曲目的stream_url。

但我发现很少有下载器获取同一首歌曲的stream_url,然后获取该曲目的 CDN 链接。

我什至验证了我的应用程序,但没有找到stream_url。这就是我所做的。

import soundcloud

# create client object with app credentials
client = soundcloud.Client(client_id='YOUR_CLIENT_ID',
                           client_secret='YOUR_CLIENT_SECRET',
                           redirect_uri='REDIRECT_URL')

# exchange authorization code for access token
code = params['code']
access_token = client.exchange_token(code)

#'YOUR_ACCESS_TOKEN' is access_token which I got in above step.
client = soundcloud.Client(access_token='YOUR_ACCESS_TOKEN')

track = client.get('/tracks/161730338')

下面是轨道对象

>track.__dict__

{'obj': {u'attachments_uri': u'https://api.soundcloud.com/tracks/161730338/attachments', u'video_url': None, u'track_type': None, u'release_month': None, u'original_format': u'wav', u'label_name': None, u'duration': 198443, u'id': 161730338, u'streamable': False, u'user_id': 14090772, u'user_favorite': False, u'title': u'Jessie J + Ariana Grande + Nicki Minaj - Bang Bang', u'favoritings_count': 94563, u'commentable': True, u'label_id': None, u'state': u'finished', u'downloadable': False, u'policy': u'ALLOW', u'waveform_url': u'https://w1.sndcdn.com/EDiPRlpWkJ2V_m.png', u'sharing': u'public', u'description': u'', u'release_day': None, u'purchase_url': None, u'permalink': u'jessie-j-ariana-grande-nicki-minaj-bang-bang', u'comment_count': 957, u'purchase_title': None, u'last_modified': u'2015/03/25 04:05:16 +0000', u'user': {u'username': u'RepublicRecords', u'permalink': u'universalrepublic', u'avatar_url': u'https://i1.sndcdn.com/avatars-000025014448-peqymq-large.jpg', u'kind': u'user', u'uri': u'https://api.soundcloud.com/users/14090772', u'last_modified': u'2014/11/10 20:57:55 +0000', u'permalink_url': u'http://soundcloud.com/universalrepublic', u'id': 14090772}, u'genre': u'playbook', u'isrc': None, u'download_count': 0, u'permalink_url': u'http://soundcloud.com/universalrepublic/jessie-j-ariana-grande-nicki-minaj-bang-bang', u'playback_count': 4883398, u'kind': u'track', u'release_year': None, u'license': u'all-rights-reserved', u'artwork_url': None, u'created_at': u'2014/08/05 00:19:41 +0000', u'bpm': None, u'uri': u'https://api.soundcloud.com/tracks/161730338', u'original_content_size': 34992416, u'key_signature': None, u'user_playback_count': 1, u'release': None, u'tag_list': u'', u'embeddable_by': u'all'}, 'encoding': 'utf-8', 'url': u'https://api.soundcloud.com/tracks/161730338.json?oauth_token=1-124233-146384181-db7bf19453bd8', 'raw_data': u'{"kind":"track","id":161730338,"created_at":"2014/08/05 00:19:41 +0000","user_id":14090772,"duration":198443,"commentable":true,"state":"finished","original_content_size":34992416,"last_modified":"2015/03/25 04:05:16 +0000","sharing":"public","tag_list":"","permalink":"jessie-j-ariana-grande-nicki-minaj-bang-bang","streamable":false,"embeddable_by":"all","downloadable":false,"purchase_url":null,"label_id":null,"purchase_title":null,"genre":"playbook","title":"Jessie J + Ariana Grande + Nicki Minaj - Bang Bang","description":"","label_name":null,"release":null,"track_type":null,"key_signature":null,"isrc":null,"video_url":null,"bpm":null,"release_year":null,"release_month":null,"release_day":null,"original_format":"wav","license":"all-rights-reserved","uri":"https://api.soundcloud.com/tracks/161730338","user":{"id":14090772,"kind":"user","permalink":"universalrepublic","username":"RepublicRecords","last_modified":"2014/11/10 20:57:55 +0000","uri":"https://api.soundcloud.com/users/14090772","permalink_url":"http://soundcloud.com/universalrepublic","avatar_url":"https://i1.sndcdn.com/avatars-000025014448-peqymq-large.jpg"},"user_playback_count":1,"user_favorite":false,"permalink_url":"http://soundcloud.com/universalrepublic/jessie-j-ariana-grande-nicki-minaj-bang-bang","artwork_url":null,"waveform_url":"https://w1.sndcdn.com/EDiPRlpWkJ2V_m.png","playback_count":4883398,"download_count":0,"favoritings_count":94563,"comment_count":957,"attachments_uri":"https://api.soundcloud.com/tracks/161730338/attachments","policy":"ALLOW"}', 'reason': 'OK', 'status_code': 200}

根据文档,我应该从以下位置获取stream_url

# get the tracks streaming URL
stream_url = client.get(track.stream_url, allow_redirects=False)

# print the tracks stream URL
print stream_url.location

我被困在这里已经四天了。有没有办法获得 MP3 曲目的最终 CDN 链接,或者这些 soundclouddownlaoder 如何做到这一点。


If the stream_urlkey 返回一个空值,我发现streams端点将返回一个有效的 URL。

HTTP GET: https://api.soundcloud.com/tracks/[TRACK_ID]/streams?client_id=[YOUR_CLIENT_ID]

免责声明:这是一个未记录的端点,SoundCloud 可能随时更改。

HTTP GET: https://api.soundcloud.com/tracks/161730338/streams?client_id=[YOUR_CLIENT_ID]

回复:

{
  "hls_mp3_128_url": "https://ec-hls-media.soundcloud.com/playlist/EDiPRlpWkJ2V.128.mp3/playlist.m3u8?f10880d39085a94a0418a7e062b03d52bbdc0e179b82bde1d76ce6ad1a416907458c1576abbf27bccb1984bf2890809c25cb2c95f826eba5858b2322a2cc08c48f3664ebef63724f43e9baa7d819586e497b7175430826823cbebd16",
  "rtmp_mp3_128_url": "rtmp://ec-rtmp-media.soundcloud.com/mp3:EDiPRlpWkJ2V.128?9527d18f1063a01f059bf10590159adb10dea0996b8c0cdb674f9d20261b8798a306771c4e0fd691edd62d0b7db08ebc6cc0c5a4837c348c5d07f977a600bc6e3847081fc6ea55a327f8ef9f5f635a99c5921392ed3ec8030f3e",
  "preview_mp3_128_url": "https://ec-preview-media.sndcdn.com/preview/0/90/EDiPRlpWkJ2V.128.mp3?f10880d39085a94a0418a7e162b03d52e21adf826af17a391e1b7510312a99f96d1a7322537c26fabab56b86080be7194bc01c2056f9c615253e34d8b61dd76b963654b4c4c58c44dcb70f1176081fc49e3f"
}

The preview_mp3_128_url键值对有您想要的 128kbps 流媒体 mp3。

If the preview_mp3_128_url不是完整曲目,您需要使用 ffmpeg 等工具来下载 HLS 传输流

ffmpeg -i "https://ec-hls-media.soundcloud.com/playlist/EDiPRlpWkJ2V.128.mp3/playlist.m3u8?f10880d39085a94a0418a7e062b03d52bbdc0e179b82bde1d76ce6ad1a416907458c1576abbf27bccb1984bf2890809c25cb2c95f826eba5858b2322a2cc08c48f3664ebef63724f43e9baa7d819586e497b7175430826823cbebd16" -c copy test.ts

这将为您提供该曲目的完整 mp3 文件。

还可以在此问题中找到其他信息:从每首歌曲中获取 HTTP MP3 流 https://stackoverflow.com/q/29914622/2415822

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

soundcloud 轨道的流 URL,其中 Streamble 为 false 的相关文章

随机推荐

  • 在Pytorch中计算欧几里得范数..理解和实现上的麻烦

    我见过另一个 StackOverflow 线程讨论计算欧几里德范数的各种实现 但我很难理解特定实现的原因 如何工作 该代码可以在 MMD 指标的实现中找到 https github com josipd torch two sample b
  • ViewPager 开关 FragmentPagerAdapter

    我有一个ViewPager这是由一个FragmentPagerAdapter 我想将第一个适配器更换为另外两个 问题是之前加载的所有页面 同时具有第一个适配器 仍然是旧的页面 我查看了源代码FragmentPagerAdapter并猜测问题
  • Linux 上的 Python 3.6 tkinter 窗口图标错误

    我正在从 Python GUI 编程手册 学习 Python GUI 某项任务要求我通过将以下代码添加到我的配方中来更改窗口图标 Change the main windows icon win iconbitmap r C Python3
  • 将 Spring MVC 中的默认/全局日期格式设置为 ISO 8601

    我有一个简单的 Spring 控制器 RequestMapping value method RequestMethod GET public void search MyDTO dto And MyDTO public class MyD
  • 未找到行魔术函数“%%time”

    运行这个Python脚本 time train data dt fread input prediction train csv to pandas 提供的输出返回此错误 UsageError Line magic function tim
  • 如何覆盖运行时创建的 wpf 控件中的应用程序样式

    我试图在运行时创建一个 WPF 控件 但我不知道如何让它忽略来自 App xml 资源的样式 我尝试将样式设置为 null 并将 OverridesDefaultStyle 设置为 true 但没有成功 应用程序设置将前景设置为白色 我似乎
  • Azure 媒体服务仅限音频

    我们已开始使用 Azure 媒体服务 AMS 来编码 加密和托管我们的视频 MP4 效果良好 然而 除了视频之外 我们还有 MP3 音频文件 由于我们已经在使用 AMS 因此将它们放在这里也是有意义的 但我们遇到了问题 当我们尝试从门户进行
  • 如何在SQLite中的两个表之间复制数据?

    我有两个具有不同列的表 如下所示 table1 id title name number address table2 id phone name address 如何将数据 名称 地址 从表 1 复制到表 2 我的问题有两种情况 第一 t
  • 如何使用 Passport-saml 向 TestShib IdP 提供 SP 元数据?

    我有一个node js脚本 使用护照 saml https www npmjs com package passport saml 模拟 SP 我的目标是将其连接到此TestShib IdP https idp testshib org i
  • Java Sqlite Gradle

    我对 gradle 和 java 还很陌生 我有一个使用 sqlite 的项目 它通过 intellij idea 运行良好 但我无法从终端运行它 它会抛出异常 java lang ClassNotFoundException org sq
  • R testthat 单元测试数据和辅助函数约定

    我正在编写一个 R 包 并使用 testthat 进行单元测试 我的许多单元测试都是为了测试适用于我的包特定对象的功能 对于这些测试 我创建了一个辅助函数来设置模拟对象 我还有一些其他辅助函数来减少单元测试中的代码量 目前这些辅助函数在我的
  • Salesforce 返回“unsupported_grant_type”

    我们使用 Web 服务器身份验证流程实现了 OAuth 2 0 十月 十一月时运行良好 但突然停止运行 每当我们尝试授权另一个客户端时 服务器都会返回 400 Bad Request 和正文 error unsupported grant
  • nginx代理认证拦截

    我有几个服务 它们支持 nginx 实例 为了处理身份验证 在 nginx 中 我拦截每个请求并将其发送到身份验证服务 在那里 如果凭据正确 我将设置一个包含用户相关信息的 cookie 现在 请求应该被路由到适当的服务 并设置 cooki
  • Python,Bokeh:如何更改日期时间轴的范围

    我想使用按钮设置日期时间轴的范围 然而 该命令 f x range Range1d start start date end end date 不起作用 单击按钮时没有任何反应 无论是在运行 Bokeh 服务器的终端窗口中 还是在 Chro
  • 如何检测CSRF漏洞[关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 给定一个网站 如何检测潜在的 CSRF 漏洞 提前致谢 这是一个CSRF https www owasp org index php
  • Numpy 的结构化数组与 xarray (xray) 有什么区别?

    有什么区别Numpy 结构化数组命名字段 https docs scipy org doc numpy 1 16 1 user basics rec html vs xarray http xarray pydata org en stab
  • 非虚实例方法继承是如何解决的?

    通过 C 从 CLR 引用 它读起来就像call将在运行时通过 CLR 搜索由基类型定义的方法 Then callIL指令用于调用实例或虚拟 方法中 您必须指定一个引用对象的变量 方式 变量本身的类型指示定义该方法的类型 CLR 应该调用
  • Mac 上的 cp --parents 选项

    在 Linux 上 我有一个可用于 cp 命令的 parents 选项 因此我可以执行以下操作 cp parents test withintest go rb test2 http www gnu org software coreuti
  • 从 JavaScript 重新启动动画 GIF,无需重新加载图像

    我正在使用动画 GIF 创建动画幻灯片 我正在从一个动画淡入淡出到下一个动画 问题是 我发现确保 GIF 从第一帧开始动画的唯一方法是每次显示时重新加载它 每个 GIF 大约 200KB 这对于连续幻灯片播放来说带宽太大了 这是我当前的代码
  • soundcloud 轨道的流 URL,其中 Streamble 为 false

    曲目有一个 streamable 属性 如果 false 我无法获取该曲目的stream url 但我发现很少有下载器获取同一首歌曲的stream url 然后获取该曲目的 CDN 链接 我什至验证了我的应用程序 但没有找到stream u