Ustreamのアーカイブ保存祭り(後日変更します) | サロンのホームページ制作 Healing Solutions

Ustreamのアーカイブ保存祭り(後日変更します)

 

Ustreamが、アーカイブ保存期間を30日に設定することになり、

急遽、Ustreamのアーカイブ保存について、殴り書きします。

Ustreamアーカイブ保存のステップ

  1. 動画を一括ダウンロードする
  2. サムネイルをダウンロードする(必要な方は)
  3. 動画の内容を取得する

という流れになるかと思います。

 

動画を一括ダウンロードする

これは、本家が言う通り、

http://blog.ustream-asia.jp/2014/09/blog-post_68.html

こちらのソフトを使ってダウンロードするのがいいと思います。

ただ、サーバーがパンクしてるのか、ダウンロードできない場合があるので、
その場合は、こちらからダウンロードできるかもしれません。

http://en.softonic.com/s/miro-4

 

Ustream側が解説してくれている方法で、一括ダウンロードは可能です。
まずは、大本の映像をすべてダウンロードしましょう。

映像の本数が多い場合は、かなり時間がかかりますが・・・。

 

動画のサムネイルをダウンロードする

これも、困っている方がいるみたいです。

せっかく、動画1つ1つにカスタムサムネイルをつけたのに、

YouTubeにアップロードしたら、全部無くなってしまう・・・。

せめて、サムネイル画像のリストだけでも欲しい・・という方は、以下の手順でダウンロードしましょう。

 

Ustreamには、「Ustreamの情報を、外部でも使っていいよ」というAPIがあります。

これを使うことで、自分の動画リストの情報を取得できます。

 

デベロッパーkeyを取得

UstreamのAPIを使うための鍵となるキーを取得します。

こちらで、IDとパスワードを入力すれば、自分だけの鍵が取得できます。

http://developer.ustream.tv/user/register

こちらのブログ記事も参考に・・・

『UstreamのAPIをPHPで使う』
https://www.healing-solutions.jp/blog/archives/1144

 

自分のチャンネルIDを取得する

今度は、自分のユーザーIDを取得します。
今回の方法でAPIを取得する時は、チャンネル名とかユーザー名ではなく、ユーザーIDを使います。

http://api.ustream.tv/html/user/ユーザー名/getInfo/

で、こんな情報を取得できます。

例えば、ustream というユーザー名で検索した場合はこうなります。

id → 113722 となっている部分。これがユーザーIDです。

スクリーンショット 2014-10-02 18.17.01

 

ユーザーIDがわからない場合

ユーザーIDがわからない場合は、チャンネルから検索します。

例えば、いま時計で話題の某電話会社様。

http://www.ustream.tv/channel/docomoofficial

こちらで、チャンネルを見ることができます。(リンクは貼ってません)

そうすると、チャンネル名が「docomoofficial」ということがわかります。

チャンネル名を使って、番組情報を取得すると、

http://api.ustream.tv/xml/channel/docomoofficial/getInfo?key=デベロッパーkey

こうすると、動画の情報とともに、ユーザーIDが表示されます。

この場合、 10954894 がユーザーIDですね。

スクリーンショット 2014-10-02 18.29.03

 

 

これで、ユーザーIDとデベロッパーkeyを取得しました。

自分の全動画の情報を見るには、

http://api.ustream.tv/xml/user/ユーザーID/listAllVideos?page=1&limit=100?key=デベロッパーkey

と、入力します。

例えば、docomoofficial の全動画を表示するには、こう入力します。

http://api.ustream.tv/xml/user/10954894/listAllVideos?page=1&limit=100?key=デベロッパーkey

 

100件ずつしか表示されない

listAllVideos?page=1 となっているんですが、これは全体の1ページ目の100件ということです。

アーカイブが100件以上ある場合は、

listAllVideos?page=2

listAllVideos?page=3

と、複数検索してみないと表示されません。

 

ここには、動画の配信日や、総視聴者数や、動画の長さなどの貴重な情報が入っています。

このデータを、ブラウザの左上あたりから「別名で保存」するだけでも、あとあと便利かと思います。

ちなみに、xml形式だとよくわからない人は、

http://api.ustream.tv/html/user/10954894/listAllVideos?page=1&limit=100?key=デベロッパーkey

と、html形式で表示することも可能です。

多少は見やすくなるかも・・。データとしては使いづらいけれど。

スクリーンショット 2014-10-02 18.33.22

 

肝心の、動画のサムネイルを一覧表示してダウンロードする

ここからは、多少のPHPの知識が必要となります。

先ほどのデベロッパーkeyと、ユーザーIDを使って、自分のアーカイブ情報を全て表示させます。

サーバーを借りている方は、自分のサーバーにこんな内容のPHPファイルをアップロードしてみましょう。

サーバーを借りてない方は、ロリポップなどの無料期間を使ってもいいかもしれません。
PHPが動くサーバーを準備しましょう。月々100円くらいからあります。

 

そこに、以下のファイルをコピペしてアップロードします。

ファイル名は何でもいいですが、 ustapi.php とか、拡張子をphpにしてください。


<!DOCTYPE html>
<html lang="ja">

<head>
    <meta charset="UTF-8">
    <meta name=”robots” content=”noindex,nofollow” />
    <title>Ustream サムネイルダウンロード用</title>
    <style>
    .ust_wrap{
        width: 17%;
        float: left;
        margin: 10px 1% 10px 1%;
        border: 1px solid #666;
        height: 500px;
        }

    .ust_wrap img{
        width: 100%;
        height: auto;}

    </style>
</head>
<body>

<?php

$url = array(
// ここには、チャンネルIDと、デベロッパーキーを入れます
//例: http://api.ustream.tv/xml/user/チャンネルID/listAllVideos?page=1&limit=100?key=デベロッパーkey
//複数ページに渡る場合は、カンマで区切る。最後の1行はカンマなし。

    'http://api.ustream.tv/xml/user/チャンネルID/listAllVideos?page=1&limit=100?key=デベロッパーkey',
    'http://api.ustream.tv/xml/user/チャンネルID/listAllVideos?page=2&limit=100?key=デベロッパーkey',
    'http://api.ustream.tv/xml/user/チャンネルID/listAllVideos?page=3&limit=100?key=デベロッパーkey'
    );

$i = 0;
$max = 300; //最大取得件数 → 3ページ以上の方は此の数字を変える
foreach ($url as $urls) {
$ustXML = simplexml_load_file("$urls");
foreach($ustXML->results->array as $item){
if($i++ === $max) { break; }  //表示する件数
$_url = $item->url;  //リンク先
$_title = $item->title;  //タイトル
$_asset = $item->imageUrl->medium;  //画像
$_date = date('Y年m月d日', strtotime($item->createdAt));  //日付
$_description =$item->description;  //本文
$key = date('Ymd-GHis', strtotime($item->createdAt));   //配列のキー
//配列に値を入れる
    $entryArr[$key] = '<div class="ust_wrap"><span class="counter">'.$i.'</span><a href="'.$_url.'" target="_blank"><img alt="'.$_description.'" src="'.$_asset.'" /><time>'.$_date.'</time><span class="totalViews">'.$_totalViews.'View</span><span class="lengthInmin">'.$_lengthInMin.'分</span><h3>'.$_title.'</h3><div class="ust_descri">'.$_description.'</div></a></div>';
  }
}

//キーで降順にソート
krsort($entryArr);

//出力
foreach ($entryArr as $key => $val) {
  echo $val;
}
?>

</body>
</html>

※シンタックスハイライターを導入したい・・・

コードが折り返されるので、ここにファイルをアップしました。
セキュリティ的に、すぐ消すかもですが・・・。

 

デベロッパーkeyや、ユーザーIDを自分のものにして、ファイルをアップロードし、

ブラウザで見てみると、動画一覧が表示されます。

docomoofficialを表示すると、こうなります。

スクリーンショット 2014-10-02 18.40.40
参照:docomoofficial ustreamAPI

 

ブラウザで画像を表示できるということは、一括ダウンロードが可能です。

Windowsは未検証ですみませんが、こんなソフトで行ける気がします。

http://www.gigafree.net/internet/imgdownload/imagedown.html

 

Macは、おなじみのSiteSuckerが便利です。

http://www.sitesucker.us/home.html

 

SiteSucker で、一括ダウンロードする場合は、

Host以外のファイルをダウンロードできるように、「Path Constraint」をNoneにしておきます

スクリーンショット 2014-10-02 18.44.20

 

ただ、これだと無制限にダウンロードをしてしまうので、ダウンロードする階層を浅くします。

2にしておくと、ちょうどサムネイル画像をすべてダウンロードできます。

 スクリーンショット 2014-10-02 18.46.56

 

そうすると、無事にこんなにもフォルダにわかれてダウンロードされます。

スクリーンショット 2014-10-02 18.45.56
※画像 docomo様 http://www.ustream.tv/channel/docomoofficial

 

これだと使いづらいので、画像を一括変換するソフトを使って、1つのフォルダにまとめます。

Macだと、こんなツール。

フォルダごと選択すれば、中に入っているファイルを全て表示してくれて、

ファイル名を変換してくれるとともに、1つのフォルダに書き出してくれます。

https://itunes.apple.com/jp/app/image-tools/id493949693?mt=12

スクリーンショット 2014-10-02 18.51.58

 

これで、

  1. 動画を一括ダウンロードする
  2. サムネイルをダウンロードする(必要な方は)
  3. 動画の内容を取得する

 

の、3つが可能です。

あとは、ゆっくりとYouTubeなどにアップロードすればいいかと思います。

 

一括ダウンロードした映像ファイルが、ファイル名がごっちゃごちゃで、わかりづらいのが困りますが・・・(汗

 

いつか時間があれば、YouTubeにアップロードした動画を、「再生リスト」に入れて、

順番を整えた後、それをホームページ上で一覧表示する方法にも触れたいなと思います。

 

すみません、かなり急なものだったので、殴り書きになっちゃいました。

時間があったら、加筆修正します。

 

メモ

正規表現の置き換え。



(d*)_(d*)_(d*)-(.*)



これで、検索をして、その3番目の値を



$3で取得して、拡張子 .flv



をつければ、一括で動画IDに置き換えられます。

  • このエントリーをはてなブックマークに追加
  • LINEで送る
こんな記事も読まれています
mautic is open source marketing automation