将API_KEY存储在env var中并在播放列表URL中使用

问题描述 投票:0回答:1

我使用有许多频道的流媒体服务(di.fm)。每个频道都有一个来自CLI的播放列表(使用mpv)。每个播放列表中的每个URL都存储API KEY。

我想将API KEY存储在各个播放列表之外,例如,如果我更改API KEY,则不必更改每个播放列表。

我在Mac上。

1)宣布export DI_KEY=""最好(最安全)的地方是什么?在.bashrc是我的第一个想法,除了我把它备份到github。还有其他更好的地方可以声明每次进入bash时都会创建的env var吗?

2)在播放列表文件中,如何在URL中使用$DI_KEY

[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。

bash environment-variables global-variables audio-streaming playlist
1个回答
1
投票

关于在.bashrc之外设置env变量,您可以创建一个单独的文件来定义敏感变量,并从.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中将其源化,如上所述。您可以在此处添加任意数量的播放列表。

© www.soinside.com 2019 - 2024. All rights reserved.