今回は、趣向を変えて、コマンドのインストールです。
昔からshoutcastを使ったインターネットラジオを聞いています。このコマンドはインターネットラジオで流れている音楽を、mp3ファイルとして録音してくれるコマンドです。
今どきはストリーミングで聴くのでしょうが、自分の場合、特にこだわりがないので、「手間がかからず」「飽きないように音楽を入れ替えて」「音楽だけを聞いていたい」ので、インターネットラジオのほうが好みです。
サーバで録りためた音楽ファイルをスマホに持ち出して聞いていれば、ストリーミングよりバッテリーもギガも減らないというのもあります。
公式サイトからソースをダウンロード
公式サイトはこちら
ここからソースをダウンロードし、展開します。
[root@ace ~]# cd /usr/local/src/
[root@ace src]# wget https://sourceforge.net/projects/streamripper/files/streamripper%20%28current%29/1.64.6/streamripper-1.64.6.tar.gz/download
--2024-02-07 15:33:21-- https://sourceforge.net/projects/streamripper/files/streamripper%20%28current%29/1.64.6/streamripper-1.64.6.tar.gz/download
sourceforge.net (sourceforge.net) をDNSに問いあわせています... 2606:4700:4400::6812:256f, 2606:4700:4400::ac40:9691, 104.18.37.111, ...
sourceforge.net (sourceforge.net)|2606:4700:4400::6812:256f|:443 に接続していま す... 接続しました。
HTTP による接続要求を送信しました、応答を待っています... 302 Found
:
省略
:
HTTP による接続要求を送信しました、応答を待っています... 200 OK
長さ: 900205 (879K) [application/x-gzip]
`download' に保存中
download 100%[===================>] 879.11K 409KB/s 時間 2.1s
2024-02-07 15:33:24 (409 KB/s) - `download' へ保存完了 [900205/900205]
[root@ace src]# ls -l download
-rw-r--r-- 1 root root 900205 3月 31 2009 download
[root@ace src]# mv download streamripper-1.64.6.tar.gz
[root@ace src]# tar xfz streamripper-1.64.6.tar.gz
[root@ace src]# chown -R root:root streamripper-1.64.6
[root@ace src]# chmod -R o-w streamripper-1.64.6
[root@ace src]# ls -l streamripper-1.64.6
合計 900
-rw-r--r-- 1 root root 22890 3月 31 2009 CHANGES
-rw-r--r-- 1 root root 17982 8月 4 2001 COPYING
-rw-r--r-- 1 root root 8139 9月 19 2004 INSTALL
-rw-r--r-- 1 root root 9917 2月 17 2009 Makefile.am
-rw-r--r-- 1 root root 41634 3月 31 2009 Makefile.in
-rw-r--r-- 1 root root 21405 3月 9 2009 README
-rw-r--r-- 1 root root 3165 3月 9 2009 THANKS
-rw-r--r-- 1 root root 32578 3月 31 2009 aclocal.m4
-rwxr-xr-x 1 root root 38293 5月 22 2002 config.guess
-rwxr-xr-x 1 root root 14108 9月 14 2004 config.rpath
-rwxr-xr-x 1 root root 28332 5月 22 2002 config.sub
-rwxr-xr-x 1 root root 359255 3月 31 2009 configure
-rw-r--r-- 1 root root 12066 3月 31 2009 configure.ac
drwxrwxr-x 2 root root 51 3月 31 2009 console
-rw-r--r-- 1 root root 14841 4月 20 2004 depcomp
-rwxr-xr-x 1 root root 970 11月 12 2005 fake_external_metadata.pl
-rwxr-xr-x 1 root root 1361 11月 12 2005 fetch_external_metadata.pl
-rw-r--r-- 1 root root 9231 5月 30 2005 install-sh
drwxrwxr-x 2 root root 4096 3月 31 2009 lib
drwxrwxr-x 2 root root 4096 3月 31 2009 libmad-0.15.1b
-rwxr-xr-x 1 root root 94197 5月 22 2002 ltconfig
-rw-r--r-- 1 root root 109411 5月 22 2002 ltmain.sh
drwxrwxr-x 2 root root 234 3月 31 2009 m4
-rw-r--r-- 1 root root 10678 4月 20 2004 missing
-rw-r--r-- 1 root root 3150 3月 8 2009 parse_rules.txt
-rw-r--r-- 1 root root 20582 3月 9 2009 streamripper.1
[root@ace src]#
コンパイルとインストール
展開したソースに降りて
[root@ace src]# cd streamripper-1.64.6
[root@ace streamripper-1.64.6]# ./configure --help
`configure' configures streamripper 1.64.6 to adapt to many kinds of systems.
Usage: ./configure [OPTION]... [VAR=VALUE]...
To assign environment variables (e.g., CC, CFLAGS...), specify them as
VAR=VALUE. See below for descriptions of some of the useful variables.
Defaults for the options are specified in brackets.
Configuration:
-h, --help display this help and exit
--help=short display options specific to this package
--help=recursive display the short help of all the included packages
-V, --version display version information and exit
-q, --quiet, --silent do not print `checking...' messages
--cache-file=FILE cache test results in FILE [disabled]
-C, --config-cache alias for `--cache-file=config.cache'
-n, --no-create do not create output files
--srcdir=DIR find the sources in DIR [configure dir or `..']
Installation directories:
--prefix=PREFIX install architecture-independent files in PREFIX
[/usr/local]
--exec-prefix=EPREFIX install architecture-dependent files in EPREFIX
[PREFIX]
By default, `make install' will install all the files in
`/usr/local/bin', `/usr/local/lib' etc. You can specify
an installation prefix other than `/usr/local' using `--prefix',
for instance `--prefix=$HOME'.
For better control, use the options below.
Fine tuning of the installation directories:
--bindir=DIR user executables [EPREFIX/bin]
--sbindir=DIR system admin executables [EPREFIX/sbin]
--libexecdir=DIR program executables [EPREFIX/libexec]
--sysconfdir=DIR read-only single-machine data [PREFIX/etc]
--sharedstatedir=DIR modifiable architecture-independent data [PREFIX/com]
--localstatedir=DIR modifiable single-machine data [PREFIX/var]
--libdir=DIR object code libraries [EPREFIX/lib]
--includedir=DIR C header files [PREFIX/include]
--oldincludedir=DIR C header files for non-gcc [/usr/include]
--datarootdir=DIR read-only arch.-independent data root [PREFIX/share]
--datadir=DIR read-only architecture-independent data [DATAROOTDIR]
--infodir=DIR info documentation [DATAROOTDIR/info]
--localedir=DIR locale-dependent data [DATAROOTDIR/locale]
--mandir=DIR man documentation [DATAROOTDIR/man]
--docdir=DIR documentation root [DATAROOTDIR/doc/streamripper]
--htmldir=DIR html documentation [DOCDIR]
--dvidir=DIR dvi documentation [DOCDIR]
--pdfdir=DIR pdf documentation [DOCDIR]
--psdir=DIR ps documentation [DOCDIR]
Program names:
--program-prefix=PREFIX prepend PREFIX to installed program names
--program-suffix=SUFFIX append SUFFIX to installed program names
--program-transform-name=PROGRAM run sed PROGRAM on installed program names
System types:
--build=BUILD configure for building on BUILD [guessed]
--host=HOST cross-compile to build programs to run on HOST [BUILD]
Optional Features:
--disable-option-checking ignore unrecognized --enable/--with options
--disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no)
--enable-FEATURE[=ARG] include FEATURE [ARG=yes]
--disable-dependency-tracking speeds up one-time build
--enable-dependency-tracking do not reject slow dependency extractors
--disable-glibtest do not try to compile and run a test GLIB program
--disable-rpath do not hardcode runtime library paths
--disable-oggtest Do not try to compile and run a test Ogg program
--disable-vorbistest Do not try to compile and run a test Vorbis program
Optional Packages:
--with-PACKAGE[=ARG] use PACKAGE [ARG=yes]
--without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no)
--with-included-libmad use the libmad library included with streamripper
--with-included-argv use argv.c included with streamripper
--with-curses(=XXX) compile curses front-end (XXX is curses (default), ncurses, ncursesw, pdcurses or slang)
--with-gnu-ld assume the C compiler uses GNU ld default=no
--with-libiconv-prefix=DIR search for libiconv in DIR/include and DIR/lib
--without-libiconv-prefix don't search for libiconv in includedir and libdir
--with-curses-dir=DIR directory in which (n)curses is installed
--with-ogg=PFX Prefix where libogg is installed (optional)
--with-ogg-libraries=DIR Directory where libogg library is installed (optional)
--with-ogg-includes=DIR Directory where libogg header files are installed (optional)
--with-vorbis=PFX Prefix where libvorbis is installed (optional)
--with-vorbis-libraries=DIR Directory where libvorbis library is installed (optional)
--with-vorbis-includes=DIR Directory where libvorbis header files are installed (optional)
Some influential environment variables:
CC C compiler command
CFLAGS C compiler flags
LDFLAGS linker flags, e.g. -L<lib dir> if you have libraries in a
nonstandard directory <lib dir>
LIBS libraries to pass to the linker, e.g. -l<library>
CPPFLAGS C/C++/Objective C preprocessor flags, e.g. -I<include dir> if
you have headers in a nonstandard directory <include dir>
CPP C preprocessor
PKG_CONFIG path to pkg-config utility
Use these variables to override the choices made by `configure' or to help
it to find libraries and programs with nonstandard names/locations.
[root@ace streamripper-1.64.6]#
./configureのオプションをチェックです。デフォルトで/usr/localにインストールするみたいですね。このままで良いでしょう。「Optional Features」をチェックしても、変更が必要なところはなさそうです。
[root@ace streamripper-1.64.6]# ./configure
checking for a BSD-compatible install... /usr/bin/install -c
checking whether build environment is sane... yes
:
省略
:
checking pkg-config is at least version 0.7... yes
checking for GLIB - version >= 2.16.0... no
*** Could not run GLIB test program, checking why...
*** The test program failed to compile or link. See the file config.log for the
*** exact error that occured. This usually means GLIB is incorrectly installed.
configure: error: Glib 2.16 or greater required
[root@ace streamripper-1.64.6]#
./configureでエラーになってしまいました。「GLIB」がないっ!って言っているようです。
[root@ace streamripper-1.64.6]# rpm -qa| grep ^glib
glibc-gconv-extra-2.34-83.el9_3.7.x86_64
glibc-langpack-ja-2.34-83.el9_3.7.x86_64
glibc-common-2.34-83.el9_3.7.x86_64
glibc-2.34-83.el9_3.7.x86_64
glib2-2.68.4-11.el9.x86_64
glibc-headers-2.34-83.el9_3.7.x86_64
glibc-devel-2.34-83.el9_3.7.x86_64
[root@ace streamripper-1.64.6]#
パッケージをチェックすると、glib2はありますが、開発用(コンパイルするときに必要な)glib2-develがないみたいですね。これを入れてみましょう。
[root@ace streamripper-1.64.6]# dnf install glib2-devel
サブスクリプション管理リポジトリーを更新しています。
メタデータの期限切れの最終確認: 3:41:33 前の 2024年02月07日 12時21分58秒 に実施 しました。
依存関係が解決しました。
================================================================================
パッケージ Arch バージョン リポジトリー サイズ
================================================================================
インストール:
glib2-devel x86_64 2.68.4-11.el9 rhel-9-for-x86_64-appstream-rpms 556 k
依存関係のインストール:
libblkid-devel x86_64 2.37.4-15.el9 rhel-9-for-x86_64-appstream-rpms 19 k
libffi-devel x86_64 3.4.2-8.el9 rhel-9-for-x86_64-appstream-rpms 32 k
libmount-devel x86_64 2.37.4-15.el9 rhel-9-for-x86_64-appstream-rpms 20 k
libselinux-devel x86_64 3.5-1.el9 rhel-9-for-x86_64-appstream-rpms 164 k
libsepol-devel x86_64 3.5-1.el9 rhel-9-for-x86_64-appstream-rpms 52 k
pcre-cpp x86_64 8.44-3.el9.3 rhel-9-for-x86_64-appstream-rpms 28 k
pcre-devel x86_64 8.44-3.el9.3 rhel-9-for-x86_64-appstream-rpms 511 k
pcre-utf16 x86_64 8.44-3.el9.3 rhel-9-for-x86_64-appstream-rpms 188 k
pcre-utf32 x86_64 8.44-3.el9.3 rhel-9-for-x86_64-appstream-rpms 178 k
pcre2-devel x86_64 10.40-2.el9 rhel-9-for-x86_64-appstream-rpms 519 k
pcre2-utf16 x86_64 10.40-2.el9 rhel-9-for-x86_64-appstream-rpms 218 k
pcre2-utf32 x86_64 10.40-2.el9 rhel-9-for-x86_64-appstream-rpms 207 k
sysprof-capture-devel
x86_64 3.40.1-3.el9 rhel-9-for-x86_64-appstream-rpms 64 k
zlib-devel x86_64 1.2.11-40.el9 rhel-9-for-x86_64-appstream-rpms 47 k
トランザクションの概要
================================================================================
インストール 15 パッケージ
ダウンロードサイズの合計: 2.7 M
インストール後のサイズ: 9.3 M
これでよろしいですか? [y/N]: y
:
省略
:
インストール済み:
glib2-devel-2.68.4-11.el9.x86_64 libblkid-devel-2.37.4-15.el9.x86_64
libffi-devel-3.4.2-8.el9.x86_64 libmount-devel-2.37.4-15.el9.x86_64
libselinux-devel-3.5-1.el9.x86_64 libsepol-devel-3.5-1.el9.x86_64
pcre-cpp-8.44-3.el9.3.x86_64 pcre-devel-8.44-3.el9.3.x86_64
pcre-utf16-8.44-3.el9.3.x86_64 pcre-utf32-8.44-3.el9.3.x86_64
pcre2-devel-10.40-2.el9.x86_64 pcre2-utf16-10.40-2.el9.x86_64
pcre2-utf32-10.40-2.el9.x86_64 sysprof-capture-devel-3.40.1-3.el9.x86_64
zlib-devel-1.2.11-40.el9.x86_64
完了しました!
[root@ace streamripper-1.64.6]#
もう一度./configureです。
[root@ace streamripper-1.64.6]# ./configure
checking for a BSD-compatible install... /usr/bin/install -c
checking whether build environment is sane... yes
checking for a thread-safe mkdir -p... /usr/bin/mkdir -p
:
省略
:
configure: creating ./config.status
config.status: creating Makefile
config.status: creating libmad.list
config.status: creating config.h
config.status: executing depfiles commands
* Streamripper configuration
Using included MAD library? yes
Ogg/vorbis support? no
[root@ace streamripper-1.64.6]#
今度はエラーなく終了しました。バッチリです。
[root@ace streamripper-1.64.6]# make
Making all in libmad-0.15.1b
make[1]: ディレクトリ '/usr/local/src/streamripper-1.64.6/libmad-0.15.1b' に入ります
(sed -e '1s|.*|/*|' -e '1b' -e '$s|.*| */|' -e '$b' \
-e 's/^.*/ *&/' ./COPYRIGHT; echo; \
echo "# ifdef __cplusplus"; \
:
省略
:
mv -f .deps/argv.Tpo .deps/argv.Po
gcc -g -O2 -Wall -o streamripper streamripper.o argv.o lib/libstreamripper.a libmad-0.15.1b/.libs/libmad.a -lpthread -lglib-2.0 -lm
make[1]: ディレクトリ '/usr/local/src/streamripper-1.64.6' から出ます
[root@ace streamripper-1.64.6]#
問題なくコンパイル完了です。
[root@ace streamripper-1.64.6]# make install
Making install in libmad-0.15.1b
make[1]: ディレクトリ '/usr/local/src/streamripper-1.64.6/libmad-0.15.1b' に入ります
:
省略
:
make[2]: ディレクトリ '/usr/local/src/streamripper-1.64.6' から出ます
make[1]: ディレクトリ '/usr/local/src/streamripper-1.64.6' から出ます
[root@ace streamripper-1.64.6]#
[root@ace streamripper-1.64.6]# ls -l /usr/local/bin/
合計 736
-rwxr-xr-x 1 root root 753576 2月 7 16:07 streamripper
[root@ace streamripper-1.64.6]# ls -l /usr/local/share/man/man1
合計 24
-rw-r--r-- 1 root root 20582 2月 7 16:07 streamripper.1
[root@ace streamripper-1.64.6]
インストールも完了。/usr/local/binにコマンドが、/usr/local/share/man/man1にマニュアルがインストールされました。
動作確認!
[root@ace streamripper-1.64.6]# streamripper -h
Usage: streamripper URL [OPTIONS]
Opts: -h - Print this listing
-v - Print version info and quit
-a [file] - Rip to single file, default name is timestamped
-A - Don't write individual tracks
-d dir - The destination directory
-D pattern - Write files using specified pattern
-s - Don't create a directory for each stream
-r [[ip:]port] - Create relay server on base ip:port, default port 8000
-R #connect - Max connections to relay, default 1, -R 0 is no limit
-L file - Create a relay playlist file
-z - Don't scan for free ports if base port is not avail
-p url - Use HTTP proxy server at <url>
-o (always|never|larger|version) - When to write tracks in complete
-t - Don't overwrite tracks in incomplete
-c - Don't auto-reconnect
-l seconds - Number of seconds to run, otherwise runs forever
-M megabytes - Stop ripping after this many megabytes
-q [start] - Add sequence number to output file
-u useragent - Use a different UserAgent than "Streamripper"
-w rulefile - Parse metadata using rules in file.
-m timeout - Number of seconds before force-closing stalled conn
-k count - Leave <count> tracks in incomplete
-I interface - Rip from specified interface (e.g. eth0)
-T - Truncate duplicated tracks in incomplete
-E command - Run external command to fetch metadata
--quiet - Don't print ripping status to console
--stderr - Print ripping status to stderr (old behavior)
--debug - Save debugging trace
ID3 opts (mp3/aac/nsv): [The default behavior is adding ID3V2.3 only]
-i - Don't add any ID3 tags to output file
--with-id3v1 - Add ID3V1 tags to output file
--without-id3v2 - Don't add ID3V2 tags to output file
Splitpoint opts (mp3 only):
--xs-none - Don't search for silence
--xs-offset=num - Shift relative to metadata (msec)
--xs-padding=num:num - Add extra to prev:next track (msec)
--xs-search-window=num:num - Search window relative to metadata (msec)
--xs-silence-length=num - Expected length of silence (msec)
--xs2 - Use new algorithm for silence detection
Codeset opts:
--codeset-filesys=codeset - Specify codeset for the file system
--codeset-id3=codeset - Specify codeset for id3 tags
--codeset-metadata=codeset - Specify codeset for metadata
--codeset-relay=codeset - Specify codeset for the relay stream
[root@ace streamripper-1.64.6]#
ヘルプをチェックして、どんなオプションがあるのかを確認します。
[root@ace streamripper-1.64.6]# exit
exit
[zeke@ace ~]$ cd
[zeke@ace ~]$ mkdir StreamRipper
[zeke@ace ~]$ cd StreamRipper
[zeke@ace StreamRipper]$ /usr/local/bin/streamripper http://shirayuki.org:9200/ -d /home/zeke/StreamRipper/ -l 9000 -c -q -u "VLC/2.2.6 LibVLC/2.2.6"
Connecting...
stream: Yggdrasil Radio
server name: SHOUTcast/posix(linux x64) v2.0.0.29
declared bitrate: 96
meta interval: 8192
[skipping... ] Tommy heavenly6 - Flower Crown [ 505kb]
[ripping... ] BABYMETAL - Doki Doki Morning [ 2.54M]
[ripping... ] ONE OK ROCK - Paper Planes [ 2.31M]
[ripping... ] Yuuki Aoi - Incertitude [ 3.26M]
[ripping... ] Yun*chi - Wonderful Wonder World [ 3.38M]
[ripping... ] Tanizawa Tomofumi - Sawakaze [ 2.56M]
[ripping... ] Yamamoto Mineko - Madoromi Dreaming [ 2.75M]
[ripping... ] LiSA - Koko ni Iru yo [ 1.84M]
[ripping... ] Ishida Yoko - soar [ 2.69M]
なんとなく、ちゃんと動きました!mp3ファイルをパソコンに転送して再生もできます!
StreamRipperの良いところは、1曲づつ1ファイルに分けてくれるところです。タイトルとアーティスト名をID3タグに入れてくれるので、どの曲かもわかりやすいです。
eyed3ツールを追加
ついでに、ID3タグを編集するツールを追加です。
まずはパッケージ管理システムのpipをインストールします。
[root@ace ~]# dnf install python3-pip
サブスクリプション管理リポジトリーを更新しています。
メタデータの期限切れの最終確認: 0:11:19 前の 2024年02月07日 16時53分26秒 に実施 しました。
依存関係が解決しました。
================================================================================
パッケージ Arch バージョン リポジトリー サイズ
================================================================================
インストール:
python3-pip noarch 21.2.3-7.el9 rhel-9-for-x86_64-appstream-rpms 2.0 M
トランザクションの概要
================================================================================
インストール 1 パッケージ
ダウンロードサイズの合計: 2.0 M
インストール後のサイズ: 8.7 M
これでよろしいですか? [y/N]: y
:
省略
:
インストール済み:
python3-pip-21.2.3-7.el9.noarch
完了しました!
[root@ace ~]#
次に公式サイトを参考にeyed3をインストールします。
[root@ace ~]# pip3 install eyed3
Collecting eyed3
Downloading eyed3-0.9.7-py3-none-any.whl (246 kB)
|????????????????????????????????| 246 kB 5.1 MB/s
Collecting deprecation<3.0.0,>=2.1.0
Downloading deprecation-2.1.0-py2.py3-none-any.whl (11 kB)
Collecting coverage[toml]<6.0.0,>=5.3.1
Downloading coverage-5.5-cp39-cp39-manylinux2010_x86_64.whl (243 kB)
|????????????????????????????????| 243 kB 20.1 MB/s
Collecting filetype<2.0.0,>=1.0.7
Downloading filetype-1.2.0-py2.py3-none-any.whl (19 kB)
Collecting toml
Downloading toml-0.10.2-py2.py3-none-any.whl (16 kB)
Collecting packaging
Downloading packaging-23.2-py3-none-any.whl (53 kB)
|????????????????????????????????| 53 kB 3.0 MB/s
Installing collected packages: toml, packaging, coverage, filetype, deprecation, eyed3
Successfully installed coverage-5.5 deprecation-2.1.0 eyed3-0.9.7 filetype-1.2.0 packaging-23.2 toml-0.10.2
WARNING: Running pip as the 'root' user can result in broken permissions and conflicting behaviour with the system package manager. It is recommended to use a virtual environment instead: https://pip.pypa.io/warnings/venv
[root@ace ~]#
警告が出てるけど以下のようにインストールはできているようです。
[root@ace ~]# python -m pip show eyed3
Name: eyed3
Version: 0.9.7
Summary: Python audio data toolkit (ID3 and MP3)
Home-page: https://eyeD3.nicfit.net/
Author: Travis Shirk
Author-email: travis@pobox.com
License: GPL-3.0-or-later
Location: /usr/local/lib/python3.9/site-packages
Requires: filetype, deprecation, coverage
Required-by:
[root@ace ~]#
こんな風にmp3ファイルのID3タグを編集します。
[zeke@ace StreamRipper]$ eyeD3 -A "Yggdrasil" -G 145 --add-image default-album-art.jpg:OTHER --preserve-file-times Yggdrasil\ Radio/0001_ONE\ OK\ ROCK\ -\ Paper\ Planes.mp3
...treamRipper/Yggdrasil Radio/0001_ONE OK ROCK - Paper Planes.mp3 [ 2.31 MB ]
--------------------------------------------------------------------------------
Setting album: Yggdrasil
Setting genre: 145
Adding image default-album-art.jpg
Time: 03:21 MPEG1, Layer III [ 96 kb/s @ 32000 Hz - Stereo ]
--------------------------------------------------------------------------------
ID3 v2.3:
title: Paper Planes
artist: ONE OK ROCK
album: Yggdrasil
track: 2 genre: Anime (id 145)
OTHER Image: [Size: 109424 bytes] [Type: image/jpeg]
Description:
Writing ID3 version v2.3
--------------------------------------------------------------------------------
[zeke@ace StreamRipper]$
アルバムとジャンル、イメージを追加しました。こちらもパソコン上で確認してOKです!
お勧めのKindle本です!
コメント