Как исправить неверные параметры YouTube-dl. на Heroku - PullRequest
0 голосов
/ 17 января 2020

Когда я пытаюсь скачать песню с 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 устарела как this:

DEPRECATION: The cocaine gem is deprecated. Please upgrade to terrapin. See https://github.com/thoughtbot/terrapin/ for further instructions.

Это мой код, который запускает этот гем:

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.

1 Ответ

1 голос
/ 18 января 2020

Вот несколько инструкций по запуску youtube-dl на вашем сервере Heroku:

  1. создайте файл requirements.txt в root вашего репо с содержанием:
youtube-dl
Запустите следующие три команды для настройки Python buildpack , а также Ruby buildpack, убедившись, что 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.

...