如何修复 YouTube-dl 参数无效。在 Heroku 上
How to fix YouTube-dl Invalid parameters. on Heroku
当我尝试使用 youtube-dl.rb
gem 下载一首歌曲时,它可以在本地运行,但是当我在 Heroku 上下载时,它会显示:
Terrapin::ExitStatusError - Command '/app/vendor/bundle/ruby/2.6.0/gems/youtube-dl.rb-0.3.1.2016.09.11.1/vendor/bin/youtube-dl --no-color --no-progress --print-json "ytsearch:notion hooked"' returned 1. Expected 0
它还说了一些关于 cocaine
被弃用的事情:
DEPRECATION: The cocaine gem is deprecated. Please upgrade to terrapin. See https://github.com/thoughtbot/terrapin/ for further instructions.
这是我的代码 运行 这个 gem:
song_list.each { |song|
# formatted_command = 'youtube-dl -o "' + __dir__.to_s + '/' + temp_dir_name + '/%(title)s.%(ext)s" -x --audio-format mp3 "ytsearch:' + song + '"'
# system formatted_command
options = {
audio_format: :mp3,
extract_audio: true,
output: "#{__dir__.to_s}/#{temp_dir_name}/%(title)s.%(ext)s",
}
YoutubeDL.download "ytsearch:#{song}", options
}
我评论了上面两行是使用 CLI 工具下载歌曲,效果也很好,但我无法在 Heroku 机器上下载该工具,所以我必须使用这个 Ruby 包装器。
以下是在您的 Heroku 服务器上 运行 youtube-dl
的一些说明:
- 在您的存储库的根目录中创建一个
requirements.txt
文件,内容为:
youtube-dl
- 运行下面三个命令设置Pythonbuildpack以及Rubybuildpack,确保Ruby是 主要 buildpack:
heroku buildpacks:add heroku/ruby
heroku buildpacks:add --index 1 heroku/python
heroku buildpacks:set heroku/ruby
提交并部署,打开 heroku run bash
和 运行 youtube-dl
进行测试。如果它在这里工作,您也可以从 Ruby 调用它。
当我尝试使用 youtube-dl.rb
gem 下载一首歌曲时,它可以在本地运行,但是当我在 Heroku 上下载时,它会显示:
Terrapin::ExitStatusError - Command '/app/vendor/bundle/ruby/2.6.0/gems/youtube-dl.rb-0.3.1.2016.09.11.1/vendor/bin/youtube-dl --no-color --no-progress --print-json "ytsearch:notion hooked"' returned 1. Expected 0
它还说了一些关于 cocaine
被弃用的事情:
DEPRECATION: The cocaine gem is deprecated. Please upgrade to terrapin. See https://github.com/thoughtbot/terrapin/ for further instructions.
这是我的代码 运行 这个 gem:
song_list.each { |song|
# formatted_command = 'youtube-dl -o "' + __dir__.to_s + '/' + temp_dir_name + '/%(title)s.%(ext)s" -x --audio-format mp3 "ytsearch:' + song + '"'
# system formatted_command
options = {
audio_format: :mp3,
extract_audio: true,
output: "#{__dir__.to_s}/#{temp_dir_name}/%(title)s.%(ext)s",
}
YoutubeDL.download "ytsearch:#{song}", options
}
我评论了上面两行是使用 CLI 工具下载歌曲,效果也很好,但我无法在 Heroku 机器上下载该工具,所以我必须使用这个 Ruby 包装器。
以下是在您的 Heroku 服务器上 运行 youtube-dl
的一些说明:
- 在您的存储库的根目录中创建一个
requirements.txt
文件,内容为:
youtube-dl
- 运行下面三个命令设置Pythonbuildpack以及Rubybuildpack,确保Ruby是 主要 buildpack:
heroku buildpacks:add heroku/ruby
heroku buildpacks:add --index 1 heroku/python
heroku buildpacks:set heroku/ruby
提交并部署,打开 heroku run bash
和 运行 youtube-dl
进行测试。如果它在这里工作,您也可以从 Ruby 调用它。