RHEL9で作る自宅サーバ:StreamRipperコマンド追加

RHEL9パソコン自宅サーバ

今回は、趣向を変えて、コマンドのインストールです。

昔から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本です!

コメント