(58)【調査した分野】(Int.Cl.,DB名)
前記ホスティングシステムからの前記命令は、ブラウザによって実行され、かつ前記アップロードオブジェクトをロードするために前記ホスティングシステムに命令を要求するように前記ブラウザに指示する前記ページ内に含まれる命令に応答して受信されることを特徴とする請求項1に記載の方法。
前記通信チャネルを確立するステップは、前記アップロードオブジェクトからのメッセージを受け入れるために、前記ページのための少なくとも1つのイベントリスナを作成するステップを有することを特徴とする請求項1に記載の方法。
前記通信チャネルを確立するステップは、前記ページからのメッセージを受け入れるために、前記アップロードオブジェクトのための少なくとも1つのイベントリスナを作成するステップを有することを特徴とする請求項1に記載の方法。
前記フレーム内に発生するイベントに応答して、前記イベントが発生したことを示すメッセージを、通信チャネルを介して前記ページに前記アップロードオブジェクトによって転送するステップをさらに有することを特徴とする請求項1に記載の方法。
前記イベントは、ユーザが前記ビデオの作成を要求すること、前記ビデオの作成が開始されること、前記ユーザが前記ビデオのアップロードを要求すること、前記ビデオがアップロードのために前記ユーザによって選択されること、及び前記ビデオが前記ホスティングシステムによって格納されたこと、のうちの一つであることを特徴とする請求項5に記載の方法。
少なくとも1つのイベントのためのメッセージを受信するために、少なくとも1つのイベントを、前記通信チャネルを介して前記アップロードオブジェクトに前記ページによって示すステップと、
前記フレーム内に発生する前記イベントに応答して、前記イベントが発生したことを示すメッセージを、前記通信チャネルを介して前記ページに前記アップロードオブジェクトによって転送するステップと
をさらに有することを特徴とする請求項1に記載の方法。
前記受信した識別子は、前記ページ内の前記識別子を含むように前記ユーザがリンクを選択することに応答して前記ウィンドウに転送され、前記リンクは前記フレーム内に含まれることを特徴とする請求項1に記載の方法。
前記メディアホスティングシステムに転送される前記メディアアイテムは、前記ユーザデバイス上に格納されるとともに、前記メディアアップロードオブジェクトを介して前記ユーザによって転送するために選択されることを特徴とする請求項10に記載の方法。
前記メディアホスティングシステムに転送される前記メディアアイテムは、前記メディアアップロードオブジェクトに前記ユーザによって提供された要求に基づいて、メディアキャプチャデバイスによって作成されることを特徴とする請求項10に記載の方法。
前記ページに転送される前記メッセージは、前記メディアアイテムに関連し、かつ前記メディアホスティングシステムから受信される識別子を含むことを特徴とする請求項10に記載の方法。
前記アクションを実行するステップは、前記ページ内に前記メディアアイテムに関連する前記識別子を提示するステップを有することを特徴とする請求項13に記載の方法。
前記メディアホスティングシステムからの前記命令は、ブラウザによって実行され、かつ前記メディアアップロードオブジェクトをロードするために、前記メディアホスティングシステムに命令を要求するように前記ブラウザに指示する前記ページ内に含まれる命令に応答して受信されることを特徴とする請求項10に記載の方法。
前記通信チャネルを確立するステップは、前記メディアアップロードオブジェクトからのメッセージを受け入れるために、前記ページのための少なくとも1つのイベントリスナを作成するステップを有することを特徴とする請求項10に記載の方法。
ユーザデバイスに命令を、メディアホスティングシステムによって転送するステップであって、前記命令は、前記ユーザデバイスにおいて提示されるページのコンテンツを含むウィンドウ内にフレームが作成されるようにし、前記フレームはメディアアップロードオブジェクトを含み、パブリッシングシステムから前記ユーザデバイスによって受信した前記ページは、前記メディアホスティングシステムとは異なるドメインを有する、ステップと、
前記ユーザデバイスによって転送されたメディアアイテムを、前記メディアホスティングシステムによって受信するステップであって、前記メディアアイテムの転送は、前記メディアアップロードオブジェクトを介して前記ユーザデバイスにおいて開始される、ステップと、
前記メディアアイテムを、前記メディアホスティングシステムによって格納するステップとを有し、
前記メディアアイテムの前記転送についてのメッセージは、通信チャネルを介して前記フレームから前記ウィンドウに転送されるとともに、前記ページによって指示されるアクションは、前記メッセージに基づいて前記ユーザデバイスにおいて実行されることを特徴とするコンピュータ実施方法。
格納された前記メディアアイテムに関連する情報を前記ユーザデバイスに転送するステップであって、前記情報は、前記通信チャネルを介して前記メディアアップロードオブジェクトと前記ページの間で交換される、ステップをさらに有することを特徴とする請求項18に記載の方法。
【発明を実施するための形態】
【0008】
図面は、説明の目的のためだけに様々な実施形態を描写している。本願明細書に説明される構造及び方法の別の実施形態が、本願明細書に記述される実施形態の原則から逸脱することなく採用され得ることを当業者は容易に認めるであろう。
【0009】
図1は、一実施形態によるメディアホスティング環境100のブロック図である。
図1は、メディアホスティングシステム102、パブリッシングシステム104、及びネットワーク110を介して接続された3台のユーザデバイス106を示す。各ユーザデバイス106は、ブラウザ108を有する。図示された環境100は選択した数だけの各エンティティを含むが、他の実施形態では、より多くの又はより少ないそれぞれのエンティティ(例えば、追加のパブリッシングシステム104及び追加のユーザデバイス106)を含むことができる。
【0010】
図1は、同じ要素を識別するために同じ参照番号を使用する。参照番号の後の文字、「106A」などは、テキストが特定の参照番号を有する要素を具体的に参照することを示す。後に続く文字のないテキスト内の参照番号、「106」などは、その参照番号を有する図中の要素のいくつか又は全てを参照する(例えば、テキスト内の「106」は、図中の参照番号「106A」、「106B」、及び/又は「106C」を参照する)。
【0011】
ネットワーク110は、メディアホスティングシステム102と、パブリッシングシステム104と、ユーザデバイス106との間の通信経路を表す。一実施形態では、ネットワーク110は、インターネットであり、標準の通信技術及び/又はプロトコルを使用する。ネットワーク110は、インターネットの一部である必要のない、専用の通信リンク、カスタムの通信リンク、又はプライベートの通信リンクを利用することもできる。ネットワーク110は、有線通信技術及び無線通信技術の両方を使用して、ローカルエリアネットワーク及び/又はワイドエリアネットワークの任意の組み合わせを有してもよい。
【0012】
メディアホスティングシステムは、ユーザにメディアアイテムへのアクセスを提供するシステムである。メディアアイテム(「メディアコンテンツ」とも呼ばれる)は、テキスト、ビデオ、オーディオ、又はアニメーションなど、メディアの1又は複数のタイプを含むコンテンツである。ユーザデバイス106からメディアアイテムの要求を受信すると、メディアホスティングシステムは、デバイス106にメディアアイテムを転送(例えば、ストリーム)する。一実施形態では、アイテムは、メディアプレイヤ(例えば、ビデオプレイヤ)によってユーザデバイス106上で再生される。
【0013】
一実施形態では、メディアホスティングシステムがユーザに対してアクセス可能にしたメディアアイテムは、保管又は共有のためにシステム102に、ユーザによって提供されるメディアアイテムである。一実施形態では、システム102によってアクセス可能にされるメディアアイテムは、他のエンティティのウェブサイト又はデータベースの検索又はクロール中で識別されるメディアアイテムを含む。
【0014】
パブリッシングシステム104は、ユーザデバイス106にページを提供するシステムである。一実施形態では、ユーザデバイスのブラウザ108を介して、ユーザはパブリッシングシステム104にページを要求する。要求は、ページの識別子を含む(例えば、ユニフォームリソース識別子(URI))。パブリッシングシステム104が要求を受信すると、パブリッシングシステム104は、識別子に基づいてページを識別し、ユーザデバイス106にページを提供する。
【0015】
パブリッシングシステム104によって提供されるページは、命令(例えば、マークアップ言語)を伴うドキュメント又はファイルである。一実施形態では、命令はユーザデバイスのブラウザ108によって実行される。命令が実行されると、ページのコンテンツがユーザに提示される。ユーザに提示されるページコンテンツは、例えば、ソーシャルネットワークコンテンツ、フォーラム、ニュースコンテンツ、ブログなどである。一実施形態では、パブリッシングシステム104によってユーザデバイス106に提供されるページは、Javascript、HTML、XML、又は他のタイプのマークアップ言語を含むウェブページである。
【0016】
パブリッシングシステム104及びメディアホスティングシステムは、異なるアドレスドメインを有する。例えば、メディアホスティングシステムは、mediahostingsystem.comのアドレスドメインを有してよく、一方、パブリッシングシステム104は、publishingsystem.comのアドレスドメインを有してもよい。一実施形態では、パブリッシングシステム104及びメディアホスティングシステムは、互いに別々でかつ独立している。例えば、パブリッシングシステム104及びメディアホスティングシステムは、異なるエンティティによって動作されてもよい。
【0017】
ユーザデバイス106は、ネットワーク110に接続されるエンティティと通信するためにユーザによって使用される電気的コンピュータデバイスである。ユーザデバイス106は、例えば、携帯電話、タブレットコンピュータ、ノートブックコンピュータ、デスクトップコンピュータ、又は個人情報端末(PDA)である。上述したように、各ユーザデバイス106は、ブラウザ108を含む。ユーザデバイスのブラウザ108は、インタフェースを提供するアプリケーションであり、ユーザは該インタフェースを介してメディアホスティングシステム102及びパブリッシングシステム104と通信できる。
【0018】
ユーザからの要求に基づいて、ブラウザ108はパブリッシングシステム104にページを要求する。ユーザデバイス106がパブリッシングシステム104から要求したページを受信すると、ブラウザ108は、ページ中に含まれる命令を実行し、ブラウザウィンド内にページのコンテンツを表示する。パブリッシングシステム104から受信した少なくともいくつかのページは、ブラウザ108にメディアホスティングシステム102と通信させる命令を含む。一実施形態では、ユーザが、ページコンテンツを介してメディアホスティングシステム102にメディアコンテンツをアップロードすることを要求するとき、メディアホスティングシステム102と通信するための命令が実行される。別の実施形態では、要求されたページがユーザデバイス106によって受信されるとき、メディアホスティングシステム102と通信するための命令が実行される。
【0019】
ブラウザ108は、ページのウィンドウ内にメディアアップロードオブジェクトをロードするための命令を要求するために、メディアホスティングシステム102と通信する。ブラウザ108はメディアホスティングシステム102から命令を受信し、その命令を実行し、その結果、ページのウィンドウ内にフレームが作成される。作成されたフレームはメディアホスティングシステム102からのコンテンツを含む。具体的には、フレームは、メディアアップロードオブジェクトを含み、ユーザは、該メディアアップロードオブジェクトを介してメディアホスティングシステム102にメディアアイテムをアップロードする要求をできる。
図2は、ウィンドウ200内にブラウザ108によって提示されたページ202と、作成されたフレーム204を含むウィンドウ200とを示す。フレーム204内には、メディアアップロードオブジェクト206がある。
【0020】
メディアホスティングシステム102及びパブリッシングシステム104が、異なるアドレスドメインを有するので、フレーム204がフレーム204の外側かつページウィンドウ200の内側に含まれるコンテンツとは異なるドメインからのコンテンツを含むことを意味する。フレーム204がメディアホスティングシステム102のドメインからのコンテンツを含み、ページウィンドウ200(フレーム204の外側)は、パブリッシングシステムのドメインからのコンテンツを含む。フレームメディアアップロードオブジェクト206及びウィンドウのページ202が通信できるように(すなわち、クロスドメイン通信/クロスドメインメッセージングが可能なように)、通信チャネルがフレーム204とウィンドウ200の間に作成される(すなわち、メディアアップロードオブジェクト206とページ202の間に通信が作成される)。一実施形態では、フレーム204がページ202内に作成されるとき、メディアアップロードオブジェクト206が作成される。通信チャネルは、メディアアップロードオブジェクト206とページ202がそれを介してフレーム204とウィンドウ200の間でメッセージを交換することによって通信できる手段である。通信チャネルは、メディアアップロードオブジェクト206及びページ202が互いのドメインで発生しているイベントに気付くことができるようにする。
【0021】
通信チャネルを作成するために、メディアアップロードオブジェクト206とページ202の各々は、互いからのメッセージを受け入れるための少なくとも1つのイベントリスナを作成する。メディアアップロードオブジェクト206によって作成されたイベントリスナによって、オブジェクト206がページ202からの(すなわち、パブリッシングシステムのドメインからの)メッセージを受信できる。同様に、ページのイベントリスナによって、ページ202がメディアアップロードオブジェクト206からの(すなわち、メディアホスティングシステムのドメインからの)メッセージを受信できる。一旦通信チャネルが作成されると、メディアアップロードオブジェクト206及びページ202は、メッセージを交換できる(すなわち、メッセージは、ウィンドウ200とフレーム204の間で交換され得る)。一実施形態では、HTML5のpostMessage機能が、ウィンドウ200とフレーム204の間でメッセージを交換するために使用される。
【0022】
一実施形態では、通信チャネルが作成されると、ページ202は、メッセージをメディアアップロードオブジェクト206に送信し(すなわち、メッセージは、ウィンドウ200からフレーム204に送信される)、該メッセージは、オブジェクトのフレーム204内に発生するどのイベントが通知されることを望むかを示す。すなわち、ページ202は、あるイベントがフレーム204内に発生すると(例えば、ユーザがメディアホスティングシステム102にメディアアイテムをアップロードすることを要求すると)、通知を受信することを許可する。
【0023】
一実施形態では、ページ202は、任意のメディアアイテムとともに含まれるべきメタデータが、メディアホスティングシステム102にアップロードされたことを示すために、通信チャネルを介してモバイルアップロードオブジェクト206にメッセージを送信する。例えば、ページ202は、アップロードされたメディアアイテムが他のユーザ(例えば、一般に)によってアクセス可能であること、キーワードがアップロードされたメディアアイテムに関連すること、及び、メディアアイテムがメディアホスティングシステム102を伴って、ユーザのアカウント又はパブリッシングシステム104のアカウントにアップロードされることを指示してよい。
【0024】
メディアアップロードオブジェクト206がフレーム204内に提示されると、ユーザは、メディアアップロードオブジェクト206を介して、メディアキャプチャデバイスを使用したメディアアイテムの作成と、メディアホスティングシステム102へのメディアアイテムのアップロードとを要求できる。メディアキャプチャデバイスは、ウェブカム(webcam)、マイクロフォン、ビデオレコーダ、デジタルカメラなどの、メディアを生成するデバイスである。メディアキャプチャデバイスは、ユーザデバイス106内に統合されているか、外部にありユーザデバイス106に接続されてもよい。
【0025】
ユーザがメディアアイテムの作成の開始を要求すると(例えば、録画の開始)、メディアアップロードオブジェクト206はメディアホスティングシステム102とのアップロードコネクションを作成する。アップロードコネクションは、コネクションであり、メディアアップロードオブジェクト206は該コネクションを介してメディアホスティングシステム102にメディアデータをストリームすることができる。一実施形態では、アップロードコネクションは、RTMP(Real Time Messaging Protocol)コネクションである。加えて、メディアアップロードオブジェクト206は、メディアデータ(例えば、ビデオフレーム)の生成を開始できるように、メディアキャプチャデバイスを開始する。
【0026】
メディアキャプチャデバイスがメディアデータを生成するとき、メディアアップロードオブジェクト206は、アップロードコネクションを介してメディアホスティングシステム102にデータをストリームする。メディアホスティングシステム102はデータをバッファリングする。ユーザがメディアアイテムの作成の停止(例えば、録画の停止)を要求すると、メディアアップロードオブジェクト206はメディアキャプチャデバイスを停止する。メディアアップロードオブジェクト206が、アップロードを終わらせることを望むか否かをユーザに尋ねる。ユーザがアップロードの終了を要求する場合、メディアアップロードオブジェクト206は、メディアホスティングシステム102にメディアアイテムの作成を要求する。メディアホスティングシステム102は、アップロードコネクションを介して受信したメディアデータに基づいてメディアアイテムを作成し、メディアアイテムを格納する。
【0027】
別の実施形態では、メディアキャプチャデバイスによって生成されるとき、メディアホスティングシステム102にメディアデータをストリームする代わりに、メディアデータがユーザデバイス106に格納される。ユーザがメディアアイテムの作成の停止を要求し、格納されたメディアデータをメディアホスティングシステム102にアップロードする場合、メディアアップロードオブジェクト206は、メディアアイテムを格納するためにメディアホスティングシステム102にメディアデータを転送する。この実施形態では、メディアアイテムのメディアデータは、メディアアイテムのそれぞれのメディアデータが作成された後で、ユーザがメディアアイテムをアップロードすることを直接要求するまでメディアホスティングシステム102に転送されない。
【0028】
一実施形態では、ユーザは、メディアアップロードオブジェクト206を介してメディアアイテムのためのメタデータを提供する。メディアアイテムのために提供されるメタデータは、例えば、タイトル、説明、タグ、キーワード、カテゴリ、そのアイテムが他のユーザ(例えば、大衆)によってアクセス可能であるべきか否かを含んでよい。メディアアップロードオブジェクト206は、メディアアイテムとともに保管するためにメディアホスティングシステム102にメタデータを転送する。
【0029】
メディアアップロードオブジェクト206は、格納されたメディアアイテムのための識別子をメディアホスティングシステム102から受信する。識別子は、メディアホスティングシステム102を介してメディアアイテムにアクセスするために、ユーザによって使用され得る。識別子は、ユニフォームリソースロケータ(URL)、ユニフォームリソースネーム(URN)などの、ユニフォームリソース識別子(URI)であってよい。
【0030】
メディアアイテムの作成及びアップロードの処理の間中、メディアアップロードオブジェクト206は、フレーム204内のイベント発生をページに通知するために、通信チャネルを介してページ202にメッセージを転送し得る。例えば、メディアアップロードオブジェクト206は、次のイベント:ユーザがメディアアイテムの作成を要求する、メディアアイテムの作成が開始される、メディアアイテムの作成が停止される、ユーザがアップロードの終了を要求する、メディアアイテムが作成され、メディアホスティングシステム102に格納される、メディアアイテムが再生(例えば、視聴)できる状態にある、メディアアイテムがメディアホスティングシステムに正常に転送された、メディアアイテムに関連する識別子が利用可能である、のうちの1又は複数をページ202に通知し得る。一実施形態では、メディアアップロードオブジェクト206が、イベントのためのメッセージの受信をページが望むことを示した該イベントをページ202に通知するだけである。一実施形態では、メディアアップロードオブジェクト206がメディアホスティングシステム102からメディアアイテムのための識別子を受信した後、メディアアップロードオブジェクト206は通信チャネルを介してページ202に識別子を提供する。
【0031】
通信チャネルを介してメディアアップロードオブジェクト206からページ202が受信したメッセージによって、ページ202がフレーム204内に発生していることに応答することができる。例として、ページ202がテレビ番組のウェブサイトの一部であると仮定する。ページ202とメディアアップロードオブジェクト206は、ユーザが番組の新しいエピソードに対する反応ビデオ(reaction video)を作成できるように意図される。ユーザがメディアアップロードオブジェクト206を介してウェブカム録画を開始することを要求すると、メディアアップロードオブジェクト206は通信チャネルを介して録画の開始をページ202に通知する。通知に基づいて、ウェブカムがユーザの反応をキャプチャするために、ページ202は新しいエピソードの再生を開始できる。
【0032】
一旦ユーザが録画の停止を要求すると、メディアアップロードオブジェクト206がページ202に通知する。通知に基づいて、ページ202は、「反応ビデオの作成ありがとう」というメッセージをユーザに提示できる。加えて、ページ202はURLを提示でき、ユーザは該URLを介してメディアホスティングシステム102からの録画にアクセスできる。URLはメディアホスティングシステム102によってメディアアップロードオブジェクト206に提供され、通信チャネルを介してページ202に転送される。
【0033】
一実施形態では、メディアアイテムを作成及びアップロードできることに加えて、ユーザは、メディアアップロードオブジェクト206を介して、ユーザデバイス106上に既に格納されたメディアアイテムをアップロードすることを要求することもできる。ユーザは要求を作るときに、メディアアップロードオブジェクト206はインタフェースを提示し、ユーザは該インタフェースを介してユーザデバイス106上に格納されたファイルを閲覧できる。ユーザがアップロードのためのメディアアイテムを選択すると、メディアアップロードオブジェクト206が、保管のためにメディアホスティングシステム102にアイテムを転送する。メディアアップロードオブジェクト206は、格納されたメディアアイテムのための識別子を受信し、通信チャネルを介してページ202に該識別子を転送する。メディアアイテムをアップロードする処理の間中、メディアアップロードオブジェクト206は、次のイベント:ユーザがユーザデバイス106上に格納されたメディアアイテムのアップロードを要求する、ユーザによって選択されたメディアアイテムがアップロードされる、メディアアイテムがメディアホスティングシステム102によって格納される、のうちの1又は複数をページ202に通知してもよい。
【0034】
図6A乃至6Iには、メディアアイテムを作成し、メディアホスティングシステム102にアップロードする例を示す。
図6Aは、ブラウザのウィンドウ601内のユーザのブログページ600を示す。ユーザは、インタフェース要素602を介して新しいポストを自身のブログに追加することを要求できる。
図6Bは、ユーザが新しいポストを追加できるようにするページ600によって提示されるインタフェース604を示す。インタフェース604はインタフェース要素606を含み、ユーザは、該インタフェース要素606を介してビデオを録画すること、メディアホスティングシステム102にビデオをアップロードすること、ポスト内でビデオにリンクを挿入することを要求できる。インタフェース要素606のユーザ選択に応答して、ブラウザ108がページをメディアホスティングシステム102と通信させるページ600の命令を実行し、メディアホスティングシステム102からのメディアアップロードオブジェクトをロードするための命令を受信する。
【0035】
受信した命令は、ブラウザ108によって実行され、
図6Cに図示されるように、フレーム608は、メディアアップロードオブジェクト610を含むページ600/ウィンドウ604内に作成される。メディアアップロードオブジェクト610が提示されると、メディアアップロードオブジェクト610は作成予定のビデオのためのメタデータ612をユーザが提供することを要求する。ビデオのために要求されたメタデータは、タイトル、説明、及びキーワードを含む。メディアアップロードオブジェクト610は、メディアホスティングシステム102に受信したメタデータを転送する。ユーザがビデオの録画を開始する用意ができると、ユーザはインタフェース要素を選択する。
【0036】
図6Dは、ユーザがインタフェース要素614を選択するときのメディアアップロードオブジェクト610のインタフェースを示す。見てわかるように、ユーザのウェブカムなど、ビデオキャプチャデバイスがオンされる。ビデオキャプチャデバイスは、ユーザがインタフェース要素616を選択するとき、ビデオの録画を開始する。
図6Eは、録画中のビデオを示す。任意の時間に、ユーザはインタフェース要素618を選択することによって録画を停止できる。
図6Fに示されるように、ビデオの録画が停止されると、ユーザは、メディアアップロードオブジェクト610によってインタフェース要素620を介して録画されたビデオのアップロードを要求できる。一実施形態では、ユーザがインタフェース要素620を選択すると、メディアアップロードオブジェクト610は、保管のためのメディアホスティングシステム102に録画したビデオを転送する。別の実施形態では、ビデオキャプチャデバイスが録画している間、メディアアップロードオブジェクト610はメディアホスティングシステム102に作成されるビデオフレームを転送する。ユーザがインタフェース要素620を選択すると、メディアアップロードオブジェクト610は、提供されたビデオフレームに基づいてビデオを作成及び格納するためにメディアホスティングシステム102に通知する。
【0037】
図6Gには、ビデオがメディアホスティングシステム102によって格納されているとき、メディアアップロードオブジェクト610がビデオプレイヤ622を提示し、ユーザが該ビデオプレイヤ622を介して格納されたビデオを再生できるという一実施形態を示す。加えて、インタフェース要素624によって、ユーザは、ビデオのURLがブログポスト中に挿入されることを要求できる。URLを介して、任意のユーザがメディアホスティングシステム102からビデオにアクセスできる。ユーザがインタフェース要素624を選択するとき、メディアアップロードオブジェクト610は、フレーム608とページウィンドウ601の間に作成された通信チャネルを介してページ600にURLを転送する(例えば、URLはフレームからページウィンドウ601にHTML5のpostMessageで転送される)。一旦URLが転送されると、
図6Hに示すように、メディアアップロードオブジェクト610はフレーム608を閉じる。通信チャネルを介してページ600によって受信されるURLによって、URL626がブログポストに挿入され得る。
図6Iには、URLに基づいて、ビデオにアクセスするためのビデオプレイヤがブログポスト628に含まれ得ることを示す。故に、メディアアップロードオブジェクト610とページ600の間の通信チャネルによって、ページ600がURLを受信でき、ポスト628内に該URLを含めることができる。
【0038】
図3は、実施形態による、
図1の環境100に示されたエンティティの1つとして、使用のための典型的なコンピュータシステム300の機能図を示すブロック図である。図示されるのは、チップセット304に接続した少なくとも1つのプロセッサ302である。また、チップセット304に接続されるのは、メモリ306、ストレージデバイス308、キーボード310、グラフィックアダプタ312、ポインティングデバイス314、ネットワークアダプタ316である。ディスプレイ318は、グラフィックアダプタ312に接続される。一実施形態では、チップセット304の機能は、メモリコントローラハブ320及びI/Oコントローラハブ322によって提供される。別の実施形態では、メモリ306がチップセット304の代わりに、プロセッサ302に直接接続される。
【0039】
ストレージデバイス308は、ハードドライブ、コンパクトディスク読み取り専用メモリ(CD-ROM)、又は固体メモリデバイスなどの、非一時的コンピュータ可読記録媒体である。メモリ306は、プロセッサ302によって使用される命令及びデータを保持する。ポインティングデバイス314は、マウス、トラックボール、他のタイプのポインティングデバイスであってよく、コンピュータシステム300にデータを入力するためにキーボード310と組合せて使用する。グラフィックアダプタ312は、ディスプレイ318上に画像及び他の情報を表示する。ネットワークアダプタ316は、コンピュータシステム300をネットワーク110に接続する。コンピュータシステムのいくつかの実施形態は、
図3に示される構成要素とは異なる構成要素及び/又は別の構成要素を有する。例えば、ユーザデバイス106は、追加でメディアキャプチャデバイスを含んでもよい。
【0040】
コンピュータ300は、本明細書に記載される機能を提供するためのコンピュータプログラムモジュールを実行するために適合される。本明細書にて使用されるように、用語「モジュール」は、指定された機能を提供するためのコンピュータプログラム命令及び他のロジックを参照する。モジュールは、ハードウェア、ファームウェア、及び/又はソフトウェアで実装され得る。モジュールは、一般に、ストレージデバイス308上に格納され、メモリ306にロードされ、プロセッサ302によって実行される。
【0041】
モジュールは、1又は複数のプロセッサを含むことができ、及び/又はプロセスの一部のみによって提供され得る。本明細書に記載されるエンティティの実施形態は、本明細書に記載されるモジュールとは別のモジュール及び/又は異なるモジュールを含みうる。加えて、モジュールによる機能は、他の実施形態の別の又は異なるモジュールによって実行され得る。その上、本明細書では、明確性と利便性の目的で、用語「モジュール」を時々省略している。
【0042】
図1のエンティティによって使用されるコンピュータシステム300のタイプは、実施形態及びエンティティによって使用される処理電力に応じて変わり得る。例えば、ユーザデバイス106が携帯電話であれば、一般に処理電力を制限され、小さなディスプレイ318を有し、ポインティングデバイス314を欠いているであろう。対照的に、メディアホスティングシステム102及びパブリッシングシステム104は、本明細書に記載される機能を提供するために、共同して稼働する複数のブレードサーバを含んでよい。
【0043】
図4は、一実施形態によるメディアホスティングシステム102内のモジュールを示すブロック図である。メディアホスティングシステム102は、認証モジュール402、取込みモジュール404、検索モジュール406、アクセスモジュール408、アカウントデータベース410、及びメディアデータベース412を含む。当業者は、他の実施形態が、本明細書に記載されるモジュールとは異なる及び/又は他のモジュールを持ち得ること、及び機能が異なる方法でモジュールのうちに記述され得ることを理解するであろう。
【0044】
認証モジュール402は、メディアホスティングシステム102のユーザを認証する。一実施形態では、認証モジュール402は、アカウントデータベース410中に、メディアホスティングシステム102によって提供されるサービスを使用するためのメディアホスティングシステム102のアカウントを作成(例えば、サインアップ)した各ユーザの認証情報を維持する。一実施形態では、認証情報はユーザ名とパスワードを含む。
【0045】
一実施形態では、ユーザデバイス106は、メディアホスティングシステム102と通信し、あるアクションを実行し、メディアホスティングシステム102はデバイス106のユーザを認証し、ユーザが、メディアホスティングシステム102のアカウントを持っていることを確認する。例えば、メディアホスティングシステム102は、ユーザのデバイス106がメディアアイテムをアップロードするためにメディアホスティングシステム102と通信するとき、ユーザを認証してもよい。
【0046】
ユーザを認証するために、認証モジュール402は、ユーザデバイスのブラウザ108がユーザの認証情報をもつクッキーを含むか否かを確認する。ブラウザ108がクッキーを含む場合、認証モジュール402は、クッキーに含まれる認証情報がユーザのためのアカウントデータベース410に格納された情報に合致することを確認する。ブラウザ108がクッキーを含まない場合、認証モジュール402はインタフェースを提示するための命令をユーザデバイス106に転送し、ユーザは該インタフェースを介して自身の認証情報を提供できる。ユーザがインタフェースを介して認証情報を提供するとき、認証モジュール402は認証情報を確認する。他の実施形態では、ユーザデバイス106がOAuthトークンを提供するなど、ユーザを認証するために他の方法が使用され得る。
【0047】
一実施形態では、ユーザがメディアホスティングシステム102のアカウントを以前に作成したことがなく、アカウントを作成することを要求する場合、ユーザは、サインアッププロセスを経て進む。一実施形態では、サインアッププロセスにおいて、ユーザは、自身の個別の認証情報(例えば、ユーザ名及びパスワード)を選択する。認証情報は、認証モジュール402によってアカウントデータベース410に格納される。
【0048】
取込みモジュール404によって、ユーザは、保管のため及び他のユーザによってアクセス可能にするためにメディアアイテムをアップロードできる。メディアホスティングシステム102が、ページ内にメディアアップロードオブジェクトをロードするための命令の要求をユーザデバイス106から受信するとき、取込みモジュール404はメディアアップロードオブジェクトを含むページ内にフレームを作成するための命令を転送する。メディアアップロードオブジェクトを介して、ユーザは上述したように、メディアアイテムを作成及びアップロードできる。加えて、ユーザはユーザデバイス106上に格納されたメディアアイテムを介してブラウズでき、アップロードするためのメディアアイテムを選択できる。
【0049】
メディアホスティングシステム102がユーザデバイス106によってアップロードされているメディアアイテムのメディアデータの受信を開始すると、取込みモジュール404はメディアデータをバッファリングする。一旦アップロードが完了すると、取込みモジュール404はバッファリングされたメディアデータに基づいてメディアアイテムを作成する。一実施形態では、取込みモジュール404は、メディアアイテムを作成する前に、メディアアイテムを作成するためのユーザデバイス106からの命令を待つ。取込みモジュール404はメディアホスティングシステム102からユーザによってアクセス可能なメディアアイテムを含むメディアデータベース412にメディアアイテムを格納する。取込みモジュール404は、メディアアイテムのためのユニークな識別子を作成し、メディアアイテムとともにメディアデータベース412に識別子を格納する。一実施形態では、取込みモジュール404は、ユーザデバイス106にメディアアイテムの識別子を転送する。取込みモジュール404はまた、メディアアイテムのためにユーザデバイス106から受信したメタデータをメディアデータベース412に格納する。
【0050】
一実施形態では、取込みモジュール404は、アップロードされたメディアアイテムを、デバイス106のユーザのアカウント、又はアカウントデータベース410内のページのパブリッシングシステム104のアカウントと関連付ける。取込みモジュール404は、ユーザデバイス106から受信したメタデータに基づいて、どのアカウントをアイテムと関連付けるかを決定する。一実施形態では、メディアアイテムが関連付けられたエンティティは、メディアアイテムに対して管理者権限を有する。管理者権限は、例えば、アイテムのメタデータを編集することが可能であり、又はメディアデータベース412からアイテムを削除することが可能であることを含む。
【0051】
検索モジュール406は、ユーザデバイス106から受信した検索クエリを処理する。ユーザがメディアアイテムにアクセスするつもりである場合、ユーザはメディアアイテムを識別するのを助けるために検索クエリを送信してもよい。検索クエリが、メディアアイテムに関連するキーワード又はフレーズを含んでもよい。検索クエリがユーザデバイス106から受信されると、検索モジュール406はクエリに合致するメディアアイテムを識別するために、メディアデータベース412に格納されたメディアアイテムのメタデータを検索する。検索モジュール406は検索クエリに最良に合致するメディアアイテムについての情報を含む検索結果を生成する。検索モジュール406は、デバイス106のユーザへの提示のために、ユーザデバイス106に検索結果を転送する。検索結果から、ユーザはメディアデータベース412に格納された特定のメディアアイテムへのアクセスを要求できる。
【0052】
アクセスモジュール408は、メディアアイテムへのアクセス要求を処理する。メディアアイテムへのアクセス要求は、メディアアイテムの識別子を含む。メディアアイテムへのアクセス要求がユーザデバイス106から受信されると、アクセスモジュール408は要求に含まれるメディアアイテムの識別子を識別する。アクセスモジュール408は関連する識別子を有するメディアアイテムをメディアデータベース412内で識別する。アクセスモジュール408はユーザへの提示のために、ユーザデバイス106にメディアアイテムを転送する。一実施形態では、アクセスモジュール408はユーザデバイス106にメディアアイテムをストリームする。メディアアイテムは、メディアプレーヤを介してユーザデバイス106においてユーザに提示される。
【0053】
図5A及び5Bは、一実施形態に従ってメディアアイテムを作成及びアップロードするためのプロセスの相互作用図を示す。相互作用図は、メディアホスティングシステム102、パブリッシングシステム104、及びプロセスの間ユーザデバイス106上にインストールされるブラウザ108によって実行されるステップを示す。当業者は、他の実施形態は
図5A及び5Bのステップを異なる順序で実行できることをわかるであろう。その上、他の実施形態は、本明細書に記載されるステップとは異なるステップ及び/又は本明細書に記載されるステップに追加のステップを含むことができる。
【0054】
図5Aをはじめとして、ブラウザ108は、パブリッシングシステム104にページを要求する(502)。パブリッシングシステム104は、ブラウザ108に要求されたページを転送する(504)。ブラウザ108は、ページに含まれた命令を実行する(506)。命令実行の一部として、ブラウザ108はメディアアップロードオブジェクトをロードするために、メディアホスティングシステム102に命令を要求する(508)。メディアホスティングシステム102はブラウザ108に要求された命令を転送する(510)。ブラウザは、要求された命令を実行し、命令に基づいてページのコンテンツを含むウィンドウ内にフレームを作成する(512)。フレームは、メディアアップロードオブジェクトを含む。ブラウザ108はページウィンドウとフレームの間に通信チャネルを作成する(514)。
【0055】
続いて
図5Bでは、メディアアイテムの作成のためにメディアアップロードオブジェクトを介してユーザによって作成された要求に基づいて、ブラウザ108はメディアアイテムの作成を開始する(516)。メディアアイテムの作成は、例えば、メディアキャプチャデバイスに録画を開始させる命令によって開始されてもよい。ブラウザ108は、メディアホスティングシステム102に作成されているメディアアイテムのメディアデータを転送する(518)。メディアアップロードオブジェクトを介してユーザによって作成された要求に基づいて、ブラウザ108はメディアアイテムの作成を停止する(520)。メディアホスティングシステム102は、受信したメディアデータに基づいてメディアデータを作成し、メディアアイテムを格納する(522)。
【0056】
メディアホスティングシステム102はメディアアップロードオブジェクトに格納されたメディアアイテムのための識別子を転送する(524)。通信チャネルを介して、メディアアップロードオブジェクトはページに識別子を転送する(526)。ブラウザ108は、識別子を含むようにページを更新する(528)。他の実施形態では、メディアアップロードオブジェクトは、フレーム内で発生するイベントをページに通知するために通信チャネルを介してページに追加のメッセージを転送してもよいことを理解すべきである。
【0057】
上記説明のいくつかの部分は、情報に基づく動作のアルゴリズム及びシンボリックな表現を用いて、実施形態の特徴を提示している。これらのアルゴリズム表記及び表現は、他の当業者に研究の主旨を最も効率よく伝えるために、データ処理分野の当業者によって使用される手段である。これらの動作は、機能的に又は論理的に記述される一方、コンピュータプログラムによって実装されることが理解される。さらに、動作のこれらのアレンジをモジュールとして呼ぶ、又は機能名によって呼ぶことは、一般性を失うことなく、時には便利であるという実績もある。
【0058】
具体的に記載された、そうでなければ上述の議論から明らかでない限り、本明細書を通して、「処理する」、「算出する」、「計算する」、「決定する」、又は「表示する」などの用語を利用する議論は、コンピュータシステムメモリ、レジスタ、又は他の情報ストレージデバイス、転送デバイス、又は表示デバイス内に物理的(電気的な)量として表現されるデータを操作・変換する、コンピュータシステム又は同様の電気的コンピューティングデバイスのアクション及び処理と呼ばれることが認められる。
【0059】
実施形態のある態様は、アルゴリズムの形式で本明細書に記載される処理ステップ及び命令を含む。実施形態の処理ステップ及び命令がソフトウェア、ファームウェア、又はハードウェアで具現され得、ソフトウェアで具現されるとき、リアルタイムネットワークオペレーティングシステムによって使用される異なるプラットフォームからダウンロードかつ動作され得ることに留意すべきである。
【0060】
実施形態の開示は、限定するためでなく実施形態の全範囲の説明を目的とし、それにより以降の特許請求の範囲を明らかにする。