2017年12月19日
Home > テクノロジー > Streeme で構築するブラウザベースの音楽共有サーバ
Streeme で構築するブラウザベースの音楽共有サーバ
By: Megan Westerby

Streeme で構築するブラウザベースの音楽共有サーバ


ここでは Streeme を使って MP3 形式の音楽ファイルを簡単に共有できるストリーミングサーバの構築について説明します。

Streeme とは

Streeme は MP3 形式の音楽ファイルを HTML5 に対応したPC・スマートフォンのブラウザから共有することができる、オープンソースのストリーミングサーバです。 Linux をはじめ、 Mac OS や Windows など、クロスプラットフォームで動作します。

詳しくは以下の Web サイトを参照してください。

streeme – Listen to music on the go! Streeme is an open source, html5 based personal music server – Google Project Hosting

必要なパッケージのインストール

Apache, PHP, MySQL 以外に必要になるパッケージとして、 php-gd, php-xml, php-pecl-apc, ffmpeg があります。 CentOS では次のようにしてインストールします。 ffmpeg をインストールするには RPMForge リポジトリを追加しておく必要があります。

[user@localhost ~]$ sudo yum --enablerepo=rpmforge install php-gd php-xml php-pecl-apc ffmpeg

また、 PEAR HTTP_Download も必要になります。次のようにしてインストールします。

[user@localhost ~]$ sudo pear install HTTP_Download

データベースユーザの作成

データベースへ接続するためのユーザを作成します。ここではユーザ名を streeme パスワードを password としています。また、 Streeme が利用する streeme, streemetest という 2 つのデータベースへのアクセス権を付与します。具体的には次の SQL を発行します。

mysql> GRANT ALL PRIVILEGES ON streeme.* TO 'streeme'@'localhost' IDENTIFIED BY 'password';
mysql> GRANT ALL PRIVILEGES ON streemetest.* TO 'streeme'@'localhost';

Streeme のインストール

Streeme の本体は /usr/local/streeme へインストールすることにします。インストール先は /var/www/html のように外部に直接公開されないディレクトリを選びましょう。

[user@localhost ~]$ sudo mkdir /usr/local/streeme
[user@localhost ~]$ cd /usr/local/streeme
[user@localhost streeme]$ sudo svn checkout http://streeme.googlecode.com/svn/trunk/ .

チェックアウトが完了したら、データベース用の設定ファイルを変更します。 /usr/local/streeme/config/databases.template.yml を databases.yml としてリネームし、データベースへの接続ユーザとパスワードを前項で設定したものに書き換えます。

[user@localhost ~]$ cd /usr/local/streeme/config
[user@localhost config]$ sudo mv databases.template.yml databases.yml
test:
  doctrine:
    class: sfDoctrineDatabase
    param:
      dsn: 'mysql:host=localhost;dbname=streemetest'
      username: streeme
      password: password
      encoding: utf8
      attributes:
        default_table_collate: utf8_general_ci
        default_table_charset: utf8

all:
  doctrine:
    class: sfDoctrineDatabase
    param:
      dsn: 'mysql:host=localhost;dbname=streeme'
      username: streeme
      password: password
      encoding: utf8
      attributes:
        default_table_collate: utf8_general_ci
        default_table_charset: utf8
      profiler: false

次に、 /usr/local/streeme/.htaccess.template を .htaccess にリネームします。

[user@localhost ~]$ cd /usr/local/streeme
[user@localhost streeme]$ sudo mv .htaccess.template .htaccess

また、 log, cache のディレクトリは、アクセス権を 777 に変更します。

[user@localhost streeme]$ sudo chmod 777 log cache

さらに /usr/local/streeme/apps/client/config/app.template.yml を app.yml にリネームし、動作に必要な設定を変更します。

[user@localhost ~]$ cd /usr/local/streeme/apps/client/config
[user@localhost config]$ sudo mv app.template.yml app.yml
# You can find more information about this file on the symfony website:
# http://www.symfony-project.org/reference/1_4/en/11-App

all:
  # the location of your itunes XML file
  # eg. Win: C:\Users\username\Music\iTunes\iTunes Music Library.xml
  #     Mac: /Users/username/Music/iTunes/iTunes Music Library.xml
  itunes_xml_location: "/home/user/music/iTunes Music Library.xml"

  # Watched folders for loading media from the filesystem - no trailing slash
  # eg. Win: C:\Users\username\Music
  #     Mac: /Users/username/Music
  #    *nix: /home/user/music
  wf:
    watched_folders:
      - "/usr/local/streeme/music"
      - "/usr/local/streeme/music2"
[snip]

iTunes から音楽ファイルをインポートする場合は itunes_xml_location: を、ディレクトリからインポートする場合は watched_folders: をそれぞれ適切なパスへ変更します。 watched_folders: は行頭に – を追加して複数行で記述することができます。

これで基本的な設定は完了です。同梱されている check_configuration.php を使って確認してみましょう。

[user@localhost ~]$ cd /usr/local/streeme
[user@localhost streeme]$ php check_configuration.php

すべての項目の左側に OK が表示されていることを確認して、音楽ライブラリの初期化を行います。

[user@localhost streeme]$ ./symfony guard:create-user user password

音楽ファイルのインポート

音楽ファイルは /usr/local/streeme/music の中にコピーしてインポートすることにします。ディレクトリと音楽ファイルの所有者とパーミッションは次のように変更しておきます。

[user@localhost streeme]$ chown -R apache.apache music
[user@localhost streeme]$ chmod -R 777 music

音楽ファイルをコピーしたら、 Streeme へ取り込みます。

[user@localhost streeme]$ ./symfony scan-media --type=filesystem
Scanning 2-05 Believe [混三].mp3
 
Total Songs Scanned: 1
Songs Skipped: 0
Songs Added: 1
Albums Added: 1
Artists Added: 1
Songs Removed: 1
Albums Removed: 0
Artists Removed: 0

ユーザの作成

Streeme へログインするためのユーザを作成します。ここでは、ユーザ名を user パスワードを password としています。

[user@localhost ~]$ cd /usr/local/streeme
[user@localhost streeme]$ ./symfony guard:create-user user password

Apache の設定

/etc/httpd/conf.d/streeme.conf を次の内容で作成し、 Apache を再起動します。

# This is the configuration for the streeme app communication path
Listen *:8095

NameVirtualHost *:8095

<VirtualHost *:8095>
  DocumentRoot "/usr/local/streeme/web"
  DirectoryIndex index.php
  <Directory "/usr/local/streeme/web">
    AllowOverride All
    Allow from All
  </Directory>

  Alias /sf "/usr/local/streeme/lib/vendor/symfony/data/web/sf"
  <Directory "/usr/local/streeme/lib/vendor/symfony/data/web/sf">
    AllowOverride All
    Allow from All
  </Directory>
</VirtualHost>

# This is the configuration for the music streamer
Listen *:8096

NameVirtualHost *:8096

<VirtualHost *:8096>
  DocumentRoot "/usr/local/streeme/web"
  DirectoryIndex index.php
  <Directory "/usr/local/streeme/web">
    AllowOverride All
    Allow from All
  </Directory>
</VirtualHost>

#Disable SVN directory sniffing through apache
<Directory ~ ".*\.svn"> 
Order allow,deny 
Deny from all 
Satisfy All 
</Directory>
[user@localhost ~]$ sudo /sbin/service httpd configtest
Syntax OK
[user@localhost ~]$ sudo /sbin/service httpd graceful

ブラウザから http://localhost:8095/ へアクセスすると、ログイン画面が表示されます。前項で作成したユーザでログインできることを確認しましょう。

Streeme のログイン画面

Streeme のログイン画面

音楽ファイルの再生

ログインするとプレーヤを選択する画面になるので、ここでは Desktop を選択します。次のような画面が表示され、音楽ファイルをダブルクリックすると再生が開始します。

Streeme のプレーヤ画面

Streeme のプレーヤ画面

UI の日本語化

Streeme の UI はデフォルトで英語となっており、その他にデンマーク語・ドイツ語・スペイン語・フランス語・イタリア語・カンボジア語・ラトビア語・トルコ語の翻訳が提供されていますが、日本語はありません。筆者が簡単に翻訳した言語ファイルを用意したので、これを適用してみましょう。

ダウンロードした ja.zip を /usr/local/streeme/apps/client/i18n へ展開します。

[user@localhost ~]$ cd /usr/local/streeme/apps/client/i18n
[user@localhost i18n]$ sudo unzip /home/user/ja.zip

/usr/local/streeme/apps/client/config/settings.yml を次のように変更します。

[snip]
    # Add Internationalization Layer
    i18n: true
    charset: utf-8
    default_culture: ja
    translations_available: [ ja, en,tr,it,es,de,fr,da,km,lv ]
    translation_labels:
      ja: 日本語
      en: English
      tr: Türkçe
      it: Italiano
[snip]

変更を反映させるため、キャッシュをクリアします。

[user@localhost ~]$ cd /usr/local/streeme
[user@localhost streeme]$ sudo ./symfony cc

これで UI が日本語になりました。

日本語化された UI

日本語化された UI

-(-)
-
-(-)
-

2 コメント

コメントをどうぞ

メールアドレスが公開されることはありません。* が付いている欄は必須項目です。 *

*