Сохраните API_KEY в env var и используйте в списке воспроизведения URL - PullRequest
0 голосов
/ 08 марта 2019

Я использую потоковую службу (di.fm), которая имеет много каналов. У каждого канала есть плейлист, который я транслирую из CLI (используя mpv). Каждый URL в каждом плейлисте хранит ключ API.

Я хочу хранить ключ API KEY вне отдельных списков воспроизведения, поэтому, например, если я изменяю ключ API KEY, мне не нужно менять каждый список воспроизведения.

Я на Mac.

1) Какое самое лучшее (самое безопасное) место для объявления export DI_KEY=""? В .bashrc была моя первая мысль, за исключением того, что я делаю это обратно в github. Есть ли другое лучшее место для объявления переменной env, которая будет создаваться каждый раз, когда я вхожу в bash?

2) Как в файле списка воспроизведения использовать $DI_KEY в URL?

[playlist]
NumberOfEntries=1
File1=http://prem4.di.fm:80/00sclubhits?$DI_KEY
Title1=DI.FM - 00s Club Hits
Length1=0
Version=2

Простая ссылка на него не работает.

enter image description here

Я уверен, что на это можно ответить в другом месте, но во всех моих поисках я не смог найти никаких полезных ответов, особенно на вопросы 2.

1 Ответ

1 голос
/ 08 марта 2019

Что касается установки переменных env за пределами .bashrc, вы можете создать отдельный файл для определения чувствительных переменных и получить их из вашего .bashrc.

Например, создайте файл ~.my-private-variables, добавьте имя файла к вашему .gitignore и добавьте строку export DI_KEY="12345" в этот файл. Затем добавьте следующий блок в .bashrc:

if [ -f ~/.my-private-variables ]; then                                                                               
  . ~/.my-private-variables                                                                                         
fi  

Что касается файла списка воспроизведения, bash не запускает файл, поэтому переменная окружения не раскрывается.

Вы можете динамически генерировать список воспроизведения при запуске bash, что-то вроде этого:

#!/bin/bash

filename=playlist-1.pls
baseurl=http://prem4.di.fm:80

cat << EOF > $filename
[playlist]
NumberOfEntries=1
File1=${baseurl}/00sclubhits?${DI_KEY}
Title1=DI.FM - 00s Club Hits
Length1=0
Version=2
EOF

Это расширит переменную и запишет ее в файл, в данном случае playlist-1.pls в текущем рабочем каталоге. Вы можете добавить абсолютный путь к переменной имени файла, которая ссылается на каталог плейлистов.

Чтобы выполнить это, вы можете создать скрипт с именем playlist-generator и получить его в .bashrc, как описано выше. Вы можете добавить столько плейлистов, сколько захотите.

...