[メモ] mp3ファイルをホームページからストリーミングさせずにダウンロードしてもらう方法

mp3ファイルを自分のサイトからダウンロード配信したい場合。

サーバにmp3ファイルを置いて、HTMLから直リンクすると、クリック(windowsでは左クリック)したときの挙動は概ね、

  • ストリーミング再生が始まる
  • 関連付けられたプログラムでファイルが開かれる
  • ダウンロードダイアログが開く

のいずれかになり、ユーザーの環境によって動作が違ってきてしまいます。

それでもwindowsでは右クリックのメニューからダウンロードしたり、macでもドラッグ&ドロップなんかでダウンロードできるようなので、これだけでもmp3配布サイトは成立するわけですが、ユーザーにとっては何かと不便だと思います。

flashかHTML5のAUDIOタグでストリーミング再生ボタンを設置しつつ、別ボタンでダウンロードとするのが理想です。

そして、そのダウンロードボタンは上記のように動作が安定しないものではなく、「必ずダウンロードする」動作でないといけません。
つまり、mp3直リンクで必ずダウンロードしてもらう必要があるわけです。
(mp3ファイルをzipにしておけばいいのですが、サイト管理者としてはストリーミング用のmp3とzipの両方を用意するのは面倒ですし、サーバの負担も心配です)

調べてみるとmp3に直リンクする形でHTMLを書いても強制的にダウンロードにする方法はいくつかありそうですが、最も手頃だと思うのは.htaccessでMIMEタイプを変更しちゃうというもの。

.htaccessの記述

参考:http://blog.livedoor.jp/kumagai_nori/archives/52221265.html

apatchではmp3のMIMEタイプは
「audio/x-mp3 .mp3」
が通常のようですが、これを

「application/octet-stream」
としています。

この「application/octet-stream」というのは、「どのソフトで開けば良いかわからない謎のバイナリファイル」という意味。

mp3ファイルに対してこんな指定をして副作用がないのか心配ですが、実際にやってみるとばっちりストリーミング回避&ダウンロードできるようになります。

サイトのルートに設定したところ、mp3ファイルをサブフォルダに置いておいてもきちんと動作しました。

スマートフォン

フルブラウザが当たり前なスマホでも原則動作します。
が、iPhoneやappleのタブレットなど、ファイルのダウンロードに強い制限のあるデバイスでは動作しないようです。
apple製品は、ファイルのダウンロードはアプリ経由で、アプリのダウンロードはストアで、というのが原則なんでしょうか。

弱点

弱点はあくまでMIMEタイプの設定なので、ブラウザがちゃんと判断してくれるのか、というところ。
ブラウザの中にはMIMEタイプと実際のファイルに齟齬がある場合、ヘッダなんかから勝手にファイル形式を判断して訂正してくれるといういらぬお節介親切なものもあるようで、こういった場合はダウンロードダイアログが開くとは限らないと思われます。

| カテゴリ:ウェブサイト作成 | 4 コメント

“[メモ] mp3ファイルをホームページからストリーミングさせずにダウンロードしてもらう方法” への4件のフィードバック

  1. 河野 より:

    スマートフォンで、ダウンロードのときに動作しない場合は、どうすればダウンロードできますか?

    • watson より:

      スマホ、というよりはブラウザによるように思います。
      例えばAndroid端末でモバイル版Chromeをお使いであればリンクを長押しでできそうです。
      参考)https://support.google.com/chrome/answer/2534515?hl=ja
      iPhoneに関してはサイトがスマホに対応しているという話以前の問題で、そもそも音楽ファイルのダウンロードは出来ないと思います。

  2. 河野 より:

    ストアってどこですか?
    Googleプレイストアですか?

    • watson より:

      そのくだりはApple製品についてのお話しですので、GoogleプレイストアではなくAppleストアですね。

コメントを残す