以下、各図面に示される同一または同等の構成要素、部材、処理、信号には、同一の符号を付するものとし、適宜重複した説明は省略する。また、各図面において説明上重要ではない部材の一部は省略して表示する。
実施の形態に係るライブ配信システムでは、ユーザがユーザ検索や配信検索をする際、検索結果に、当該ユーザが過去に視聴したライブ配信を視聴した別のユーザ(以下、当該ユーザの「共通視聴ユーザ(co-viewer)」という)が含まれていれば、その共通視聴ユーザまたはその共通視聴ユーザのライブ配信を検索結果のより上位に移動させる。これにより、ユーザに提示される検索結果において当該ユーザの共通視聴ユーザまたはそのライブ配信をより目立つ位置に配置することができるので、当該ユーザが共通視聴ユーザやそのライブ配信を見つけやすくなる。その結果、検索結果に表示される配信者やライブ配信がクリックまたはタップされる割合であるクリック率が向上し、配信者はより多くの視聴者を集めることができるようになる。
図7は、実施の形態に係るユーザ検索の仕組みの概要を示す模式図である。ユーザ50がキーワード「猫」を入力してユーザ検索・配信検索を実行する。サーバは、マッチングスコアによる検索結果であるマッチングスコアリスト52を生成する。マッチングスコアリスト52では、ユーザ検索でヒットしたユーザIDがスコア順に並んでいる。サーバは、マッチングスコアリスト52に含まれるユーザIDのなかから、検索要求元のユーザ50の共通視聴ユーザ(図7の場合、「ユーザ37」)を特定する。サーバは、特定された共通視聴ユーザをリストのなかの所定の順位に移動させる。図7の例では、サーバはマッチングスコアリスト52の第37番目に登録されているユーザ37を、リストの第3番目に移動させ、それ以降のユーザIDの順位を+1する。その結果、サーバは検索要求元に提供すべき検索結果である最終リスト54を生成する。最終リスト54は検索要求元のユーザ50のユーザ端末に送信される。当該ユーザ端末は、受信した最終リスト54に基づき検索結果表示画面610を生成し、ディスプレイに表示させる。検索結果表示画面610では共通視聴ユーザ(ユーザ37)が上位に表示されているので、検索要求元のユーザ50は共通視聴ユーザをより見つけやすい。
最終リスト54および検索結果表示画面610では、共通視聴ユーザがそうでないユーザよりも優先して表示される。例えば、共通視聴ユーザであるユーザ37は、スコアの順番で判断するとユーザ3やユーザ4よりも下位にあるべきであるが、共通視聴ユーザであるからユーザ3やユーザ4よりも上位に配置されている。これは、ユーザ37がユーザ3やユーザ4よりも優先して表示されているといえる。また、最終リスト54や検索結果表示画面610の表示における共通視聴ユーザの表示順が、仮に当該ユーザが共通視聴ユーザでなかった場合の当該ユーザの表示順よりも上位になっている。例えば、共通視聴ユーザであるユーザ37は、スコアの順番で判断すると第37番目に配置されるべきであるが、共通視聴ユーザであることから第3番目に配置されている。これは、ユーザ37の表示順(第3番目)が、仮にユーザ37が共通視聴ユーザでなかった場合のユーザ37の表示順(第37番目)よりも上位になっていると言える。このように、ユーザが他のユーザやライブ配信を探すときに、前に同じライブ配信を一緒に見た仲間やその仲間のライブ配信を見つけやすくなる。その結果、検索結果に対するユーザの満足度が向上する。
図1は、本開示の実施の形態に係るライブ配信システム1の構成を示す模式図である。ライブ配信システム1は、配信者(ライバー、ストリーマ(Streamer)ともいう)LVと視聴者(オーディエンスともいう)AU(AU1、AU2、…)とがリアルタイムでやりとりできる双方向型のライブ配信サービスを提供する。図1に示すように、ライブ配信システム1は、サーバ10と、配信者側のユーザ端末20と、視聴者側のユーザ端末30(30a、30b、…)と、を備える。ライブ配信を配信している配信者、ライブ配信を視聴している視聴者の他に、ライブ配信プラットフォームにログインしたが配信も視聴もしていないユーザもいる。このようなユーザをアクティブユーザという。配信者、視聴者およびアクティブユーザを、ライブ配信プラットフォームを利用する者としてユーザと総称することがある。サーバ10は、ネットワークNWに接続された一または複数の情報処理装置によって構成されてもよい。ユーザ端末20、30は例えばスマートフォンやタブレット型端末やラップトップPCやレコーダや携帯型ゲーム機やウェアラブル装置などの携帯端末であってもよいし、デスクトップPCなどの据え置き型の装置であってもよい。サーバ10、ユーザ端末20およびユーザ端末30は、有線または無線の各種ネットワークNWにより互いに通信可能に接続される。
ライブ配信システム1には、配信者LVと、視聴者AUと、サーバ10を管理する管理者(不図示)と、が関与する。配信者LVは、自分の歌や、トーク、パフォーマンス、占い、ゲーム実況などのコンテンツを自身のユーザ端末20で録音・録画してそのままサーバ10にアップロードすることで、リアルタイムにコンテンツを発信する者である。管理者は、サーバ10においてコンテンツのライブ配信のためのプラットフォームを提供し、また、配信者LVと視聴者AUとのリアルタイムのやりとりを仲介または管理する。視聴者AUは、ユーザ端末30でプラットフォームにアクセスして所望のコンテンツを選択し、視聴する。このコンテンツのライブ配信中に視聴者AUがユーザ端末30を介してコメントをしたり応援したり占いを依頼したりするための操作を行い、当該コンテンツを提供する配信者LVがそのようなコメントや応援や依頼に反応し、当該反応が映像および/または音声で視聴者AUに伝わることで、双方向のコミュニケーションが成立する。
本明細書において「ライブ配信」は、配信者LVのユーザ端末20で録音・録画されたコンテンツが実質的にリアルタイムで視聴者AUのユーザ端末30で再生され視聴可能となる状態を実現するデータの伝送態様を意味するものであってもよく、またはそのような伝送態様により実現される配信そのものを意味してもよい。ライブ配信は、HTTP Live StreamingやCommon Media Application FormatやWeb Real-Time CommunicationsやReal-Time Messaging ProtocolやMPEG DASHなどの既存のライブ配信技術を用いて実現されてもよい。ライブ配信は、配信者LVがコンテンツを録音・録画しているときに、視聴者AUが所定の遅延をもって当該コンテンツを視聴可能な伝送態様を含む。遅延の大きさについて、少なくとも、配信者LVと視聴者AUとのやりとりが成立する程度の大きさの遅延は許される。ただし、ライブ配信は、コンテンツを録音・録画したデータ全体をいったんサーバに保存し、その後の任意のタイミングでユーザからの求めに応じて当該データをサーバからユーザに提供するいわゆるオンデマンド型の配信とは区別される。
本明細書において「動画データ」は、ユーザ端末20、30の撮像機能により生成される画像データ(ビデオデータともいう)と、ユーザ端末20、30の音声入力機能により生成される音声データ(オーディオデータともいう)と、を含むデータである。動画データは、ユーザ端末20、30で再生されることで、ユーザによるコンテンツの視聴を可能とする。本実施の形態では、動画データが配信者のユーザ端末で生成されてから視聴者のユーザ端末で再生されるまでの間に、圧縮や伸張や符号化や復号やトランスコーディングなどの、データの形式やサイズや仕様を変更する処理が行われることが想定されている。このような処理の前後で動画データが表す内容(例えば、動画像や音声)は実質的に変わらないので、本実施の形態ではそのような処理が行われた後の動画データはそのような処理が行われる前の動画データと同じであるとして説明する。すなわち、動画データが配信者のユーザ端末で生成されてからサーバ10を経由して視聴者のユーザ端末で再生される場合、配信者のユーザ端末で生成された動画データと、サーバ10を通過する動画データと、視聴者のユーザ端末で受信されて再生される動画データと、は全て同じ動画データである。
本明細書において「視聴時間」は、視聴者と配信者とのペアに関連付けられたパラメータであって、当該視聴者が当該配信者のライブ配信を視聴した期間の長さ(view duration)を指す。
図1の例では、配信者LVがトークをライブ配信している。配信者LVのユーザ端末20はトークを行っている配信者LVの像および音声を録画・録音することで動画データを生成し、ネットワークNWを介してサーバ10に送信する。併せてユーザ端末20は、録画された配信者LVの動画像VDをユーザ端末20のディスプレイに表示させることで、配信者LVによる配信内容の確認を可能とする。
配信者LVのライブ配信の視聴をプラットフォームに要求した視聴者AU1、AU2のユーザ端末30a、30bはそれぞれ、ネットワークNWを介してライブ配信に係る動画データを受信し、受信した動画データを再生することでディスプレイに動画像VD1、VD2を表示させると共にスピーカーから音声を出力する。各ユーザ端末30a、30bで表示される動画像VD1、VD2は配信者LVのユーザ端末20が撮像した動画像VDと実質的に同一であり、各ユーザ端末30a、30bで出力される音声も配信者LVのユーザ端末20が録音した音声と実質的に同一である。
配信者LVのユーザ端末20における録音・録画と、視聴者AU1、AU2のユーザ端末30a、30bにおける動画データの再生と、は実質的に同時に行われる。配信者LVのトークの内容についてひとりの視聴者AU1がコメントをユーザ端末30aに入力すると、サーバ10は当該コメントをリアルタイムで配信者LVのユーザ端末20に表示させると共に各視聴者AU1、AU2のユーザ端末30a、30bにも表示させる。当該コメントを読んだ配信者LVがその内容に被せたトークを展開すると、そのトークの動画像と音声が各視聴者AU1、AU2のユーザ端末30a、30bで出力され、これにより配信者LVと視聴者AU1との会話が成立したと認識される。このように、ライブ配信システム1では、一方通行でない双方向のコミュニケーションを可能とするライブ配信が実現される。視聴者AU1は、配信者LVのライブ配信を通じて視聴者AU2の共通視聴ユーザとなり、その逆もしかりである。
図2は、図1のユーザ端末20の機能および構成を示すブロック図である。ユーザ端末30はユーザ端末20と同様の機能および構成を有する。図2および以後のブロック図に示す各ブロックは、ハードウェア的には、コンピュータのCPUをはじめとする素子や機械装置で実現でき、ソフトウェア的にはコンピュータプログラム等によって実現されるが、ここでは、それらの連携によって実現される機能ブロックを描いている。したがって、これらの機能ブロックはハードウェア、ソフトウェアの組み合せによっていろいろなかたちで実現できることは、本明細書に触れた当業者には理解されるところである。
配信者LVおよび視聴者AUは、ダウンロードサイトからネットワークNWを介して、本実施の形態に係るライブ配信アプリケーションプログラム(以下、ライブ配信アプリという)をユーザ端末20、30にダウンロードし、インストールする。あるいはまた、ライブ配信アプリはユーザ端末20、30にプリインストールされていてもよい。ライブ配信アプリがユーザ端末20、30により実行されることにより、ユーザ端末20、30はネットワークNWを介してサーバ10と通信し、各種機能を実現する。以下、ユーザ端末20、30(のCPUなどのプロセッサ)がライブ配信アプリを実行することにより実現する機能をユーザ端末20、30の機能として説明する。それらの機能は実際はライブ配信アプリがユーザ端末20、30に実現させる機能である。なお、他の実施の形態では、これらの機能は、サーバ10からユーザ端末20、30のウェブブラウザにネットワークNWを介して送信され、そのウェブブラウザによって実行される、HTML(HyperText Markup Language)などのプログラミング言語により記述されたコンピュータプログラムにより実現されてもよい。
ユーザ端末20は、ユーザの像および音声を記録した動画データを生成してサーバ10に提供する配信部100と、サーバ10から動画データを取得して再生する視聴部200と、アクティブユーザによる要求を処理する配信外処理部400と、を備える。ユーザは、配信を行う場合は配信部100を、視聴を行う場合は視聴部200を、興味のある配信者やライブ配信を検索したり配信者のプロフィールを視たりアーカイブを視たりする場合は配信外処理部400を、それぞれ起動する。配信部100がアクティブとなっているユーザ端末は配信者側、つまり動画データの生成側のユーザ端末であり、視聴部200がアクティブとなっているユーザ端末は視聴者側、つまり動画データの再生側のユーザ端末であり、配信外処理部400がアクティブとなっているユーザ端末はアクティブユーザのユーザ端末である。
配信部100は、撮像制御部102と、音声制御部104と、動画送信部106と、配信側UI制御部108と、配信側通信部110と、を含む。撮像制御部102は図2では不図示のカメラと接続され、カメラによる撮像を制御する。撮像制御部102はカメラから画像データを取得する。音声制御部104は図2では不図示のマイクロフォンと接続され、マイクロフォンによる音声入力を制御する。音声制御部104は、マイクロフォンから音声データを取得する。動画送信部106は、撮像制御部102により取得された画像データおよび音声制御部104により取得された音声データを含む動画データを、ネットワークNWを介してサーバ10に送信する。動画送信部106による動画データの送信はリアルタイムで行われる。すなわち、撮像制御部102および音声制御部104による動画データの生成と、生成された動画データの動画送信部106による送信と、は実質的に同時に行われる。
配信側UI制御部108は、配信者向けのUIを制御する。配信側UI制御部108は、図2では不図示のディスプレイと接続され、動画送信部106による送信対象となっている動画データを再生することにより動画像をディスプレイに表示させる。配信側UI制御部108は、図2では不図示のタッチパネルやキーボードやディスプレイなどの入力手段と接続され、それら入力手段を介して配信者による入力を取得する。配信側UI制御部108は、動画像に所定のフレーム画像を重畳させる。フレーム画像は、配信者から入力を受け付けるための様々なユーザインタフェースオブジェクト(以下、単にオブジェクトという)と、視聴者により入力されたコメントと、サーバ10から取得した情報と、を含む。配信側UI制御部108は例えば配信者によるオブジェクトに対するタップ入力を受け付ける。
配信側通信部110は、ライブ配信中のサーバ10との間の通信を制御する。配信側通信部110は、配信側UI制御部108が取得した配信者による入力の内容を、サーバ10にネットワークNWを介して送信する。配信側通信部110は、ライブ配信に関連付けられた各種の情報をサーバ10からネットワークNWを介して受信する。
視聴部200は、視聴側UI制御部202と、視聴側通信部204と、を含む。視聴側通信部204は、ライブ配信中のサーバ10との間の通信を制御する。視聴側通信部204は、ネットワークNWを介してサーバ10から、配信者と視聴者とが参加するライブ配信に係る動画データを受信する。
視聴側UI制御部202は、視聴者向けのUIを制御する。視聴側UI制御部202は、図2では不図示のディスプレイおよびスピーカと接続され、受信された動画データを再生することにより動画像をディスプレイに表示させると共に音声をスピーカから出力させる。ディスプレイに画像が出力されると共にスピーカから音声が出力されることを、合わせて「動画データが再生」されていると言うことができる。視聴側UI制御部202は、図2では不図示のタッチパネルやキーボードやディスプレイなどの入力手段と接続され、それら入力手段を介して視聴者による入力を取得する。視聴側UI制御部202は、サーバ10から取得された動画データの画像に所定のフレーム画像を重畳させる。フレーム画像は、視聴者から入力を受け付けるための様々なオブジェクトと、視聴者により入力されたコメントと、サーバ10から取得した情報と、を含む。視聴側通信部204は、視聴側UI制御部202が取得した視聴者による入力の内容を、ネットワークNWを介してサーバ10に送信する。
配信外処理部400は、配信外UI制御部402と、配信外通信部404と、を含む。配信外UI制御部402は、アクティブユーザ向けのUIを制御する。例えば、配信外UI制御部402は、現在参加可能なライブ配信のリストを表示してアクティブユーザによるライブ配信の選択を受け付けるライブ配信選択画面を生成し、ディスプレイに表示させる。配信外UI制御部402は、任意のユーザのプロフィール画面を生成し、ディスプレイに表示させる。配信外UI制御部402は、ユーザやライブ配信を検索するための検索キーワードを受け付ける検索画面を生成し、ディスプレイに表示させる。配信外UI制御部402は、ユーザやライブ配信の検索結果を含む検索結果表示画面を生成し、ディスプレイに表示させる。配信外UI制御部402は、過去のライブ配信を録音・録画することにより生成されたアーカイブを再生する。
配信外通信部404は、ライブ配信外のサーバ10との間の通信を制御する。配信外通信部404は、ネットワークNWを介してサーバ10から、ライブ配信選択画面を生成するための情報や、配信者の検索結果や、プロフィール画面を生成するための情報や、アーカイブのデータを受信する。配信外通信部404は、アクティブユーザによる入力の内容を、ネットワークNWを介してサーバ10に送信する。
図3は、図1のサーバ10の機能および構成を示すブロック図である。サーバ10は、配信情報提供部302と、中継部304と、ギフト処理部308と、支払い処理部310と、ストリームDB314と、ユーザDB318と、ギフトDB320と、検索部322と、を備える。
図4は、図3のストリームDB314の一例を示すデータ構造図である。ストリームDB314は現在行われているライブ配信の情報および過去に行われたライブ配信(アーカイブ)の情報を保持する。特にストリームDB314は、ライブ配信プラットフォームで過去に行われたライブ配信の配信者および視聴者の情報を保持する。ストリームDB314は、ライブ配信システム1が提供するライブ配信プラットフォームにおいてライブ配信を特定するストリームIDと、当該ライブ配信の配信者を特定するユーザIDである配信者IDと、当該ライブ配信の視聴者を特定するユーザIDである視聴者IDと、当該ライブ配信の開始時刻と、当該ライブ配信の終了時刻(アーカイブの場合)と、当該ライブ配信の内容を表す配信内容タグと、当該ライブ配信の画像データと、当該ライブ配信の音声データと、当該ライブ配信で投稿されたコメントの履歴と、を対応付けて保持する。各視聴者IDは、当該視聴者IDで特定される視聴者の視聴時間と共に保持される。
本実施の形態に係るライブ配信システム1が提供するライブ配信プラットフォームでは、ユーザがライブ配信を行う場合そのユーザは配信者となり、また同じユーザが他のユーザが配信するライブ配信を視聴する場合は視聴者となる。したがって、配信者・視聴者の別は固定的なものではなく、あるとき配信者IDとして登録されていたユーザIDが別のタイミングでは視聴者IDとして登録されることもある。
ライブ配信の内容タグは、配信者がライブ配信を始める際に指定したタグであってもよいし、機械学習により生成されたモデルがライブ配信をリアルタイムで解析することで得られるタグであってもよい。
図5は、図3のユーザDB318の一例を示すデータ構造図である。ユーザDB318は、ユーザに関する情報を保持する。特にユーザDB318は、ライブ配信プラットフォームで配信される動画の配信者の情報を保持する。ユーザDB318は、ユーザを特定するユーザIDと、当該ユーザが有しているポイントと、当該ユーザに付与された報酬と、当該ユーザのレベルと、当該ユーザの年齢の範囲と、当該ユーザの性別と、当該ユーザの髪の色と、当該ユーザがライブ配信アプリを使用している地域を示すリージョンと、当該ユーザに付されたユーザタグと、当該ユーザのコメントの履歴と、当該ユーザの自己紹介と、を含む。
ポイントは、ライブ配信プラットフォーム内で流通する電子的価値である。ユーザはクレジットカードや他の決済手段によりポイントを購入する。報酬はライブ配信プラットフォーム内で定義される電子的価値であり、配信者がライブ配信プラットフォームの管理者から受け取る金銭の額を決めるための指標である。ライブ配信プラットフォームでは、ライブ配信内やライブ配信外で視聴者が配信者にギフトを贈ると、視聴者のポイントが消費され、併せて配信者の報酬が相応分だけ増加する。
レベルは、ライブ配信プラットフォームにおけるユーザの配信者としての実績を示す指標である。他の実施の形態では、レベルは、ライブ配信プラットフォームにおけるユーザの視聴者としての実績を示す指標であってもよいし、ユーザの配信者および視聴者の両方としての実績を示す指標であってもよい。レベルは、ライブ配信を行った回数、ライブ配信の配信時間、ギフトを贈った回数および/または量、ギフトをもらった回数および/または量、コメントの回数などに応じて増減してもよい。あるいはまた、レベルは、配信者に対するレビューやユーザ満足度や配信内のコメントを基に管理者により評価、決定されてもよい。あるいはまた、レベルは、所定のルールまたは機械学習モデルにより自動的に決定されてもよい。
図6は、図3のギフトDB320の一例を示すデータ構造図である。ギフトDB320は、ライブ配信において視聴者が使用可能なギフトに関する情報を保持する。ギフトは、以下の特徴を有する電子データである。
・ポイントや金銭を対価として購入可能、または無料で付与可能。
・視聴者が配信者に贈ることができるもの。配信者にギフトを贈ることを、ギフトを使用する、またはギフトを投げるともいう。
・ギフトの購入と使用とがセットで同時に発生するタイプのものもあれば、購入した後、視聴者が任意のタイミングで使用可能なタイプのものもある。
・視聴者が配信者にギフトを贈ると、その配信者に相応の報酬が付与される。
・ギフトが使用された場合、ギフトに関連付けられた効果が生じることがある。例えば、ギフトに対応するエフェクトがライブ配信ルーム画面に表れる。
ギフトDB320は、ギフトを特定するギフトIDと、当該ギフトを配信者に贈った場合に当該配信者に付与される報酬である付与報酬と、当該ギフトを使用する際に支払うべき対価である対価ポイントと、を対応付けて保持する。視聴者は、ライブ配信の視聴中に、所望のギフトの対価ポイントを支払うことで配信者に当該ギフトを贈ることができる。この対価ポイントの支払いは適宜の電子的決済手段により行われてもよく、例えば対価ポイントを視聴者が管理者に支払うことで行われてもよい。あるいはまた、銀行振込やクレジットカードによる支払いが用いられてもよい。付与報酬と対価ポイントとの関係は管理者が任意に設定可能である。例えば、付与報酬=対価ポイントに設定してもよい。または付与報酬に1.2などの所定の係数を乗じて得られるポイントを対価ポイントに設定してもよいし、付与報酬に所定の手数料ポイントを加算して得られるポイントを対価ポイントに設定してもよい。
図3に戻り、検索部322は、ユーザのユーザ端末から検索要求を受けると、ユーザDB318を参照してユーザ検索を行い、かつ、ストリームDB314を参照してライブ配信検索を行う。検索部322は、ユーザ検索の結果とライブ配信検索の結果とを含む検索結果を要求元のユーザのユーザ端末に送信する。検索部322は、検索要求受付部330と、共通視聴ユーザ特定部332と、ユーザ検索部334と、配信検索部340と、調整部336と、提供部338と、を含む。
検索要求受付部330は、ライブ配信プラットフォームのユーザのユーザ端末からネットワークNWを介して、検索要求を受け付ける。検索要求は、要求元のユーザのユーザIDと、当該ユーザが入力した検索対象のキーワード(以下、検索キーワードという)と、を含む。
共通視聴ユーザ特定部332は、ストリームDB314を参照し、検索要求受付部330が受け付けた検索要求に含まれるユーザIDで特定される要求元のユーザの共通視聴ユーザを特定する。共通視聴ユーザ特定部332は、ストリームDB314に登録されている視聴者IDを以下の3つのステップで処理することで共通視聴ユーザのユーザIDを特定する。
(ステップ1)ストリームDB314に登録されているストリームIDのなかから、要求元のユーザのユーザIDが視聴者IDに含まれており、かつ、要求元のユーザの視聴時間が所定時間(例えば、5分、10分、20分等)以上であり、かつ、終了時刻が存在する(すなわち、既にライブ配信が終了している)ストリームIDを抽出する。
(ステップ2)ステップ1で抽出されたストリームIDのなかから、ストリームIDで特定されるライブ配信が過去に行われてから現在までの期間の長さがしきい値(例えば、1日、1週間、1ヶ月等)以下となるストリームIDを抽出する。この期間は、例えば、ライブ配信の終了時刻を始期とし、現在を終期とする期間である。あるいはまた、この期間は、ライブ配信の開始時刻や中間の時刻を始期としてもよい。
(ステップ3)ステップ2で抽出されたストリームIDに対応付けられた視聴者IDのうち、視聴時間が上記と同じ所定時間以上である視聴者IDを抽出する。
共通視聴ユーザ特定部332は、ステップ3で抽出された視聴者IDを、要求元のユーザの共通視聴ユーザのユーザIDとして特定する。
したがって、共通視聴ユーザ特定部332の特定処理に関して、ライブ配信が過去に行われてから現在までの期間の長さがしきい値を超える場合、当該ライブ配信は共通視聴ユーザ特定部332における特定の用に供されない。共通視聴ユーザ特定部332は、要求元のユーザが過去に所定時間以上視聴したライブ配信を、同じ所定時間以上視聴した別のユーザを共通視聴ユーザとして特定する。要求元のユーザに関する所定時間と、共通視聴ユーザに関する所定時間とは異なっていてもよい。
図4、図5の例で説明する。所定時間を12分、期間のしきい値を24時間(1日)とする。ユーザ「USR4」が2022年6月21日1:00に検索を行うものとする。共通視聴ユーザ特定部332は、ステップ1の結果、ライブ配信「ST1」を抽出する。ユーザ「USR4」はライブ配信「ST1」の視聴者IDに含まれており、ユーザ「USR4」の視聴時間は15分であって所定時間以上であり、ライブ配信「ST1」には終了時刻が存在するからである。
共通視聴ユーザ特定部332は、ステップ2の結果、ライブ配信「ST1」を抽出する。ライブ配信「ST1」の終了時刻は2022/6/20 5:00であり、期間の長さは20時間であってしきい値以下となっているからである。
共通視聴ユーザ特定部332は、ステップ3の結果、ユーザ「USR3」、「USR5」を共通視聴ユーザとして特定する。ユーザ「USR3」はライブ配信「ST1」の視聴者IDに含まれており、視聴時間は13分であって所定時間以上である。ユーザ「USR5」はライブ配信「ST1」の視聴者IDに含まれており、視聴時間は20分であって所定時間以上である。
ユーザ検索部334は、検索要求受付部330が受け付けた検索要求に基づきユーザ検索を実行する。ユーザ検索部334は、検索キーワードをキーとしてユーザDB318を検索し、マッチングスコアが所定値を上回るユーザIDを検索結果に含める。検索キーワードを用いたユーザ検索は、公知の検索技術を用いて実現されてもよい。
配信検索部340は、検索要求受付部330が受け付けた検索要求に基づきライブ配信検索を実行する。ユーザ検索部334は、検索キーワードをキーとしてストリームDB314を検索し、マッチングスコアが所定値を上回るライブ配信を検索結果に含める。配信検索部340は、ストリームDB314に登録されている配信のうち、終了時刻のない配信すなわち現在進行中のライブ配信のみを検索の対象とする、あるいは終了時刻のある配信を検索の対象から除外してもよい。検索キーワードを用いたライブ配信検索は、公知の検索技術を用いて実現されてもよい。
調整部336は、要求元のユーザのユーザ端末において、要求元のユーザの共通視聴ユーザがそうでない他のユーザよりも優先して表示されるように、ユーザ検索の検索結果を調整する。調整部336は、要求元のユーザのユーザ端末において、要求元のユーザの共通視聴ユーザが配信するライブ配信がそうでない他のユーザが配信するライブ配信よりも優先して表示されるように、ライブ配信検索の検索結果を調整する。
例えば、ユーザ検索の検索結果がマッチングスコアの高い順にソーティングされている場合、共通視聴ユーザ専用の順位を定め、当該順位よりも下位にある共通視聴ユーザを当該順位に引き上げてもよい。具体的には、共通視聴ユーザ専用の順位を第3位とすると、ユーザ検索の検索結果において第37位にいる共通視聴ユーザを第3位に変更する。元々第3位以降にいたユーザの順位は1だけ繰り下がる。
あるいはまた、ユーザ検索の検索結果における共通視聴ユーザの順位を所定数(例えば5)だけ繰り上げてもよい。具体的には、ユーザ検索の検索結果に共通視聴ユーザA、Bがそれぞれ第24位、第31位にいる場合、共通視聴ユーザAの順位を5位だけ繰り上げて第19位とし、共通視聴ユーザBの順位を同じ5位だけ繰り上げて第26位としてもよい。
調整部336は、ユーザ検索の検索結果の表示における共通視聴ユーザの表示順が、共通視聴ユーザ特定部332により特定されなかった場合(すなわち、共通視聴ユーザでなかった場合)の当該ユーザの表示順よりも上位になるように、ユーザ検索の検索結果を調整する。調整部336は、ライブ配信検索の結果についても同様の調整を行う。
例えば、ユーザ検索の検索結果において、あるユーザは共通視聴ユーザでなければ第37位に表示され、共通視聴ユーザであれば第3位に表示される。
ユーザ検索部334、配信検索部340、調整部336は合わせて、共通視聴ユーザまたは共通視聴ユーザが行うライブ配信が優先して提示されるように、検索要求に対する検索結果を生成する生成部を構成する。
提供部338は、調整された検索結果を、要求元のユーザのユーザ端末にネットワークNWを介して提供する。
検索要求の要求元のユーザ端末の配信外UI制御部402は、受信した検索結果に基づいて検索結果画面を生成し、ユーザ端末のディスプレイに表示させる。配信外UI制御部402は、検索結果画面においてアクティブユーザによるライブ配信の選択を受け付けると、選択されたライブ配信のストリームIDを含む配信要求を生成し、ネットワークNWを介してサーバ10に送信する。配信情報提供部302は、受信した配信要求に含まれるストリームIDにより特定されるライブ配信の、要求元のユーザ端末への提供を開始する。配信情報提供部302は、当該ストリームIDの視聴者IDに要求元のユーザ端末のアクティブユーザのユーザIDが含まれるようにストリームDB314を更新する。これにより、アクティブユーザは選択されたライブ配信の視聴者となる。
中継部304は、配信情報提供部302によって開始されたライブ配信において、配信者のユーザ端末20から視聴者のユーザ端末30への動画データの伝送を中継する。中継部304は、ライブ配信中すなわち動画データの再生中における視聴者によるユーザ入力を示す信号を視聴側通信部204から受信する。ユーザ入力を示す信号は、ユーザ端末30のディスプレイに表示されたオブジェクトの指定を示すオブジェクト指定信号であってもよく、当該オブジェクト指定信号は、視聴者の視聴者IDと、視聴者が視聴しているライブ配信を行っている配信者の配信者IDと、オブジェクトを特定するオブジェクトIDと、を含む。オブジェクトがギフトアイコンである場合、オブジェクトIDはギフトIDとなる。その場合のオブジェクト指定信号は、視聴者による配信者に対するギフトの使用を示すギフト使用信号となる。同様に、中継部304は、動画データの再生中における配信者によるユーザ入力を示す信号、例えばオブジェクト指定信号をユーザ端末20の配信部100の配信側通信部110から受信する。
ギフト処理部308は、ギフト使用信号に含まれるギフトIDで特定されるギフトの付与報酬に応じて配信者の報酬を増加させるようにユーザDB318を更新する。ギフト処理部308は、ギフトDB320を参照し、受信したギフト使用信号に含まれるギフトIDに対応する付与報酬を特定する。ギフト処理部308は、ギフト使用信号に含まれる配信者IDに対応する報酬に、特定された付与報酬を加えるようユーザDB318を更新する。
支払い処理部310は、ギフト使用信号の受信に応じて、視聴者によるギフトの対価の支払いを処理する。支払い処理部310は、ギフトDB320を参照し、ギフト使用信号に含まれるギフトIDで特定されるギフトの対価ポイントを特定する。支払い処理部310は、ギフト使用信号に含まれる視聴者IDで特定される視聴者のポイントから特定された対価ポイントを差し引くようユーザDB318を更新する。
以上の構成によるライブ配信システム1の動作を説明する。
図8は、サーバ10におけるユーザ検索に係る一連の処理の流れを示すフローチャートである。サーバ10は、ネットワークNWを介してユーザ端末から検索要求を受け付ける(S202)。サーバ10は、ストリームDB314を参照し、要求元のユーザの共通視聴ユーザを特定する(S204)。サーバ10は、検索要求に基づくユーザ検索を実行する(S206)。サーバ10は、ユーザ検索の検索結果に、ステップS204で特定された共通視聴ユーザが含まれているか否かを判定する(S208)。
共通視聴ユーザが含まれている場合(S208のY)、サーバ10は、共通視聴ユーザが優先的に表示されるようユーザ検索の検索結果を調整する(S210)。サーバ10は、ネットワークNWを介して要求元のユーザのユーザ端末に、ステップS210で調整された検索結果を送信する(S212)。共通視聴ユーザが含まれていない場合(S208のN)、サーバ10は、ユーザ検索の検索結果を調整することなくそのまま、要求元のユーザのユーザ端末に送信する(S212)。サーバ10はライブ配信検索の検索結果についても同様の処理を行う。
図9は、アクティブユーザのユーザ端末のディスプレイに表示される検索受付画面600の代表画面図である。検索受付画面600は、アクティブユーザによるキーワードの入力を自由入力形式で受け付けるキーワード入力領域602と、検索ボタン606と、を有する。
アクティブユーザは、所望のキーワードをキーワード入力領域602に入力し、検索ボタン606を押す。ユーザ端末の配信外通信部404は、検索ボタン606の押下を検出すると、キーワード入力領域602に入力されたキーワードと、アクティブユーザのユーザIDと、を含む検索要求を生成し、ネットワークNWを介してサーバ10に送信する。
図10は、アクティブユーザのユーザ端末のディスプレイに表示される検索結果画面610の代表画面図である。配信外通信部404は、図9の検索受付画面600を介して送信された検索要求に対応する検索結果をサーバ10から受信する。配信外UI制御部402は、受信した検索結果に基づいて検索結果画面610を生成し、ディスプレイに表示させる。受信した検索結果は、ユーザ検索の検索結果(ユーザ検索結果という)と、ライブ配信検索の検索結果(ライブ配信検索結果という)と、を含む。検索結果画面610は、ユーザ検索結果を表示するユーザ検索結果表示領域612と、ライブ配信検索結果を表示するライブ配信結果表示領域614と、を有する。ライブ配信結果表示領域614は、受信したライブ配信検索結果に記載されている順序でライブ配信のサムネイルを並べて表示する。一画面に入りきらない部分はスワイプにより表示できるよう構成される。ユーザ検索結果表示領域612は、受信したユーザ検索結果に記載されている順序でユーザの情報を並べて表示する。一画面に入りきらない部分はスワイプにより表示できるよう構成される。
ユーザ検索結果表示領域612で各ユーザに割り当てられた領域は、ユーザのアイコン616と、ユーザのユーザID618と、当該ユーザのライブ配信ルームに入るための配信を見るボタン620と、当該ユーザをフォローするためのフォローボタン622と、を有する。ユーザが共通視聴ユーザである場合には、当該領域はさらに共通視聴マーク624を含む。要求元のユーザは、共通視聴マーク624により、ユーザ検索結果表示領域612に表示されているユーザのうちだれが共通視聴ユーザなのかを容易に理解することができる。
上述の実施の形態において、保持部の例は、ハードディスクや半導体メモリである。また、本明細書の記載に基づき、各部を、図示しないCPUや、インストールされたアプリケーションプログラムのモジュールや、システムプログラムのモジュールや、ハードディスクから読み出したデータの内容を一時的に記憶する半導体メモリなどにより実現できることは本明細書に触れた当業者には理解される。
本実施の形態に係るライブ配信システム1によると、ユーザが配信者やライブ配信を探す際に、検索結果において当該ユーザの共通視聴ユーザの情報が優先して提示されるので、ユーザはより希望に添った検索結果を得ることができる。その結果、ユーザの満足度が向上する。
過去に同じライブ配信を視聴した仲間であれば趣味や嗜好などが近いか、気が合う確率が高い。本実施の形態ではそのようなユーザ同士のインタラクション、交流を促進することで、より効率的に人と人のつながりを強めることができる。
また、本実施の形態に係るライブ配信システム1では、行われてから一定期間以上経過したライブ配信は、共通視聴ユーザの特定の用に供されない。したがって、検索をするユーザの今の状況に合った検索結果を提供できる。
また、本実施の形態に係るライブ配信システム1では、要求元のユーザと共通視聴ユーザとの両方が同じライブ配信を所定時間以上視聴したことを、共通視聴ユーザを特定するための条件としている。これにより、同じライブ配信に一定以上の興味を持って参加していたユーザ同士をつなぐことができるので、マッチングの精度が向上する。または、操作ミスによりライブ配信に参加した者やライブ配信を少し見て内容が合わないからすぐに退出した者を、共通視聴ユーザから除くことができるので、やはりマッチングの精度が向上する。
図11を参照して、本実施の形態に係る情報処理装置のハードウェア構成について説明する。図11は、本実施の形態に係る情報処理装置のハードウェア構成例を示すブロック図である。図示された情報処理装置900は、例えば、本実施の形態におけるサーバ10およびユーザ端末20、30のそれぞれを実現しうる。
情報処理装置900は、CPU901、ROM(Read Only Memory)902、およびRAM(Random Access Memory)903を含む。また、情報処理装置900は、ホストバス907、ブリッジ909、外部バス911、インタフェース913、入力装置915、出力装置917、ストレージ装置919、ドライブ921、接続ポート925、通信装置929を含んでもよい。さらに、情報処理装置900は、カメラなどの撮像装置(不図示)を含む。また、情報処理装置900は、CPU901に代えて、またはこれとともに、DSP(Digital Signal Processor)またはASIC(Application Specific Integrated Circuit)と呼ばれるような処理回路を有してもよい。
CPU901は、演算処理装置および制御装置として機能し、ROM902、RAM903、ストレージ装置919、またはリムーバブル記録媒体923に記録された各種プログラムに従って、情報処理装置900内の動作全般またはその一部を制御する。例えば、CPU901は、本実施の形態におけるサーバ10およびユーザ端末20、30のそれぞれに含まれる各機能部の動作全般を制御する。ROM902は、CPU901が使用するプログラムや演算パラメータなどを記憶する。RAM903は、CPU901の実行において使用するプログラムや、その実行において適宜変化するパラメータなどを一次記憶する。CPU901、ROM902、およびRAM903は、CPUバスなどの内部バスにより構成されるホストバス907により相互に接続されている。さらに、ホストバス907は、ブリッジ909を介して、PCI(Peripheral Component Interconnect/Interface)バスなどの外部バス911に接続されている。
入力装置915は、例えば、マウス、キーボード、タッチパネル、ボタン、スイッチおよびレバーなど、ユーザによって操作される装置であってもよいし、マイクロフォンなどの音センサ、加速度センサ、傾きセンサ、赤外線センサ、深度センサ、温度センサ、湿度センサなど物理量を電気信号に変換する装置であってもよい。入力装置915は、例えば、赤外線やその他の電波を利用したリモートコントロール装置であってもよいし、情報処理装置900の操作に対応した携帯電話などの外部接続機器927であってもよい。入力装置915は、ユーザが入力した情報または感知した物理量に基づいて入力信号を生成してCPU901に出力する入力制御回路を含む。ユーザは、この入力装置915を操作することによって、情報処理装置900に対して各種のデータを入力したり処理動作を指示したりする。
出力装置917は、取得した情報をユーザに対して視覚的または聴覚的に通知することが可能な装置で構成される。出力装置917は、例えば、LCD、PDP、OELDなどのディスプレイ、スピーカおよびヘッドホンなどの音響出力装置、ならびにプリンタ装置などでありうる。出力装置917は、情報処理装置900の処理により得られた結果を、テキストまたは画像などの映像として出力したり、音響などの音として出力したりする。
ストレージ装置919は、情報処理装置900の記憶部の一例として構成されたデータ格納用の装置である。ストレージ装置919は、例えば、HDD(Hard Disk Drive)などの磁気記憶部デバイス、半導体記憶デバイス、光記憶デバイス、または光磁気記憶デバイスなどにより構成される。このストレージ装置919は、CPU901が実行するプログラムや各種データ、および外部から取得した各種のデータなどを格納する。
ドライブ921は、磁気ディスク、光ディスク、光磁気ディスク、または半導体メモリなどのリムーバブル記録媒体923のためのリーダライタであり、情報処理装置900に内蔵、あるいは外付けされる。ドライブ921は、装着されているリムーバブル記録媒体923に記録されている情報を読み出して、RAM903に出力する。また、ドライブ921は、装着されているリムーバブル記録媒体923に記録を書き込む。
接続ポート925は、機器を情報処理装置900に直接接続するためのポートである。接続ポート925は、例えば、USB(Universal Serial Bus)ポート、IEEE1394ポート、SCSI(Small Computer System Interface)ポートなどでありうる。また、接続ポート925は、RS-232Cポート、光オーディオ端子、HDMI(登録商標)(High-Definition Multimedia Interface)ポートなどであってもよい。接続ポート925に外部接続機器927を接続することで、情報処理装置900と外部接続機器927との間で各種のデータが交換されうる。
通信装置929は、例えば、ネットワークNWに接続するための通信デバイスなどで構成された通信インタフェースである。通信装置929は、例えば、有線または無線LAN(Local Area Network)、Bluetooth(登録商標)、またはWUSB(Wireless USB)用の通信カードなどでありうる。また、通信装置929は、光通信用のルータ、ADSL(Asymmetric Digital Subscriber Line)用のルータ、または、各種通信用のモデムなどであってもよい。通信装置929は、例えば、インターネットや他の通信機器との間で、TCP/IPなどの所定のプロトコルを用いて信号などを送受信する。また、通信装置929に接続される通信ネットワークNWは、有線または無線によって接続されたネットワークであり、例えば、インターネット、家庭内LAN、赤外線通信、ラジオ波通信または衛星通信などである。なお、通信装置929は、通信部としての機能を実現する。
カメラなどの撮像装置(不図示)は、例えばCCD(Charge Coupled Device)またはCMOS(Complementary Metal Oxide Semiconductor)などの撮像素子、および撮像素子への被写体像の結像を制御するためのレンズなどの各種の部材を用いて実空間を撮像し、撮像画像を生成する装置である。当該撮像装置は、静止画を撮像するものであってもよいし、または動画を撮像するものであってもよい。
以上、実施の形態に係るライブ配信システム1の構成と動作について説明した。この実施の形態は例示であり、各構成要素や各処理の組み合わせにいろいろな変形例が可能なこと、またそうした変形例も本開示の範囲にあることは当業者に理解される。
実施の形態では、ユーザ検索の検索結果およびライブ配信検索の検索結果の両方で共通視聴ユーザを優先する場合を説明したが、これに限られず、いずれか一方のみにおいて共通視聴ユーザを優先してもよい。
実施の形態では、共通視聴ユーザを特定し、ユーザ検索およびライブ配信検索を行い、共通視聴ユーザを優先するよう検索結果を調整する場合を説明したが、これに限られない。例えば、共通視聴ユーザの特定とユーザ検索・ライブ配信検索との順序は逆であってもよい。あるいはまた、ユーザ検索をまず行い、その検索結果に含まれる各ユーザについて、ストリームDB314を参照して共通視聴ユーザであるか否かを判定してもよい。ライブ配信検索についても同様である。あるいはまた、ユーザ検索において共通視聴ユーザのマッチングスコアが共通視聴ユーザでない場合よりも高くなるよう検索のアルゴリズムを構成してもよい。この場合、マッチングスコアの計算式のパラメータに、共通視聴ユーザであれば1、そうでなければ0となる変数を含めてもよい。ライブ配信検索についても同様である。
実施の形態では、検索結果に共通視聴ユーザが含まれていればそれが優先的に表示されるよう検索結果を調整する場合を説明したが、これに限られず、例えばユーザ検索の検索結果と、要求元のユーザの共通視聴ユーザと、を別々に求め、それらを合成することで最終的な検索結果を生成してもよい。
実施の形態におけるギフトの対価ポイントから付与報酬への換算率は一例であって、これらは例えばライブ配信システムの管理者により適宜設定されてもよい。
実施の形態に係る技術的思想を、配信者の画像の代わりに配信者の動きと同期した動きをするアバターを用いるバーチャルライブ配信や、ライブコマースに適用してもよい。
本明細書において説明された処理手順、特にフロー図、フローチャートを用いて説明された処理手順においては、その処理手順を構成する工程(ステップ)の一部を省略すること、その処理手順を構成する工程として明示されていない工程を追加すること、及び/又は当該工程の順序を入れ替えることが可能であり、このような省略、追加、順序の変更がなされた処理手順も本開示の趣旨を逸脱しない限り本開示の範囲に含まれる。
サーバ10により実現される機能の少なくとも一部は、サーバ10以外の装置、例えばユーザ端末20、30により実現されてもよい。ユーザ端末20、30により実現される機能の少なくとも一部は、ユーザ端末20、30以外の装置、例えば、サーバ10により実現されてもよい。例えば、視聴者のユーザ端末で行われる動画データの画像への所定のフレーム画像の重畳は、サーバ10で行われてもよいし、配信者のユーザ端末で行われてもよい。あるいはまた、サーバ10で行われる検索結果の調整は、要求元のユーザのユーザ端末で行われてもよい。この場合、サーバ10はユーザ検索の検索結果と、ライブ配信検索の検索結果と、共通視聴ユーザのリストと、をユーザ端末に送信してもよい。ユーザ端末は、検索結果を表示する際にリストを参照し、共通視聴ユーザまたはそのライブ配信を優先して表示してもよい。