9
2月
2022
Tizonia 云控制台播放器是音乐和播客世界的钥匙
14:08

Tizonia 云控制台播放器是音乐和播客世界的钥匙

9 2月 2022 14:08

现代万维网充斥着广告、政治、柜台、分析、烦人的广告和沉重的视频。 2020-2022 年回归互联网根源的成功尝试(gopher、lynx、mosaik) - 适用于 Linux 控制台的极简音频播放器 Tizonia。

“播客”与互联网广播电台的广播相同,但旨在从互联网下载并离线收听。 作者或工作室通常会在数月或数年的时间内定期制作播客,重点关注特定范围的主题。 通常,播客仅包含音频。 播客可以是音乐或对话。

tizonia 的优势是什么 - 它连接到流行的服务。
*Spotify* (领导者,约占音乐内容市场的 25%)
声云** (支持帐户、个人喜好和播放列表)
*调入 (具有最新音乐风格和吸引数百万听众的节目的免费音乐播客 - 例如 Armin Van Buuren“ASOT”)

  • 从命令行运行。 控制与 键盘 (按键总是比鼠标快)
  • 能够搜索网络广播电台 爱心 通过歌曲或任何单词或句子
  • 可以充当通过Icecast/SHOUTcast协议传输MP3文件的服务器(网络广播电台服务器)
  • 可以播放声音 HTTP协议 互联网广播电台:作为客户端连接到服务器 冰铸喊话广播
  • 可以充当另一个设备的编码器 Chromecast 与指定的IP地址
  • 带有源代码的免费 GNU 应用程序 - 如果需要,可以在 Raspberry PI 上从源代码进行编译(以制作互联网广播接收器)或在容器中运行 Tizonia 码头工人

tizonia 程序的作者是程序员 Juan A. Rubio“juanrubio”。


我们成功地在 Linux Ubuntu 20.04.3 LTS 俄语版本 Runtu Lite 下构建并运行 Tizonia。

官方文档链接

方法 1. 使用 snap 包管理器安装独立组件“tizonia”。**

安装 snap,然后安装 tizonia

sudo apt install snapd
sudo snap install tizonia
sudo ln -s /var/lib/snapd/snap /snap
mkdir ~/.config/tizonia
cp /snap/tizonia/current/etc/xdg/tizonia/tizonia.conf ~/.config/tizonia/

检查:

tizonia https://sc.bce.lu/eldo80s
  • 无法解决的问题:错误player: OMX_ErrorInsufficientResources是由于无法从“snap”数据包获取对声卡的访问权限引起的,大约是 开发商
  • 在基于 PulseAudio 的发行版中,没有错误,但听不到音乐,因为设备没有声音输出。

方法 2. 使用在 Shell 解释器中运行的脚本进行安装。

这个 为 Debian 和 Ubuntu 安装 tizonia 的推荐方法。 然而,事实证明,用于安装的 DEB 文件(tizonia 存储库)位于第三方 Bintray 服务器上。 要么是存储期限已过,要么是付费期限已过,但 Bintray 上的 tizonia 存储库不可用。

你可以从github服务器下载并运行脚本,它不会变得更糟(将安装依赖项),但它也没有多大用处:
*在最后阶段找不到包 tizonia-all

  • 另外,在脚本的源文本中,很明显作者将安装适应了各种操作系统,最著名的是 Debain“buster”、Debian“bullseye”。 显然,不可能考虑所有操作系统变体,并且该脚本可能无法在罕见或更高版本的 Linux 中运行。
    curl -kL https://github.com/tizonia/tizonia-openmax-il/raw/master/tools/install.sh > install.sh
    bash install.sh

或者像这样:
curl -kL https://github.com/tizonia/tizonia-openmax-il/raw/master/tools/install.sh | bash

在脚本不支持的 Linux 版本中,会出现消息:“找不到受支持的 Debian 或基于 Ubuntu 的发行版。”

!!由于 Bintray 上的存储库不可用并且与各个版本的 Linux 不兼容,因此该路径不正确。

方法三:从程序的源代码编译并组装应用程序。**

Это如果路径正确,则该方法合理并且可以在 Ubuntu 20.04 中运行。 此外,您还可以为任何与 Ubuntu 20.04 兼容的 Linux 操作系统编译该程序。

从源代码组装tizonia播放器的顺序:

!! !在 Runtu Lite 操作系统(Ubuntu 20.04 LTS 软件包基础)中,源代码的汇编成功。 我建议也在类似 Ubuntu 的操作系统上进行编译,因为 Debian 在构建时存在更多问题。

第一种编译Tizonia的方法

1。 更改了 python 解释器的默认版本

python -V

如果此命令返回版本 2.7.x(或没有显示任何内容),则_应该_将 python 切换到版本 3.x:

安装了最新版本的 python3 (及其附加包“python3-testresources”):

sudo apt-get 更新
sudo apt install python3 python3-testresources

定义安装目录:

whereis python3

在程序输出中,您需要查找包含二进制可执行文件 (/bin/) 的文件夹:

例如:
/usr/bin/python3.8

切换解释器版本

sudo ln -sfn /usr/bin/python3.8 /usr/bin/python

现在团队 python -V 显示版本 3.8(在此发行版中)。

较新版本的 python 3.9 也适用。 创建符号链接的命令:

sudo ln -sfn /usr/bin/python3.9 /usr/bin/python

2。 我在我的主文件夹(构建程序时的工作目标文件夹)中创建了 tizonia 目录和配置文件的文件夹:

mkdir ~/tizonia
mkdir ~/.config/tizonia

3。 将 tizonia 项目从 git 克隆到本地计算机:

sudo apt-get install git
cd ~
git clone https://github.com/tizonia/tizonia-openmax-il

4。 之后,转到文件夹“tizonia-openmax-il”,然后转到该文件夹tools

cd ~/tizonia-openmax-il/tools

5。 编译依赖项

做了一切 根据作者的指示 - BUILDING.HTML

export TIZONIA_REPO_DIR=/home/vladimir/tizonia-openmax-il/
export TIZONIA_INSTALL_DIR=/home/vladimir/tizonia
export PATH=$TIZONIA_REPO_DIR/tools:$PATH
export PYTHONPATH=$TIZONIA_INSTALL_DIR/lib/python3.8/site-packages:$PYTHONPATH

! 注意:在特定系统上,使用 python -V 检查 3.8 或 3.9。

添加:开始编译之前,需要将存储库archive@mopidy.com中的密钥78FD980E271D2943添加到系统中,否则编译时会出现无法验证源的错误
(W:GPG错误:https://apt.mopidy.com buster InRelease:由于公钥不可用,无法验证以下签名:NO_PUBKEY 78FD980E271D2943
E:存储库“https://apt.mopidy.com buster InRelease”未签名。)。

因此,在编译之前,我运行了命令:

sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 78FD980E271D2943

在目录中 “~/tizonia-openmax-il/工具” 执行脚本 依赖编译

bash tizonia-dev-build --deps

在 SSD 驱动器上,编译时间很短(10 分 30 秒)。

6。 安装 libspotify
libspotify 库已从大多数发行版中删除(已弃用)(已移至存档)。
依赖项:libspotify >= 12.1.51。
幸运的是,有一种使用 Mopidy APT 包安装 libspotify 的简单方法:

添加命令

sudo wget -q -O /etc/apt/sources.list.d/mopidy.list https://apt.mopidy.com/stretch.list
sudo apt-get update
sudo apt-get install libspotify12 libspotify-dev

7。 主要编译阶段 - 同一文件夹中的所有内容
~/tizonia-openmax-il/tools

在编译之前,建议安装ccache以加快进程:

sudo apt install ccache

tizonia的编译是通过命令开始的 根据指示

cd ~/tizonia-openmax-il/tools
bash tizonia-dev-build --release --install

!!! 快速 SSD 驱动器上的编译时间很长,为 45 分钟或更长时间。

! tizonia 播放器不是在 Ubuntu 22.04 及更高版本上构建的,带有 python 3.10 解释器和 libboost 1.74 库 - 请参阅。尝试解决方案 在文章的最后。

! 注意:在某些发行版中,编译主程序时可能会出现错误(下一步) “/usr/bin/ld:找不到-lboost_python3”。 在此类操作系统上,您需要安装“libboost-python-dev”或“libboost-all-dev”软件包,并创建指向“libboost_python38.so”库的符号链接。 有关解决方案的信息来源

安装程序运行所需的库“libboost-python-dev”、“libboost-program-options”和“libboost-filesystem-dev”、“libboost-thread-dev”、“libmediainfo-dev”、“libboost-dev 和 liblog4c-dev”:

sudo apt-get install libboost-python-dev libboost-program-options-dev libboost-filesystem-dev libboost-thread-dev libmediainfo-dev libev-dev liblog4c-dev

我们正在从 root 用户寻找一个名为“libboost_python3”的文件:

su -
find / -name "libboost_python3*.*" -type f

会发现这样一行:

/usr/lib/x86_64-linux-gnu/libboost_python38.so.1.71.0

/usr/lib/x86_64-linux-gnu/libboost_python39.so.1.74.0

现在让我们创建一个软符号链接:

ln -s /usr/lib/x86_64-linux-gnu/libboost_python38.so.1.71.0 /usr/lib/libboost_python3.so

ln -s //usr/lib/x86_64-linux-gnu/libboost_python39.so.1.74.0 /usr/lib/libboost_python3.so

请务必注销根会话:

logout

要运行该程序,您需要 python 库:

sudo apt-get install  python3-joblib python3-fuzzywuzzy

我们在普通用户下编译tizonia程序。

cd ~/tizonia-openmax-il/工具
bash tizonia-dev-build --release --install

现在编译时应该不会有错误了。

编译结束如下:
[代码]CXX mpris/tizonia-tizmprismgr.o
CXX mpris/tizonia-tizmprisprops.o
CXX mpris/tizonia-tizmprisif.o
CXX 服务/iheart/tizonia-tiziheartgraph.o
CXX 服务/iheart/tizonia-tiziheartgraphops.o
CXX 服务/iheart/tizonia-tiziheartmgr.o
CXXLD 蒂索尼亚
/usr/bin/mkdir -p '/home/vladimir/tizonia/bin'
/bin/bash ../libtool --mode=install /usr/bin/install -c tizonia '/home/vladimir/tizonia/bin'
libtool:安装:/usr/bin/install -c .libs/tizonia /home/vladimir/tizonia/bin/tizonia


经过时间:00:47:43[/code]### 编译 Tizonia 程序的第二种方法

适用于出现错误“未找到软件包‘libspotify’”并且无法从 mopidy.com 存档安装 libspotify 软件包的情况。

checking for SPOTIFY... no
configure: error: Package requirements (libspotify >= 12.1.51) were not met:

No package 'libspotify' found

Consider adjusting the PKG_CONFIG_PATH environment variable if you
installed software in a non-standard prefix.

Alternatively, you may set the environment variables SPOTIFY_CFLAGS
and SPOTIFY_LIBS to avoid the need to call pkg-config.
See the pkg-config man page for more details.
configure: error: ./configure failed for spotify_source
configure: error: ./configure failed for plugins

解决如下:

cd ~/tizonia-openmax-il
autoreconf -ifs 
./configure --without-libspotify
make
make install

或使用一个命令:

cd ~/tizonia-openmax-il && autoreconf -ifs && ./configure --without-libspotify && make && make install

来源,说明

! !!日期为 2022 年 4 月 20 日的注释 :在 Debian 操作系统下的“make”阶段,随着 RAM 消耗增加超过 10 GB,构建会冻结。 在 Ubuntu Linux 上,我推荐方法 1(运行)。

!!!日期为 2023 年 11 月 28 日的注释 :在 Ubuntu 22.04 中,即使在构建和编译 python3.6 和 libboost 之后,也未安装 Tizonia。 厘米。文章结束

准备好配置的配置文件~/.config/tizonia:

您需要在 ~/.config/tizonia 目录中创建它并更正其中的文件夹路径。
tizonia.conf.zip

# A comma-separated list of paths to be scanned by the Tizonia IL Core when
# searching for component plugins
component-paths = /home/vladimir/tizonia/lib/tizonia0-plugins12

更正程序数据库的路径:

# This is the path to the Resource Manager database
rmdb = /home/vladimir/tizonia/share/tizrmd/tizrm.db

启动 tizonia 程序来播放互联网上的播客

/home/vladimir/tizonia/bin/tizonia --tunein-search bobina -b 3

其中 -b 3 是音频缓冲的秒数,
bobina - 搜索字符串。
!! !俄语播放应该开始 - 来自作者 DJ Fonarev (Vladimir Fonarev) 的节目“数字情感”:

博比纳

播放器控制:

n- 下一个播客
p- 之前的播客
向上- 增加音量
向下- 减少音量等
空间- 停止/恢复音乐。

完整的命令列表在描述中 这里

问题及解决方案

如果 tizonia 播放器停止工作并出现错误

ti佐尼亚0.22.0。 版权所有 (C) 2020 胡安·卢比奥和贡献者
This software is part of the Tizonia project <https://tizonia.org>

ModuleNotFoundError: No module named 'tiztuneinproxy'

tizonia exiting (OMX_ErrorInsufficientResources).

[OMX.Aratelia.audio_source.http:port:0]
[OMX_ErrorInsufficientResources]

您需要在调用程序之前运行上述导出命令。

写了一个简短的脚本 “蒂佐尼亚.sh”,需要将其放置在用户的主目录(~)中并赋予执行权限“chmod +x tizonia.sh”:

#!/bin/sh
# Wrapper script for tizonia
export TIZONIA_INSTALL_DIR=/home/vladimir/tizonia
export PATH=$TIZONIA_REPO_DIR/tools:$PATH
export PYTHONPATH=$TIZONIA_INSTALL_DIR/lib/python3.8/site-packages:$PYTHONPATH

exec /home/vladimir/tizonia/bin/tizonia "$@"

解决方案

该程序必须通过包装脚本启动,如下所示:

~/tizonia.sh --tunein-search ASOT -b 5

(我们用关键字代替“ASOT”来搜索播客)。

在 Ubuntu 22.04 中构建 tizonia(持续出现问题)

python 3.10的编译问题:

configure: error: ./configure failed for libtizgmusic
configure: error: ./configure failed for gmusic
configure: error: ./configure failed for clients

第 1 步 – 安装依赖项

sudo apt-get install -y make build-essential libssl-dev zlib1g-dev libbz2-dev libreadline-dev libsqlite3-dev wget curl llvm libncurses5-dev libncursesw5-dev xz-utils tk-dev libffi-dev liblzma-dev libgdbm-dev libnss3-dev libedit-dev libc6-dev

第 2 步 – 下载 Python 3.6

wget https://www.python.org/ftp/python/3.6.15/Python-3.6.15.tgz

tar -xzf Python-3.6.15.tgz

步骤 3 – 编译 Python 3.6 源代码

cd Python-3.6.15
./configure --enable-optimizations  -with-lto  --with-pydebug
make -j 2  #将 2 替换为处理器核心的数量 - 4、8 或 16
sudo make altinstall

步骤 4 - 验证是否安装了 Python 3.6 版本

python3.6 --version

**第 5 步 - 从 Python 3.10 切换到 Python 3.6

whereis python3.6

/usr/local/bin/python3.6

设置路径

echo $PATH
export PATH=/usr/local/bin/python3.6:$PATH    
echo $PATH

设置:

whereis python2

/usr/bin/python2

whereis python3.6

/usr/local/bin/python3.6

whereis python3.10

/usr/bin/python3.10

sudo update-alternatives --install /usr/bin/python python /usr/local/bin/python3.6 1

sudo update-alternatives --config python3      

考试:

python -V

Python 3.6.15

sudo update-alternatives --config python3

! 要编译程序模块,您需要一个依赖项 - 一个名为“soundcloud”的 python 库! 在python 3.10和3.6中需要安装如下:

sudo update-alternatives --config python3

我选择了3.6。

python -V

显示版本 3.6.15。

步骤 6 - 临时重命名 lsb_release 模块

在 Ubuntu 22.04 (Linux Mint 21 "Victoria") 上需要执行此步骤来安装 python 模块: pip install soundcloud 并防止出现“No module named 'lsb_release'”运行时错误:

sudo mv /usr/bin/lsb_release /usr/bin/lsb_release_back

步骤 7 - 编译前安装所需版本的工具和组件

编译时出现错误

检查 python 模块:soundcloud...否
配置:错误:找不到所需的模块 soundcloud
配置:错误:./libtizsoundcloud 配置失败
配置:错误:./soundcloud 配置失败
配置:错误:./客户端配置失败

以下步骤可以解决此问题:

降级setuptools版本

sudo -H pip install "setuptools<58.0" 
sudo -H pip3 install "setuptools<58.0" 

sudo -H python -m pip install "setuptools<58.0" 
sudo -H python3 -m pip install "setuptools<58.0" 

安装依赖库,包括soundcloud:

sudo -H pip3 install --upgrade gmusicapi soundcloud youtube-dl pafy pycountry titlecase pychromecast plexapi spotipy fuzzywuzzy eventlet python-Levenshtein **Ш步骤8.编译** 

编译 tizonia - 详细描述在 文章第 5 段
!!完整编译需要 45 分钟以上。

cd ~/tizonia-openmax-il/tools/
bash tizonia-dev-build --release --install

新的问题又出现了:
/usr/bin/ld:/lib/x86_64-linux-gnu/libboost_python310.so.1.74.0:对“PyModule_Create2”的未定义引用
/usr/bin/ld: /lib/x86_64-linux-gnu/libboost_python310.so.1.74.0: 对“PyCMethod_New”的未定义引用
collect2:错误:ld 返回 1 退出状态
使[5]:*** [Makefile:459:tizcastd] 错误 1
make[5]:退出目录“/home/vladimir/tizonia-openmax-il/cast/tizcastd/src"

制作[4]:*** [Makefile:497: 全递归] 错误 1
make[4]: 退出目录“/home/vladimir/tizonia-openmax-il/cast/tizcastd"

制作[3]:*** [Makefile:406: 全部] 错误 2
make[3]:退出目录“/home/vladimir/tizonia-openmax-il/cast/tizcastd"

使[2]:*** [Makefile:338: 全递归] 错误 1
make[2]: 退出目录“/home/vladimir/tizonia-openmax-il/cast"

使[1]:*** [Makefile:389: 全递归] 错误 1
make[1]:退出目录“/home/vladimir/tizonia-openmax-il"

制作:*** [Makefile:330:全部] 错误 2

尝试的解决方案:

须藤ldconfig

重复编译。
cd ~/tizonia-openmax-il/
./configure
make
make install
[/标记]

!! 在 Linux Mint 21 (Ubuntu 22.04) 上,编译问题与 libboost_python310.so 有关。

同时,Ubuntu Linux 20.04(runtu Lite)中没有错误。

Д更新日期为 2023 年 12 月 1 日。 使用libboost解决Linux Mint 21中的问题:从源代码编译boost库

尝试编译 提升 根据指示

cd ~
wget https://boostorg.jfrog.io/artifactory/main/release/1.83.0/source/boost_1_83_0.tar.gz
sha256sum boost_1_83_0.tar.gz
tar zvfo boost_1_83_0.tar.gz 
cd boost_1_83_0/
df -h #需要 >600 MB

./bootstrap.sh --with-python=python3
./b2

该库是在 /home/vladimir/boost/boost_1_83_0/stage/lib 目录中创建的

ls -l /home/vladimir/boost/boost_1_83_0/stage/lib | grep libboost_python

libboost_python310.a
libboost_python310.so -> libboost_python310.so.1.83.0
libboost_python310.so.1.83.0

我复制:

mkdir /opt/boost
sudo cp /home/vladimir/boost/boost_1_83_0/stage/lib/*.* /opt/boost

更改软链接:/usr/lib/libboost_python3.so将指向/opt/boost/libboost_python310.so

cd 
sudo mv /usr/lib/libboost_python3.so /usr/lib/libboost_python3.so.BAK
sudo mv /lib/x86_64-linux-gnu/libboost_python310.so.1.74.0 /lib/x86_64-linux-gnu/libboost_python310.so.1.74.0.BAK
sudo mv /lib/x86_64-linux-gnu/libboost_python310.so.1.83.0 /lib/x86_64-linux-gnu/libboost_python310.so.1.83.0.BAK
sudo ln -s /opt/boost/libboost_python310.so  /usr/lib/libboost_python3.so
须藤 rm /lib/x86_64-linux-gnu/libboost_python310.so.1.74.0
/#是 /usr/lib/x86_64-linux-gnu/libboost_python38.so.1.71.0
sudo ldconfig
sudo rm /lib/x86_64-linux-gnu/libboost_python310.so.1.74.0
sudo ln -s /opt/boost/libboost_python310.so  /lib/x86_64-linux-gnu/libboost_python310.so.1.74.0
ls -l /lib/x86_64-linux-gnu/libboost_python310.so.1.74.0

进入 tizonia-openmax-il 目录并重建:

cd ~/tizonia-openmax-il/
make

错误是一样的:
/usr/bin/ld:/lib/x86_64-linux-gnu/libboost_python310.so.1.74.0:对“PyModule_Create2”的未定义引用
/usr/bin/ld: /lib/x86_64-linux-gnu/libboost_python310.so.1.74.0: 对“PyCMethod_New”的未定义引用
collect2:错误:ld 返回 1 退出状态
使[5]:*** [Makefile:459:tizcastd] 错误 1
make[5]:退出目录“/home/vladimir/tizonia-openmax-il/cast/tizcastd/src”

!!结论:在 Ubuntu 22.04 (Linux Mint 21) 上,构建是一个问题

我把它退回来:

sudo mv /lib/x86_64-linux-gnu/libboost_python310.so.1.74.0.BAK /lib/x86_64-linux-gnu/libboost_python310.so.1.74.0
sudo apt install --reinstall libboost-all-dev

完成可执行文件的组装后,我们将文件返回到原来的位置 lsb_release

 sudo mv /usr/bin/lsb_release_back /usr/bin/lsb_release 

----------------### Tune-In 上播客的完整列表:

https://tunein.com/podcasts/

使用 tizonia 播放互联网广播电台的音频

  1. 广播电台可以在这里找到: https://directory.shoutcast.com/Search
  2. 播放网络广播电台的音频:

    ~/tizonia.sh https://sc.bce.lu/eldo80s


构建 Spotify 客户端

Spotify 命令行客户端是由另一位开发人员用 Rust 编程语言编写的。 尽管 Spotify 客户端与 Tizonia 无关,但它们有很多共同点 - 从命令行调用我能够构建 Spotify 客户端:

一位爱好者创建了一个项目来取代它 -https://github.com/librespot-org/librespot

编译“LibreSpot”程序的过程:

cd ~
git clone https://github.com/librespot-org/librespot.git
sudo apt-get install build-essential libasound2-dev pkg-config
curl https://sh.rustup.rs -sSf | sh

重新启动终端窗口。

rustup component add rustfmt
rustup component add clippy
cd librespot/
cargo build --release --no-default-features --features "alsa-backend" 

变更日期:2026年4月1日



相关出版物