- xml - AJAX/Jquery XML 解析
- 具有多重继承的 XML 模式
- .net - 枚举序列化 Json 与 XML
- XML 简单类型、简单内容、复杂类型、复杂内容
我正在尝试使用带有应用程序的 ruby sdk(soundcloud 0.2.0 gem)从 Soundcloud 下载轨道。我已经在 soundcloud 上注册了该应用程序并且 client_secret 是正确的。我知道这一点,因为我可以使用该应用程序查看我的个人资料信息和轨道。现在,当我尝试使用以下代码下载轨道时
@track = current_user.soundcloud_client.get(params[:track_uri])
data = current_user.soundcloud_client.get(@track.download_url)
File.open("something.mp3","wb"){|f|f.write(data)}
当我打开文件时,里面什么也没有。我尝试了很多方法,包括以下一种,
data = current_user.soundcloud_client.get(@track.download_url)
file = File.read(data)
这个给了我一个错误
can't convert nil into String
第 13 行在
app/controllers/store_controller.rb:13:in `read'
那是 File.read
函数。
我已仔细检查我尝试下载的轨道是否公开且可下载。我尝试通过从控制台复制它并使用 Postman 发送请求来测试明确使用的 download_url 并且它有效。我不确定为什么当其他事情运行良好时它不能与该应用程序一起工作。
我想做的是能够成功下载或至少获取我可以存储在某处的数据。
版本详情:-
ruby 1.9.3p194(2012-04-20 修订版 35410)[x86_64-linux]
导轨 3.2.18
声云 0.2.0
最佳答案
在做这件事之前,您必须了解一些假设。
这是工作客户端的示例,您可以使用它从 SoundClound 下载轨道.其使用官方Official SoundCloud API Wrapper for Ruby ,假设您使用的是 Ruby 1.9.x 并且它不以任何方式依赖于 Rails。
# We use Bundler to manage our dependencies
require 'bundler/setup'
# We store SC_CLIENT_ID and SC_CLIENT_SECRET in .env
# and dotenv gem loads that for us
require 'dotenv'; Dotenv.load
require 'soundcloud'
require 'open-uri'
# Ruby 1.9.x has a problem with following redirects so we use this
# "monkey-patch" gem to fix that. Not needed in Ruby >= 2.x
require 'open_uri_redirections'
# First there is the authentication part.
client = SoundCloud.new(
client_id: ENV.fetch("SC_CLIENT_ID"),
client_secret: ENV.fetch("SC_CLIENT_SECRET")
)
# Track URL, publicly visible...
track_url = "http://soundcloud.com/forss/flickermood"
# We call SoundCloud API to resolve track url
track = client.get('/resolve', url: track_url)
# If track is not downloadable, abort the process
unless track["downloadable"]
puts "You can't download this track!"
exit 1
end
# We take track id, and we use that to name our local file
track_id = track.id
track_filename = "%s.aif" % track_id.to_s
download_url = "%s?client_id=%s" % [track.download_url, ENV.fetch("SC_CLIENT_ID")]
File.open(track_filename, "wb") do |saved_file|
open(download_url, allow_redirections: :all) do |read_file|
saved_file.write(read_file.read)
end
end
puts "Your track was saved to: #{track_filename}"
另请注意,文件位于 AIFF (Audio Interchange File Format) 中.要将它们转换为 mp3,您可以使用 ffmpeg 执行类似的操作.
ffmpeg -i 293.aif final-293.mp3
关于ruby - 使用 Ruby SDK 从 Soundcloud 下载轨道,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25622120/
来自 SoundCloud API Guide ,这是获取声音的流媒体 URL 的方法: import soundcloud # create a client object with your ap
我和我的团队希望在我们正在构建的网站中使用嵌入式 SoundCloud 小部件。我们希望使用 API 通过跟踪每个轨道的 playback_count 属性来跟踪播放总数,但是我无法找到有关如何/何时
关闭。这个问题不满足Stack Overflow guidelines .它目前不接受答案。 想改善这个问题吗?更新问题,使其成为 on-topic对于堆栈溢出。 4年前关闭。 Improve thi
我正在使用以下查询从 soundcloud 的 API 获取轨道列表,以检索 5 个最受欢迎的轨道: https://api.soundcloud.com/tracks?client_id=XXX&o
有没有办法在我的网站上嵌入 SoundCloud 关注按钮,以便用户可以关注网站上的页面/ channel ? 是否也有可能与 Vimeo 有类似的东西? 最佳答案 看起来 SoundCloud 通过
关闭。 这个问题不符合 Stack Overflow guidelines 。它目前不接受答案。 这个问题似乎与 help center 中定义的范围内的编程无关。 关闭 5 年前。 Improve
我计划对上传到 SoundCloud 的音乐轨道中的情绪以及与这些轨道相关的元数据进行数据分析,以研究音乐内容中的情绪如何影响发布到其中的评论。 有什么方法可以下载可从 SoundCloud 下载的具
使用 Soundmanager2 获取元数据会遇到闪存权限问题。我想要的是访问轨道的元数据以生成视觉效果。 (其中的例子 here ) 我注意到一件事是你声明 Their api allows for
我无法在 HTTP API 文档中找到任何合适的内容。 据我所知,在当前轨道完成后,SC widget 中会弹出一些轨道,因此 SC 本身有一些相关的轨道功能,但我们可以通过 API 访问它吗? 即获
我在 node.js (Express) 应用程序中使用 Javascript SDK。 连接用户工作正常,但连接不会在页面重新加载之间持续存在。这是默认行为,还是用户应该在新请求中保持联系? 我是否
“喜欢”一首歌曲似乎很容易; PUT至/me/favorites/ 。但我在 API 文档中没有看到任何重新发布轨道的方法;我错过了什么吗? 最佳答案 稍微挖掘一下,网络用户界面似乎使用 PUT至/m
我确实到处找过,但不知道如何找到我可以在他们的嵌入代码中使用的用户 ID。有谁知道怎么查吗? 最佳答案 蒂姆的项目似乎被破坏了。我想我只需将解决方案复制并粘贴到此处即可。谢谢 subZero! cur
我在 node.js (Express) 应用程序中使用 Javascript SDK。 连接用户工作正常,但连接不会在页面重新加载之间持续存在。这是默认行为,还是用户应该在新请求中保持联系? 我是否
“喜欢”一首歌曲似乎很容易; PUT至 /me/favorites/ .但是我在 API 文档中看不到任何重新发布轨道的方法;我错过了什么吗? 最佳答案 稍微挖掘一下,Web UI 似乎使用了 PUT
我如何编辑 redirect_uri在我的 SoundCloud 应用程序仪表板中?我去http://soundcloud.com/you/apps但没有找到编辑按钮。 最佳答案 目前无法进行编辑,因
我正在尝试使用 WebService::Soundcloud 将声音上传到 soundcloud .到目前为止,我已经能够按照 the WebService::Soundcloud documenta
例如: http://soundcloud.com/mhiqu3/sets/heretik/ 如何获取缩略图网址:http://i1.sndcdn.com/artworks-000004897289-
我正在使用 /tracks用于检索歌曲统计信息的 API 端点,例如播放次数和收藏次数。我注意到 API 中的播放次数与网站上的播放次数不同。 这是一个例子 我在这里找到了解决方法 https://s
有什么方法可以通过 Soundcloud Python API 重新发布轨道吗?我有点麻烦。我尝试了 client.put('/me/track_reposts/trackID') 但它给了我一个 4
我继承了 Soundcloud ID 的数据库,并想建立一个页面链接到 Soundcloud 上的每个轨道。是否可以仅使用其 ID 链接到 Soundcloud 网站上的轨道,例如 http://ww
我是一名优秀的程序员,十分优秀!