将 API_KEY 存储在环境变量中并在播放列表中使用 URL

Store an API_KEY in an env var and use in a playlist URL

我使用有很多频道的流媒体服务 (di.fm)。每个频道都有一个播放列表,我从 CLI(使用 mpv)流式传输。每个播放列表中的每个 URL 存储 API KEY。

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

我在 Mac。

1) 申报的最佳(最安全)地点是什么export DI_KEY=""?在 .bashrc 中是我的第一个想法,但我将其备份到 github。任何其他更好的地方来声明每次输入 bash?

时将创建的环境变量

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

直接引用是不行的。

我敢肯定这可能在其他地方得到解答,但在我所有的搜索中我找不到任何有用的答案,尤其是问题 2。

关于在 .bashrc 之外设置 env 变量,您可以创建一个单独的文件来定义敏感变量并从 .bashrc.

中获取它

例如,创建一个文件 ~.my-private-variables,将文件名添加到您的 .gitignore 并将行 export DI_KEY="12345" 添加到该文件。然后在 .bashrc 中添加以下块:

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

关于播放列表文件,bash不是运行ning文件,所以没有展开环境变量。

您可以在 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 中获取它。您可以在此处添加任意数量的播放列表。