9
February
2022
Console "cloud" player Tizonia - the key to the world of music and podcasts
14:08

Console "cloud" player Tizonia - the key to the world of music and podcasts

9 February 2022 14:08

Modern WWW is overloaded with advertising, politics, counters, analytics, annoying ads and heavy videos. A successful attempt to return to the roots of the Internet in 2020-2022r, lynx, mosaik) - минималистский аудио плеер Tizonia для консоли Linux.

"Podkasta" is the same as the radio transmission of Internet radio stations, but designed to download from the Internet and listening to their offline. The author or studio usually regularly release podcasts (programs), adhering to a certain circle of topics for months or years. As a rule, podcasts contain only sound. Podcasts can be musical or conversational .

What is the advantage of Tizonia - connects to popular services.
* spotify * (leader, about 25% of the musical content market)
SoundCloud ** (there is support for accounting, personal preferences and playlists)
* tune -in (free musical podcasts with the most relevant musical styles and programs that collect millionth audiences of students - for example, armin Van Buuren "asot)

  • Starts from the command line. Management with keyboard (keys are always faster than mouse)
    *The ability to search for an Internet radio station on iheeart by song or by arbitrary word or proposal
  • can act as a server for transferring mp3 files by icec protocolast/SHOUTcaST (Internet radio station server)
    knows how to play the sound with http Internet radio stations: connects as a client to the icec serversast и SHOUTcaST
    can act as an encoder for another device chromecaST with the specified IP address
  • Free GNU application with the source codes - can be assembled from the original texts, if desired, on Raspberry PI (сделать Интернет-радиоприёмник) или запустить Tizonia в контейнере Docker.

The author of the Tizoni programa является программист Juan A. Rubio "juanrubio ".


Managed to collect and launch Tizonia под Linux Ubuntu 20.04.3 LTS российской версии Runtu Lite.

Link to Official Documentation

Three Methods for installing Tizonia

Method No. 1. Installation of the isolated component "Tizonia" с помощью менеджера пакетов snaP. **

Installation SNap, затем в нём tizonia
sudo apt install snapd
sudo ln -s /var/lib/snapd/snap /snap
sudo snap install tizonia

This method is non -working, as it leads to the following problems:

  • Tizoni configuration filea.conf находится в доступной только для чтения файловой системе snap (решается копированием файла tizonia.conf из папки snap в каталог ~/.config/tizonia рабочей папки пользователя
  • Unbearable problem: error PLayer: OMX_ErrorInsufficientResources вызвана невозможностью получения из пакетов "snap" доступа к звуковой карте в некоторых дистрибутивах, о чем пишет Developer.

Method No. 2. Installation using the script that is performed in the Shell interpreter.

This is the recommended method of installing Tizonia для Debian и Ubuntu. Однако оказалось, что DEB-файлы для установки (репозиторий tizonia) находятся на сторонем сервере Bintray. То-ли срок хранения закончился, то-ли срок оплаты, но репозиторий tizonia на Bintray is not available.

You can download and start the script from the GitHub server, it will not be worse from this (dependencies will be established), but there is not enough good:
* At the final stage, Tizoni packagea-aLL is not found .

  • Also, the initial text of the script shows that the author adjusts the installation to various operating systems, the most famous, such as Debain "buster", DebiaN "Bullseye". Obviously, all OS options cannot be taken into account, and in rare or later versions of Linux the script may be ineffective.
    curl -kL https://github.com/tizonia/tizonia-openmax-il/raw/master/tools/install.sh > install.sh
    bash install.sh

or so:
curl -kL https://github.com/tizonia/tizonia-openmax-il/raw/master/tools/install.sh | bash

In versions of Linux, which the script does not support, a message is issued: "Can't find a supported Debian or Ubuntu-based distrIbution. "

This path is erroneous due to the inaccessibility of the repository on Bintray, incompatibility with various versions of Linux.

Method No. 3. Compilation and assembly of the application from the initial texts of the programs. **

ЭтоT the path is correct, the method has justified itself and works at Ubuntu 04.04. In addition, you can compile a program for any operating systems of the Linux family compatible with Ubuntu 20.04.

Order of the Tizonia player from the source codes:

The assembly from the source codes was successful in the Runtu Lite operating system (Ubuntu 04.04 LTS package base). I recommend that compilation also in Ubuntu-like OS, as Debian has much more assembly problems.

The first method of compilation Tizonia

1. Changed the version of the Python interpreter by default .

python -V

If this command issued version 2.7.x (or showed nothing), WHOLE SOW PYTHON to version 3.x:

Installed Python3 of the newest version (and an additional package "Python3-TestresourCES " to him):

sudo apt-get update
sudo apt install python3 python3-testresourCes

Determined the installation catalog:

whereis python3

In the output of the program, you need to find the eyes with the mention of the binary executable file (/bin/):

For example:
/usr/bin/python3.8

I switched the version of the interpreter

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

Now the team python -V показала версию 3.8 (в данном дистрибутиве).

The newer version of Python 3.9 is also suitable. Team of the creation link:

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

2. Created Tizonia catalogs in a home folder (work folder when assembling a program) and a folder for a configuration file:

mkdir ~/tizonia
mkdir ~/.config/tizonia

3. Cloning Tizonia project from Git to a local computer:

sudo apt-get instaLL Git
cd ~
git clone https://github.com/tizonia/tizonia-openmaX-IL

4. After that, go to the Tizoni foldera-openmaX-IL ', then into the foldertools:

cd ~/tizonia-openmax-il/Tools

5. We compile dependencies

Сделал всё по инструкции автора - 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

Note: In a particular system, clarify 3.8 or 3.9 using Python -V.

Supplement: Before starting compilation, you need to add the key 78FD980E271D2943 to the system from the repository archive@mopidy.com, because Otherwise, during compilation there will be a mistake that the source cannot be verified
(W: Bug GPG: https: //apt.mopidy.com buster InReleaSE: The following signatures cannot be checked, as the open key is not available: no_pubkey 78FD980E271D2943
E: repository "https: //apt.mopidy.com buster InReleaSE " not signed.).

Therefore, before the compilation, I completed the command:

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

In the catalog "~/tizonia-openmax-il/Tools " Perform a script for Dependencies compilation :

bash tizonia-dev-build --deps

On the SSD disk, the compilation time is small (10 minutes 30 seconds).

6. Installation Libspotify
The Libspotify library is excluded from most distributions as outdated (moved to the archive).
Dependence: Libspotify> = 12.1.51.
Fortunately, there is a simple way to install Libspotify using a package from the Mopidy Apt archive:

Add commands

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. The main stage of compilation is all from the same folder
~/tizonia-openmax-il/tools

Before compilation, it is advisable to install Ccache in order to accelerate the process:

sudo apt install ccaChe

Tizoni compilation launcha производится командой по инструкции:

cd ~/tizonia-openmax-il/Tools
bash tizonia-dev-build --release --instaLL

The compilation time on the fast SSD disk is significant, is 45 minutes and longer.

The Tizonia player is not going to Ubuntu 22.04 and newer, with the Python 3.10 interpreter and the LibBoost 1.74 library - see the solution to solve at the end of the article.


Note: In some distributions when compiling the main program (next step), an error may occur "/USr/bin/ld: cannot find -lboost_python3". В таких ОС нужно установить пакет "libboost-python-dev" или "libboost-aLL-DEV " and create a symbolic link to the library " LibBoost_Python38.so ".Source of information about the method of solution:

We install the LibBoost-Python-Dev, LibBoost-P library programs necessary for the work of the library.rogram-options " и " libboost-filesystem-dev ", " libboost-thread-dev ", " libmediaInfo-Dev, Libev-Dev and 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

We are looking for a file that can be called "LibBoost_python3" from the user of the ROOT:

su -
find / -namE "LibBoost_python3*.*" -type f

A line of view will be found:

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

or

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

Now we create a soft symbolic link:

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

or

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

Be sure to leave the Root session:

logout

The program needs Python libraries:

sudo apt-get instaLL Python3-Joblib Python3-Fuzzywazy

We perform Tizonia program compiling under a regular user.

CD ~/Tizonia-openmax-il/Tools
bash tizonia-dev-build --release --instaLL

Now, when compiling errors, it should not be issued.

The completion of the compilation is as follows:
[Code] CXXmpris/tizonia-tizmprismgr.o
CXX mpris/tizonia-tizmprisprOPS.O
CXX mpris/tizonia-tizmprISIF.O
CXX services/iheart/tizonia-tiziheartgraPh.O
CXX services/iheart/tizonia-tiziheartgraPhOPS.O
CXX services/iheart/tizonia-tiziheartmgr.o
CXXLD tizonia
/usr/bin/mkdir -p '/home/vladimir/tizonia/bin '
/bin/bash ../libtool --mode=install /usr/bin/install -c tizonia '/home/vladimir/tizonia/bin '
Libtool: Install: /usr/bin/install -c .libs/tizonia /home/vladimir/tizonia/bin/tizonia


Elapsed time: 00:47:43[/Code]

The second method of compilation of the Tizonia program

It is used in case of error "No package 'libspotify' found" и невозможности установить пакет libspotify из архива mopidy.com.

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

It is solved as follows:

cd ~/tizonia-openmaX-IL
autorECONF -IFS
./configure --without-libspotify
makE.
make instaLL

or one team:

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

(Source,Instructions)

Note from 04/20/2022 : at the stage "make" под ОС DebiaN "freezing" assembly with an increase in the consumption of RAM over 10 GB. On Ubuntu Linux I recommend the method No. 1 (launch).

Note from 11/28/2023 : in Ubuntu 22.04 Tizonia is not put, even after the assembly and compilation of Python3.6 and LibBoost. Cm.The end of the article.

Ready -made configuration file ~/.config/tizonia:

It needs to be created in the catalog ~/.config/tizonia and fix the path to folders in it.
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

Fix the path to the database of the program:

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

Launch of the Tizonia program to reproduce podcast from the Internet

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

where -b 3 is the number of seconds of sound buffering,
bobina - search line.

Playback in Russian should begin - the show "Digital Emotions" от автора DJ FonarEV (Vladimir Fonarov):

Bobina

Player control:

n - Next podcast
p - previous podcast
Up - increase the volume
down - reduce the volume, etc.
gap - Stop / resume music.

The full list of commands is in the description Here.

Problems and solutions

If the Tizonia player stopped working, with a mistake

tiZonia 0.22.0. Copyright (C) 2020 Juan A. Rubio and contributorS
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]

You need to perform the above Export commands before calling the program.

Wrote a short script "Tizonia.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 "$@"

Solution

The launch of the program must be performed through Wrapper-Skript is as follows:

~/tizonia.sh --tunein-searCh ASOT -B 5

(Instead of "asot" we substitute keywords for finding a podcast).

Assembly Tizonia in Ubuntu 22.04 (continuous problems)

The problem of compilation at Python 3.10:

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

Step 1 - Dependencies setting

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

Step 2 - loading 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

Step 3 - compilation of the source code Python 3.6

cd Python-3.6.15
./configure --enable-optimizaTions -with-Lto --with-Pydebug
make -j 2 # replace 2 with the number of processor nuclei - 4, 8 or 16
sudo make altinstaLL

Step 4 - Checking the installation of the version of Python 3.6

python3.6 --version

** Step 5 - Switching from Python 3.10 to Python 3.6

whereis python3.6

/usr/local/bin/python3.6

Settings of the path

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

Settings:

Wereis 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

Examination:

python -V

Python 3.6.15

Sudo UPDate-alternaTIVES --config Python3

To compile the program modules, you will need dependence - a library for Python called "SoundCloud"! Which must be installed in Python 3.10 and 3.6 as follows:

sudo update-alternaTIVES --config Python3

I chose 3.6.

python -V

Version 3.6.15 is displayed.

Step 6 - temporary renaming of the module lsb_releaSe

This step is needed in 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

Step 7 - Installing the desired versions of tools and components before compilation

During compilation, errors arose

checking python mODULE: SoundCloud ... no
Configure: error: failed to find required mODULE SOUNDCLOD
Configure: error: ./configure failed for libtizsoundcloud
Configure: error: ./configure failed for soundcloud
Configure: error: ./configure failed for clients

The following actions solve this problem:

Decrease in the version of 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" 

Installation of addiction libraries, including SoundCloud:

sudo -H pip3 install --upgrade gmusicapi soundcloud youtube-dl pafy pycountry titlecase pychromecast plexaPi Spotipy Fuzzywuzzy Eventlet Python-Lavenshtein

ШAG 8. Compilation

Tizoni compilationa - подробно описана в пункт 5 Articles.

Full compilation takes more than 45 minutes.

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

A new problem has appeared:

/usr/bin/ld: /lib/x86_64-linux-gnu/libboost_python310.so.1.74.0: undefined reference to `PyModule_CreaTE2 ' /usr/bin/ld: /lib/x86_64-linux-gnu/libboost_python310.so.1.74.0: undefined referEnce to `PycMethod_new ' Collect2: E.rror: ld returned 1 exit staTus make[5]: *** [Makefile:459: tizcaSTD] Error 1 make[5]: выход из каталога «/home/vladimir/tizonia-openmax-il/cast/tizcastd/srC " make[4]: *** [Makefile:497: all-recurSive] error 1 make[4]: выход из каталога «/home/vladimir/tizonia-openmax-il/cast/tizcaSTD " make[3]: *** [Makefile:406: aLL] Error 2 make[3]: выход из каталога «/home/vladimir/tizonia-openmax-il/cast/tizcaSTD " make[2]: *** [Makefile:338: all-recurSive] error 1 make[2]: выход из каталога «/home/vladimir/tizonia-openmax-il/caST " make[1]: *** [Makefile:389: all-recurSive] error 1 make[1]: выход из каталога «/home/vladimir/tizonia-openmaX-IL " make: *** [Makefile:330: aLL] Error 2 Trying to solve: sudo ldconfig Repeat the compilation. cd ~/tizonia-openmax-il/ ./configure makE. make instaLL !! In Linux Mint 21 (Ubuntu 22.04), the compilation problem is related to Libboost_Python310.so. At the same time, there are no errors in Ubuntu Linux 20.04 (Runtu Lite). **ДRegulation from 01.12.2023. The solution to the problem in Linux Mint 21 with LibBoost: Compilation of the Boost library from the sources ** Made an attempt to compilation ** Boost ** [According to the instructions](https://www.baeldung.com/linux/boost-install-on-ubuntu). 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 The library was created in the catalog /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 Copy: 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 sudo 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 Entrance to the Tizoni Cataloga-openmaX-IL and re-assembly: cd ~/tizonia-openmax-il/ makE. The error is the same: /usr/bin/ld: /lib/x86_64-linux-gnu/libboost_python310.so.1.74.0: undefined reference to `PyModule_CreaTE2 ' /usr/bin/ld: /lib/x86_64-linux-gnu/libboost_python310.so.1.74.0: undefined referEnce to `PycMethod_new ' Collect2: E.rror: ld returned 1 exit staTus make[5]: *** [Makefile:459: tizcaSTD] Error 1 make[5]: выход из каталога «/home/vladimir/tizonia-openmax-il/cast/tizcastd/src» !! Conclusion: in Ubuntu 22.04 (Linux Mint 21) Assembly _ Represents the problem_. I return back: Sudomv /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 After the assembly of the executable file is completed, we return the file to place `lsb_release`: sudo mv /usr/bin/lsb_release_back /usr/bin/lsb_release -------------- ### A complete list of podcasts on Tune-in: [https://tunein.com/podcasts/](https://tunein.com/podcasts/). ### Using Tizonia to play sound from the Internet radio station 1. 1. Radio can be found here:[https: // directory.shoutcast.com/SearCh](https://directory.shoutcast.com/Search) 2. Reproduction of sound from the Internet radio station: ~/tizonia.sh http://81.92.237.83:80/Eldo80s ---------------------- ## Assembly of the client Spotify The Spotify client for the command line is written in the programming language RUST another developer. Although the Spotify client is not related to Tizonia, they have a lot in common - the call from the command line I managed to assemble the Spotify client: The enthusiast created a project to replace it -[https://github.com/librespot-org/librEspot](https://github.com/librespot-org/librespot). The procedure for compilation of the Librespot program: 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 Restarting the terminal window. rustup component add rustfmt rustup component add Clippy cd librespot/ cargo build --release --no-default-features --features "alsa-backend " --- _Data changes: 04/17/2025_

Related publications