(57)【要約】１つのコンテンツソースから記憶されるようにスケジュールされるメディアアセットが、別のコンテンツソースに再スケジュールされていることを効率的に決定するためのシステムおよび方法。例えば、現在受信されているメディアセット（例えば、イベント情報テーブル内のフィールド）を識別する、メディアアセットとともに受信されるデータパケットのコンテンツを調査することによって、セットトップボックスまたは他のユーザ機器デバイス上で実行されるメディアガイドアプリケーションは、記憶されるようにスケジュールされるメディアアセットが、最初にスケジュールされたコンテンツソースから現在伝送されていないことをリアルタイムで決定し得る。【特許請求の範囲】
【請求項１】
１つのコンテンツソースから記憶されるようにスケジュールされるメディアアセットが、別のコンテンツソースからの伝送のために再スケジュールされていることを決定するための方法であって、前記方法は、
第１のコンテンツソースからの伝送のためにスケジュールされる第１のメディアアセットを記憶するユーザ要求を受信することと、
前記第１のコンテンツソースからビデオとともに受信されるデータパケットに基づいて、前記メディアアセットが前記第１のコンテンツソースから現在伝送されているかどうかを決定することと、
前記メディアアセットが前記第１のコンテンツソースから現在伝送されていないことを決定することに応答して、前記メディアアセットが第２のコンテンツソースから現在伝送されていることを示す情報に関して、複数のコンテンツソースから受信されるデータパケットを検索することと、
前記第２のコンテンツソースにアクセスし、前記第１のメディアアセットを記憶することと
を含む、方法。
【請求項２】
１つのコンテンツソースから記憶されるようにスケジュールされるメディアアセットが、別のコンテンツソースからの伝送のために再スケジュールされていることを決定するための方法であって、前記方法は、
スケジュールされた時間間隔中に複数のコンテンツソースのうちの第１のコンテンツソースから第１のメディアアセットを記憶するユーザ要求を受信することと、
データ構造へのエントリとして、前記スケジュールされた時間間隔中に前記第１のコンテンツソースから前記第１のメディアアセットを記憶する前記ユーザ要求を記憶することであって、前記エントリは、現在のコンテンツソースを示す第１のフィールドを含む、ことと、
前記スケジュールされた時間間隔中に、
前記第１のコンテンツソースからビデオとともに受信されるデータパケットを監視することと、
前記監視されたデータパケットから第１のメディアアセットインジケータを抽出することと、
前記抽出された第１のメディアアセットインジケータを前記第１のメディアアセットの識別子と比較することと、
前記抽出されたメディアアセットインジケータが前記第１のメディアアセットの識別子に対応しないことを決定することに応答して、前記第１のメディアアセットの識別子に対応する第２のメディアアセットインジケータを含む第２のデータパケットに関して、前記複数のコンテンツソース上で受信されるデータパケットを検索することと、
前記複数のコンテンツソースのうちの第２のコンテンツソースから受信される前記第２のデータパケットが、前記第１のメディアアセットの識別子に対応する前記第２のメディアアセットインジケータを含むことを決定することに応答して、前記記憶されたエントリの第１のフィールド内の前記現在のコンテンツソースを更新し、前記第１のメディアアセットが前記第２のコンテンツソースから伝送されていることを示すことと、
前記記憶されたエントリの第１のフィールド内に示される前記現在のコンテンツソースから前記第１のメディアアセットを記憶することと
を含む、方法。
【請求項３】
前記スケジュールされた時間間隔外の第１の時間間隔中に、
前記第１のコンテンツソースから前記ビデオとともに受信される前記データパケットを監視することと、
前記監視されたデータパケットから前記第１のメディアアセットインジケータを抽出することと、
前記抽出された第１のメディアアセットインジケータを前記第１のメディアアセットの識別子と比較することと、
前記抽出された第１のメディアアセットインジケータが前記第１のメディアアセットの識別子に対応することを決定することに応答して、前記記憶されたエントリの第１のフィールド内に示される前記第１のコンテンツソースから前記第１のメディアアセットを記憶することと
をさらに含む、請求項２に記載の方法。
【請求項４】
前記第１のメディアアセットの識別子に対応する前記第２のメディアアセットインジケータを含む前記第２のデータパケットに関して、前記複数のコンテンツソース上で受信される前記データパケットを検索することは、
複数のコンテンツソースのための情報を含有するデータベースにアクセスすることであって、前記情報は、前記複数のコンテンツソースのうちの各コンテンツソースに類似する前記複数のコンテンツソースのサブセットのインジケーションを含む、ことと、
前記第１のコンテンツソースと関連付けられる前記データベース内のフィールドから、前記第２のコンテンツソースが前記第１のコンテンツソースに類似するというインジケーションを読み出すことと、
前記第１のメディアアセットの識別子に対応する前記第２のメディアアセットインジケータに関して、前記第２のコンテンツソースからのデータパケットを検索することと
を含む、請求項２に記載の方法。
【請求項５】
前記監視されたデータパケットから前記第１のメディアアセットインジケータを抽出することは、
前記第１のコンテンツソースからの前記ビデオに関連する情報を含有するテーブルを受信することと、
前記第１のメディアアセットインジケータに対応する前記テーブル内のフィールドから値を読み出すことと
を含む、請求項２に記載の方法。
【請求項６】
前記抽出された第１のメディアアセットインジケータを前記第１のメディアアセットの識別子と比較することは、
前記ユーザ要求を用いて、前記第１のメディアアセットの識別子を記憶することと、
前記第１のメディアアセットの識別子の文字を前記抽出された第１のメディアアセットインジケータの文字と比較することと
を含む、請求項２に記載の方法。
【請求項７】
前記記憶された第１のメディアアセットは、前記第２のコンテンツソースからの前記第１のメディアアセットの第１のセグメントであり、
前記第１のコンテンツソースから受信される前記第１のメディアアセットの第２のセグメントを記憶することと、
前記第１のセグメントおよび前記第２のセグメントを単一の記憶されたファイルにスティッチングすることと、
前記単一の記憶されたファイルの中に、前記単一の記憶されたファイルが前記第１のコンテンツソースおよび前記第２のコンテンツソースから作成されたというインジケーションを記憶することと
をさらに含む、請求項２に記載の方法。
【請求項８】
前記第１のセグメントおよび前記第２のセグメントを前記単一の記憶されたファイルにスティッチングすることは、
前記第１のセグメントとともに記憶されたメタデータから前記第１のセグメントのための第１のタイムスタンプを抽出することと、
前記第２のセグメントとともに記憶されたメタデータから前記第２のセグメントのための第２のタイムスタンプを抽出することと、
前記第１のタイムスタンプおよび前記第２のタイムスタンプを比較し、早い方を決定することと、
前記第１のタイムスタンプがより早いことを決定することに応答して、前記第２のセグメントを前記第１のセグメントの終わりに追加することと
を含む、請求項７に記載の方法。
【請求項９】
前記記憶された第１のメディアアセットの持続時間を前記スケジュールされた時間間隔と比較することと、
前記記憶された第１のメディアアセットの持続時間が前記スケジュールされた時間間隔よりも短いことを決定することに応答して、
前記記憶された第１のメディアアセットの持続時間と前記スケジュールされた時間間隔との間の差を閾値差と比較することと、
前記記憶された第１のメディアアセットの持続時間と前記スケジュールされた時間間隔との間の前記差が前記閾値差を満たすことを決定することに応答して、前記記憶された第１のメディアアセットが完全ではないことを決定することと
をさらに含む、請求項２に記載の方法。
【請求項１０】
前記記憶されたメディアアセットの持続時間と前記スケジュールされた時間間隔との間の前記差が前記閾値差を満たすことを決定することに応答して、
メディアガイドデータベースから読み出されるメディアアセット一覧から、前記第１のメディアアセットが将来の時間に利用可能であるかどうかを決定することと、
前記第１のメディアアセットが第３のコンテンツソースから将来の時間に利用可能であることを決定することに応答して、前記第３のコンテンツソースから前記第１のメディアアセットを記憶する第２の要求を記憶することと
をさらに含む、請求項９に記載の方法。
【請求項１１】
前記第３のコンテンツソースから前記第１のメディアアセットを記憶する前記第２の要求を記憶することは、
前記記憶されたメディアアセットの複数のフレームのうちのフレーム毎に記憶されるメタデータから、前記複数のフレームのうちの各フレームと関連付けられる時間を読み出すことと、
前記第１のメディアアセットの一部が第１のフレームと第２のフレームとの間で欠落していることを決定することと、
前記第２の要求を用いて、前記第１のメディアアセットの第１の部分のみを記憶する命令を記憶することと
を含む、請求項１０に記載の方法。
【請求項１２】
１つのコンテンツソースから記憶されるようにスケジュールされるメディアアセットが、別のコンテンツソースからの伝送のために再スケジュールされていることを決定するためのシステムであって、前記システムは、
記憶回路と、
制御回路であって、
スケジュールされた時間間隔中に複数のコンテンツソースのうちの第１のコンテンツソースから第１のメディアアセットを記憶するユーザ要求を受信することと、
データ構造へのエントリとして、前記スケジュールされた時間間隔中に前記第１のコンテンツソースから前記第１のメディアアセットを記憶する前記ユーザ要求を記憶することであって、前記エントリは、現在のコンテンツソースを示す第１のフィールドを含む、ことと、
前記スケジュールされた時間間隔中に、
前記第１のコンテンツソースからビデオとともに受信されるデータパケットを監視することと、
前記監視されたデータパケットから第１のメディアアセットインジケータを抽出することと、
前記抽出された第１のメディアアセットインジケータを前記第１のメディアアセットの識別子と比較することと、
前記抽出されたメディアアセットインジケータが前記第１のメディアアセットの識別子に対応しないことを決定することに応答して、前記第１のメディアアセットの識別子に対応する第２のメディアアセットインジケータを含む第２のデータパケットに関して、前記複数のコンテンツソース上で受信されるデータパケットを検索することと、
前記複数のコンテンツソースのうちの第２のコンテンツソースから受信される前記第２のデータパケットが、前記第１のメディアアセットの識別子に対応する前記第２のメディアアセットインジケータを含むことを決定することに応答して、前記記憶されたエントリの第１のフィールド内の前記現在のコンテンツソースを更新し、前記第１のメディアアセットが前記第２のコンテンツソースから伝送されていることを示すことと、
前記記憶されたエントリの第１のフィールド内に示される前記現在のコンテンツソースから前記第１のメディアアセットを記憶することと
を行うように構成される、制御回路と
を備える、システム。
【請求項１３】
前記制御回路はさらに、
前記スケジュールされた時間間隔外の第１の時間間隔中に、
前記第１のコンテンツソースから前記ビデオとともに受信される前記データパケットを監視することと、
前記監視されたデータパケットから前記第１のメディアアセットインジケータを抽出することと、
前記抽出された第１のメディアアセットインジケータを前記第１のメディアアセットの識別子と比較することと、
前記抽出された第１のメディアアセットインジケータが前記第１のメディアアセットの識別子に対応することを決定することに応答して、前記記憶されたエントリの第１のフィールド内に示される前記第１のコンテンツソースから前記第１のメディアアセットを記憶することと
を行うように構成される、請求項１２に記載のシステム。
【請求項１４】
前記第１のメディアアセットの識別子に対応する前記第２のメディアアセットインジケータを含む前記第２のデータパケットに関して、前記複数のコンテンツソース上で受信される前記データパケットを検索するように構成される、前記制御回路はさらに、
複数のコンテンツソースのための情報を含有するデータベースにアクセスすることであって、前記情報は、前記複数のコンテンツソースのうちの各コンテンツソースに類似する前記複数のコンテンツソースのサブセットのインジケーションを含む、ことと、
前記第１のコンテンツソースと関連付けられる前記データベース内のフィールドから、前記第２のコンテンツソースが前記第１のコンテンツソースに類似するというインジケーションを読み出すことと、
前記第１のメディアアセットの識別子に対応する前記第２のメディアアセットインジケータに関して、前記第２のコンテンツソースからのデータパケットを検索することと
を行うように構成される、請求項１２に記載のシステム。
【請求項１５】
前記監視されたデータパケットから前記第１のメディアアセットインジケータを抽出するように構成される、前記制御回路はさらに、
前記第１のコンテンツソースからの前記ビデオに関連する情報を含有するテーブルを受信することと、
前記第１のメディアアセットインジケータに対応する前記テーブル内のフィールドから値を読み出すことと
を行うように構成される、請求項１２に記載のシステム。
【請求項１６】
前記抽出された第１のメディアアセットインジケータを前記第１のメディアアセットの識別子と比較するように構成される、前記制御回路はさらに、
前記ユーザ要求を用いて、前記第１のメディアアセットの識別子を記憶することと、
前記第１のメディアアセットの識別子の文字を前記抽出された第１のメディアアセットインジケータの文字と比較することと
を行うように構成される、請求項１２に記載のシステム。
【請求項１７】
前記記憶された第１のメディアアセットは、前記第２のコンテンツソースからの前記第１のメディアアセットの第１のセグメントであり、前記制御回路はさらに、
前記第１のコンテンツソースから受信される前記第１のメディアアセットの第２のセグメントを記憶することと、
前記第１のセグメントおよび前記第２のセグメントを単一の記憶されたファイルにスティッチングすることと、
前記単一の記憶されたファイルの中に、前記単一の記憶されたファイルが前記第１のコンテンツソースおよび前記第２のコンテンツソースから作成されたというインジケーションを記憶することと
を行うように構成される、請求項１２に記載のシステム。
【請求項１８】
前記第１のセグメントおよび前記第２のセグメントを前記単一の記憶されたファイルにスティッチングするように構成される、前記制御回路はさらに、
前記第１のセグメントとともに記憶されたメタデータから前記第１のセグメントのための第１のタイムスタンプを抽出することと、
前記第２のセグメントとともに記憶されたメタデータから前記第２のセグメントのための第２のタイムスタンプを抽出することと、
前記第１のタイムスタンプおよび前記第２のタイムスタンプを比較し、早い方を決定することと、
前記第１のタイムスタンプがより早いことを決定することに応答して、前記第２のセグメントを前記第１のセグメントの終わりに追加することと
を行うように構成される、請求項１７に記載のシステム。
【請求項１９】
前記制御回路はさらに、
前記記憶された第１のメディアアセットの持続時間を前記スケジュールされた時間間隔と比較することと、
前記記憶された第１のメディアアセットの持続時間が前記スケジュールされた時間間隔よりも短いことを決定することに応答して、
前記記憶された第１のメディアアセットの持続時間と前記スケジュールされた時間間隔との間の差を閾値差と比較することと、
前記記憶された第１のメディアアセットの持続時間と前記スケジュールされた時間間隔との間の前記差が前記閾値差を満たすことを決定することに応答して、前記記憶された第１のメディアアセットが完全ではないことを決定することと
を行うように構成される、請求項１２に記載のシステム。
【請求項２０】
前記制御回路はさらに、
前記記憶されたメディアアセットの持続時間と前記スケジュールされた時間間隔との間の前記差が前記閾値差を満たすことを決定することに応答して、
メディアガイドデータベースから読み出されるメディアアセット一覧から、前記第１のメディアアセットが将来の時間に利用可能であるかどうかを決定することと、
前記第１のメディアアセットが第３のコンテンツソースから将来の時間に利用可能であることを決定することに応答して、前記第３のコンテンツソースから前記第１のメディアアセットを記憶する第２の要求を記憶することと
を行うように構成される、請求項１９に記載のシステム。
【請求項２１】
前記第３のコンテンツソースから前記第１のメディアアセットを記憶する前記第２の要求を記憶するように構成される、前記制御回路はさらに、
前記記憶されたメディアアセットの複数のフレームのうちのフレーム毎に記憶されるメタデータから、前記複数のフレームのうちの各フレームと関連付けられる時間を読み出すことと、
前記第１のメディアアセットの一部が第１のフレームと第２のフレームとの間で欠落していることを決定することと、
前記第２の要求を用いて、前記第１のメディアアセットの第１の部分のみを記憶する命令を記憶することと
を行うように構成される、請求項２０に記載のシステム。
【請求項２２】
１つのコンテンツソースから記憶されるようにスケジュールされるメディアアセットが、別のコンテンツソースからの伝送のために再スケジュールされていることを決定するためのシステムであって、前記システムは、
スケジュールされた時間間隔中に複数のコンテンツソースのうちの第１のコンテンツソースから第１のメディアアセットを記憶するユーザ要求を受信するための手段と、
データ構造へのエントリとして、前記スケジュールされた時間間隔中に前記第１のコンテンツソースから前記第１のメディアアセットを記憶する前記ユーザ要求を記憶するための手段であって、前記エントリは、現在のコンテンツソースを示す第１のフィールドを含む、手段と、
前記スケジュールされた時間間隔中に、
前記第１のコンテンツソースからビデオとともに受信されるデータパケットを監視するための手段と、
前記監視されたデータパケットから第１のメディアアセットインジケータを抽出するための手段と、
前記抽出された第１のメディアアセットインジケータを前記第１のメディアアセットの識別子と比較するための手段と、
前記抽出されたメディアアセットインジケータが前記第１のメディアアセットの識別子に対応しないことを決定することに応答して、前記第１のメディアアセットの識別子に対応する第２のメディアアセットインジケータを含む第２のデータパケットに関して、前記複数のコンテンツソース上で受信されるデータパケットを検索するための手段と、
前記複数のコンテンツソースのうちの第２のコンテンツソースから受信される前記第２のデータパケットが、前記第１のメディアアセットの識別子に対応する前記第２のメディアアセットインジケータを含むことを決定することに応答して、前記記憶されたエントリの第１のフィールド内の前記現在のコンテンツソースを更新し、前記第１のメディアアセットが前記第２のコンテンツソースから伝送されていることを示すための手段と、
前記記憶されたエントリの第１のフィールド内に示される前記現在のコンテンツソースから前記第１のメディアアセットを記憶するための手段と
を備える、システム。
【請求項２３】
前記スケジュールされた時間間隔外の第１の時間間隔中に、
前記第１のコンテンツソースから前記ビデオとともに受信される前記データパケットを監視するための手段と、
前記監視されたデータパケットから前記第１のメディアアセットインジケータを抽出するための手段と、
前記抽出された第１のメディアアセットインジケータを前記第１のメディアアセットの識別子と比較するための手段と、
前記抽出された第１のメディアアセットインジケータが前記第１のメディアアセットの識別子に対応することを決定することに応答して、前記記憶されたエントリの第１のフィールド内に示される前記第１のコンテンツソースから前記第１のメディアアセットを記憶するための手段と
をさらに備える、請求項２２に記載のシステム。
【請求項２４】
前記第１のメディアアセットの識別子に対応する前記第２のメディアアセットインジケータを含む前記第２のデータパケットに関して、前記複数のコンテンツソース上で受信される前記データパケットを検索するための前記手段は、
複数のコンテンツソースのための情報を含有するデータベースにアクセスするための手段であって、前記情報は、前記複数のコンテンツソースのうちの各コンテンツソースに類似する前記複数のコンテンツソースのサブセットのインジケーションを含む、手段と、
前記第１のコンテンツソースと関連付けられる前記データベース内のフィールドから、前記第２のコンテンツソースが前記第１のコンテンツソースに類似するというインジケーションを読み出すための手段と、
前記第１のメディアアセットの識別子に対応する前記第２のメディアアセットインジケータに関して、前記第２のコンテンツソースからのデータパケットを検索するための手段と
を備える、請求項２２に記載のシステム。
【請求項２５】
前記監視されたデータパケットから前記第１のメディアアセットインジケータを抽出するための前記手段は、
前記第１のコンテンツソースからの前記ビデオに関連する情報を含有するテーブルを受信するための手段と、
前記第１のメディアアセットインジケータに対応する前記テーブル内のフィールドから値を読み出すための手段と
を備える、請求項２２に記載のシステム。
【請求項２６】
前記抽出された第１のメディアアセットインジケータを前記第１のメディアアセットの識別子と比較するための前記手段は、
前記ユーザ要求を用いて、前記第１のメディアアセットの識別子を記憶するための手段と、
前記第１のメディアアセットの識別子の文字を前記抽出された第１のメディアアセットインジケータの文字と比較するための手段と
を備える、請求項２２に記載のシステム。
【請求項２７】
前記記憶された第１のメディアアセットは、前記第２のコンテンツソースからの前記第１のメディアアセットの第１のセグメントであり、
前記第１のコンテンツソースから受信される前記第１のメディアアセットの第２のセグメントを記憶するための手段と、
前記第１のセグメントおよび前記第２のセグメントを単一の記憶されたファイルにスティッチングするための手段と、
前記単一の記憶されたファイルの中に、前記単一の記憶されたファイルが前記第１のコンテンツソースおよび前記第２のコンテンツソースから作成されたというインジケーションを記憶するための手段と
をさらに備える、請求項２２に記載のシステム。
【請求項２８】
前記第１のセグメントおよび前記第２のセグメントを前記単一の記憶されたファイルにスティッチングするための前記手段は、
前記第１のセグメントとともに記憶されたメタデータから前記第１のセグメントのための第１のタイムスタンプを抽出するための手段と、
前記第２のセグメントとともに記憶されたメタデータから前記第２のセグメントのための第２のタイムスタンプを抽出するための手段と、
前記第１のタイムスタンプおよび前記第２のタイムスタンプを比較し、早い方を決定するための手段と、
前記第１のタイムスタンプがより早いことを決定することに応答して、前記第２のセグメントを前記第１のセグメントの終わりに追加するための手段と
を備える、請求項２７に記載のシステム。
【請求項２９】
前記記憶された第１のメディアアセットの持続時間を前記スケジュールされた時間間隔と比較するための手段と、
前記記憶された第１のメディアアセットの持続時間が前記スケジュールされた時間間隔よりも短いことを決定することに応答して、
前記記憶された第１のメディアアセットの持続時間と前記スケジュールされた時間間隔との間の差を閾値差と比較するための手段と、
前記記憶された第１のメディアアセットの持続時間と前記スケジュールされた時間間隔との間の前記差が前記閾値差を満たすことを決定することに応答して、前記記憶された第１のメディアアセットが完全ではないことを決定するための手段と
をさらに備える、請求項２２に記載のシステム。
【請求項３０】
前記記憶されたメディアアセットの持続時間と前記スケジュールされた時間間隔との間の前記差が前記閾値差を満たすことを決定することに応答して、
メディアガイドデータベースから読み出されるメディアアセット一覧から、前記第１のメディアアセットが将来の時間に利用可能であるかどうかを決定するための手段と、
前記第１のメディアアセットが第３のコンテンツソースから将来の時間に利用可能であることを決定することに応答して、前記第３のコンテンツソースから前記第１のメディアアセットを記憶する第２の要求を記憶するための手段と
をさらに備える、請求項２９に記載のシステム。
【請求項３１】
前記第３のコンテンツソースから前記第１のメディアアセットを記憶する前記第２の要求を記憶するための前記手段は、
前記記憶されたメディアアセットの複数のフレームのうちのフレーム毎に記憶されるメタデータから、前記複数のフレームのうちの各フレームと関連付けられる時間を読み出すための手段と、
前記第１のメディアアセットの一部が第１のフレームと第２のフレームとの間で欠落していることを決定するための手段と、
前記第２の要求を用いて、前記第１のメディアアセットの第１の部分のみを記憶する命令を記憶するための手段と
を備える、請求項３０に記載のシステム。
【請求項３２】
非一過性のコンピュータ可読媒体であって、前記非一過性のコンピュータ可読媒体は、１つのコンテンツソースから記憶されるようにスケジュールされるメディアアセットが、別のコンテンツソースからの伝送のために再スケジュールされていることを決定するための前記非一過性のコンピュータ可読媒体上にエンコードされる命令を有しており、前記命令は、
スケジュールされた時間間隔中に複数のコンテンツソースのうちの第１のコンテンツソースから第１のメディアアセットを記憶するユーザ要求を受信するための命令と、
データ構造へのエントリとして、前記スケジュールされた時間間隔中に前記第１のコンテンツソースから前記第１のメディアアセットを記憶する前記ユーザ要求を記憶するための命令であって、前記エントリは、現在のコンテンツソースを示す第１のフィールドを含む、命令と、
前記スケジュールされた時間間隔中に、
前記第１のコンテンツソースからビデオとともに受信されるデータパケットを監視するための命令と、
前記監視されたデータパケットから第１のメディアアセットインジケータを抽出するための命令と、
前記抽出された第１のメディアアセットインジケータを前記第１のメディアアセットの識別子と比較するための命令と、
前記抽出されたメディアアセットインジケータが前記第１のメディアアセットの識別子に対応しないことを決定することに応答して、前記第１のメディアアセットの識別子に対応する第２のメディアアセットインジケータを含む第２のデータパケットに関して、前記複数のコンテンツソース上で受信されるデータパケットを検索するための命令と、
前記複数のコンテンツソースのうちの第２のコンテンツソースから受信される前記第２のデータパケットが、前記第１のメディアアセットの識別子に対応する前記第２のメディアアセットインジケータを含むことを決定することに応答して、前記記憶されたエントリの第１のフィールド内の前記現在のコンテンツソースを更新し、前記第１のメディアアセットが前記第２のコンテンツソースから伝送されていることを示すための命令と、
前記記憶されたエントリの第１のフィールド内に示される前記現在のコンテンツソースから前記第１のメディアアセットを記憶するための命令と
を備える、非一過性のコンピュータ可読媒体。
【請求項３３】
前記命令はさらに、
前記スケジュールされた時間間隔外の第１の時間間隔中に、
前記第１のコンテンツソースから前記ビデオとともに受信される前記データパケットを監視するための命令と、
前記監視されたデータパケットから前記第１のメディアアセットインジケータを抽出するための命令と、
前記抽出された第１のメディアアセットインジケータを前記第１のメディアアセットの識別子と比較するための命令と、
前記抽出された第１のメディアアセットインジケータが前記第１のメディアアセットの識別子に対応することを決定することに応答して、前記記憶されたエントリの第１のフィールド内に示される前記第１のコンテンツソースから前記第１のメディアアセットを記憶するための命令と
を備える、請求項３２に記載の非一過性のコンピュータ可読媒体。
【請求項３４】
前記第１のメディアアセットの識別子に対応する前記第２のメディアアセットインジケータを含む前記第２のデータパケットに関して、前記複数のコンテンツソース上で受信される前記データパケットを検索するための前記命令は、
複数のコンテンツソースのための情報を含有するデータベースにアクセスするための命令であって、前記情報は、前記複数のコンテンツソースのうちの各コンテンツソースに類似する前記複数のコンテンツソースのサブセットのインジケーションを含む、命令と、
前記第１のコンテンツソースと関連付けられる前記データベース内のフィールドから、前記第２のコンテンツソースが前記第１のコンテンツソースに類似するというインジケーションを読み出すための命令と、
前記第１のメディアアセットの識別子に対応する前記第２のメディアアセットインジケータに関して、前記第２のコンテンツソースからのデータパケットを検索するための命令と
を備える、請求項３２に記載の非一過性のコンピュータ可読媒体。
【請求項３５】
前記監視されたデータパケットから前記第１のメディアアセットインジケータを抽出するための前記命令は、
前記第１のコンテンツソースからの前記ビデオに関連する情報を含有するテーブルを受信するための命令と、
前記第１のメディアアセットインジケータに対応する前記テーブル内のフィールドから値を読み出すための命令と
を備える、請求項３２に記載の非一過性のコンピュータ可読媒体。
【請求項３６】
前記抽出された第１のメディアアセットインジケータを前記第１のメディアアセットの識別子と比較するための前記命令は、
前記ユーザ要求を用いて、前記第１のメディアアセットの識別子を記憶するための命令と、
前記第１のメディアアセットの識別子の文字を前記抽出された第１のメディアアセットインジケータの文字と比較するための命令と
を備える、請求項３２に記載の非一過性のコンピュータ可読媒体。
【請求項３７】
前記記憶された第１のメディアアセットは、前記第２のコンテンツソースからの前記第１のメディアアセットの第１のセグメントであり、前記命令はさらに、
前記第１のコンテンツソースから受信される前記第１のメディアアセットの第２のセグメントを記憶するための命令と、
前記第１のセグメントおよび前記第２のセグメントを単一の記憶されたファイルにスティッチングするための命令と、
前記単一の記憶されたファイルの中に、前記単一の記憶されたファイルが前記第１のコンテンツソースおよび前記第２のコンテンツソースから作成されたというインジケーションを記憶するための命令と
を備える、請求項３２に記載の非一過性のコンピュータ可読媒体。
【請求項３８】
前記第１のセグメントおよび前記第２のセグメントを前記単一の記憶されたファイルにスティッチングするための前記命令は、
前記第１のセグメントとともに記憶されたメタデータから前記第１のセグメントのための第１のタイムスタンプを抽出するための命令と、
前記第２のセグメントとともに記憶されたメタデータから前記第２のセグメントのための第２のタイムスタンプを抽出するための命令と、
前記第１のタイムスタンプおよび前記第２のタイムスタンプを比較し、早い方を決定するための命令と、
前記第１のタイムスタンプがより早いことを決定することに応答して、前記第２のセグメントを前記第１のセグメントの終わりに追加するための命令と
を備える、請求項３７に記載の非一過性のコンピュータ可読媒体。
【請求項３９】
前記命令はさらに、
前記記憶された第１のメディアアセットの持続時間を前記スケジュールされた時間間隔と比較するための命令と、
前記記憶された第１のメディアアセットの持続時間が前記スケジュールされた時間間隔よりも短いことを決定することに応答して、
前記記憶された第１のメディアアセットの持続時間と前記スケジュールされた時間間隔との間の差を閾値差と比較するための命令と、
前記記憶された第１のメディアアセットの持続時間と前記スケジュールされた時間間隔との間の前記差が前記閾値差を満たすことを決定することに応答して、前記記憶された第１のメディアアセットが完全ではないことを決定するための命令と
を備える、請求項３２に記載の非一過性のコンピュータ可読媒体。
【請求項４０】
前記命令はさらに、
前記記憶されたメディアアセットの持続時間と前記スケジュールされた時間間隔との間の前記差が前記閾値差を満たすことを決定することに応答して、
メディアガイドデータベースから読み出されるメディアアセット一覧から、前記第１のメディアアセットが将来の時間に利用可能であるかどうかを決定するための命令と、
前記第１のメディアアセットが第３のコンテンツソースから将来の時間に利用可能であることを決定することに応答して、前記第３のコンテンツソースから前記第１のメディアアセットを記憶する第２の要求を記憶するための命令と
を備える、請求項３９に記載の非一過性のコンピュータ可読媒体。
【請求項４１】
前記第３のコンテンツソースから前記第１のメディアアセットを記憶する前記第２の要求を記憶するための前記命令は、
前記記憶されたメディアアセットの複数のフレームのうちのフレーム毎に記憶されるメタデータから、前記複数のフレームのうちの各フレームと関連付けられる時間を読み出すための命令と、
前記第１のメディアアセットの一部が第１のフレームと第２のフレームとの間で欠落していることを決定するための命令と、
前記第２の要求を用いて、前記第１のメディアアセットの第１の部分のみを記憶する命令を記憶するための命令と
を備える、請求項３０に記載の非一過性のコンピュータ可読媒体。
【請求項４２】
１つのコンテンツソースから記憶されるようにスケジュールされるメディアアセットが、別のコンテンツソースからの伝送のために再スケジュールされていることを決定するための方法であって、前記方法は、
スケジュールされた時間間隔中に複数のコンテンツソースのうちの第１のコンテンツソースから第１のメディアアセットを記憶するユーザ要求を受信することと、
前記スケジュールされた時間間隔中に、
前記第１のコンテンツソースからビデオとともに受信されるデータパケットを監視することと、
前記監視されたデータパケットから第１のメディアアセットインジケータを抽出することと、
前記抽出された第１のメディアアセットインジケータを前記第１のメディアアセットの識別子と比較することと、
前記抽出されたメディアアセットインジケータが前記第１のメディアアセットの識別子に対応しないことを決定することに応答して、前記第１のメディアアセットの識別子に対応する第２のメディアアセットインジケータを含む第２のデータパケットに関して、前記複数のコンテンツソース上で受信されるデータパケットを検索することと、
前記複数のコンテンツソースのうちの第２のコンテンツソースから受信される前記第２のデータパケットが、前記第１のメディアアセットの識別子に対応する前記第２のメディアアセットインジケータを含むことを決定することに応答して、前記第２のコンテンツソースから受信される前記第１のメディアアセットを記憶することと
を含む、方法。
【請求項４３】
前記スケジュールされた時間間隔外の第１の時間間隔中に、
前記第１のコンテンツソースから前記ビデオとともに受信される前記データパケットを監視することと、
前記監視されたデータパケットから前記第１のメディアアセットインジケータを抽出することと、
前記抽出された第１のメディアアセットインジケータを前記第１のメディアアセットの識別子と比較することと、
前記抽出された第１のメディアアセットインジケータが前記第１のメディアアセットの識別子に対応することを決定することに応答して、前記第１のコンテンツソースから前記第１のメディアアセットを記憶することと
をさらに含む、請求項４２に記載の方法。
【請求項４４】
複数のコンテンツソースのための情報を含有するデータベースにアクセスすることであって、前記情報は、前記複数のコンテンツソースのうちの各コンテンツソースに類似する前記複数のコンテンツソースのサブセットのインジケーションを含む、ことと、
前記第１のコンテンツソースと関連付けられる前記データベース内のフィールドから、前記第２のコンテンツソースが前記第１のコンテンツソースに類似するというインジケーションを読み出すことと、
前記第１のメディアアセットの識別子に対応する前記第２のメディアアセットインジケータに関して、前記第２のコンテンツソースからのデータパケットを検索することと
をさらに含む、請求項４２−４３のいずれかに記載の方法。
【請求項４５】
前記第１のコンテンツソースからの前記ビデオに関連する情報を含有するテーブルを受信することと、
前記第１のメディアアセットインジケータに対応する前記テーブル内のフィールドから値を読み出すことと
をさらに含む、請求項４２−４４のいずれかに記載の方法。
【請求項４６】
前記ユーザ要求を用いて、前記第１のメディアアセットの識別子を記憶することと、
前記第１のメディアアセットの識別子の文字を前記抽出された第１のメディアアセットインジケータの文字と比較することと
をさらに含む、請求項４２−４５のいずれかに記載の方法。
【請求項４７】
前記第１のコンテンツソースから受信される前記第１のメディアアセットの第２のセグメントを記憶することと、
前記第１のセグメントおよび前記第２のセグメントを単一の記憶されたファイルにスティッチングすることと、
前記単一の記憶されたファイルの中に、前記単一の記憶されたファイルが前記第１のコンテンツソースおよび前記第２のコンテンツソースから作成されたというインジケーションを記憶することと
をさらに含む、請求項４２−４６のいずれかに記載の方法。
【請求項４８】
前記第１のセグメントとともに記憶されたメタデータから前記第１のセグメントのための第１のタイムスタンプを抽出することと、
前記第２のセグメントとともに記憶されたメタデータから前記第２のセグメントのための第２のタイムスタンプを抽出することと、
前記第１のタイムスタンプおよび前記第２のタイムスタンプを比較し、早い方を決定することと、
前記第１のタイムスタンプがより早いことを決定することに応答して、前記第２のセグメントを前記第１のセグメントの終わりに追加することと
をさらに含む、請求項４７に記載の方法。
【請求項４９】
前記記憶された第１のメディアアセットの持続時間を前記スケジュールされた時間間隔と比較することと、
前記記憶された第１のメディアアセットの持続時間が前記スケジュールされた時間間隔よりも短いことを決定することに応答して、
前記記憶された第１のメディアアセットの持続時間と前記スケジュールされた時間間隔との間の差を閾値差と比較することと、
前記記憶された第１のメディアアセットの持続時間と前記スケジュールされた時間間隔との間の前記差が前記閾値差を満たすことを決定することに応答して、前記記憶された第１のメディアアセットが完全ではないことを決定することと
をさらに含む、請求項４２−４８のいずれかに記載の方法。
【請求項５０】
前記記憶されたメディアアセットの持続時間と前記スケジュールされた時間間隔との間の前記差が前記閾値差を満たすことを決定することに応答して、
メディアガイドデータベースから読み出されるメディアアセット一覧から、前記第１のメディアアセットが将来の時間に利用可能であるかどうかを決定することと、
前記第１のメディアアセットが第３のコンテンツソースから将来の時間に利用可能であることを決定することに応答して、前記第３のコンテンツソースから前記第１のメディアアセットを記憶する第２の要求を記憶することと
をさらに含む、請求項４９に記載の方法。
【請求項５１】
前記第３のコンテンツソースから前記第１のメディアアセットを記憶する前記第２の要求を記憶することは、
前記記憶されたメディアアセットの複数のフレームのうちのフレーム毎に記憶されるメタデータから、前記複数のフレームのうちの各フレームと関連付けられる時間を読み出すことと、
前記第１のメディアアセットの一部が第１のフレームと第２のフレームとの間で欠落していることを決定することと、
前記第２の要求を用いて、前記第１のメディアアセットの第１の部分のみを記憶する命令を記憶することと
を含む、請求項５０に記載の方法。
【発明の詳細な説明】
【背景技術】
【０００１】
メディアがそれを通して消費者に配信されることができる、コンテンツソースの多種多様性および数を考慮すると、コンテンツプロバイダは、多くの場合、番組を異なるコンテンツソースに移動させ、それらのコンテンツを視聴する視聴者の数を最適化する。例えば、コンテンツプロバイダは、専門ケーブルチャネル（例えば、ＮＢＣＳＮ）上に１つの番組をスケジュールし得るが、コンテンツプロバイダによって予想されるよりも大きい番組への関心（例えば、大規模なソーシャルメディアのフォロー）に起因して、これは、より多くの視聴者が受信するコンテンツソース上で（例えば、ＮＢＣ上で）、および／または異なる時間に、全国的に伝送され得る。番組が開始するようにスケジュールされるよりもかなり前にスケジュール変更（例えば、番組が異なるチャネルおよび／または時間に移動した）が決定される、本状況では、コンテンツプロバイダは、次いで、セットトップボックスまたは他のユーザデバイスに授与される（例えば、番組一覧データベースからダウンロードされる）、番組一覧データベースを更新し、ユーザが利用可能な正しいコンテンツについて知らされることを確実にし得る。ユーザが記憶されるように番組をスケジュールした場合、録画能力を伴うセットトップボックスは、受信されたスケジュール変更情報に基づいて、正しいソースから番組を自動的に記憶し得る。しかしながら、特定の番組がリアルタイムで異なるチャネルに再スケジュールされる、または「上げられる」、第２の状況が存在し、これは、立て続けにスケジュールされるスポーツイベントでは一般的である。
【０００２】
（番組が放送される、または開始しようとしていると）所与の番組がリアルタイムで異なるチャネルに上げられる状況では、コンテンツプロバイダは、上記で説明されるような番組一覧データベースを更新するために十分な時間を有していない場合がある。具体的には、従来のシステムは、データベースが更新され、更新がセットトップボックスにダウンロードされている間に実質的な遅延時間を被る。本遅延時間は、セットトップボックスに、番組のセグメント、またはおそらく全体を記憶することをできなくさせる。遅延時間を軽減するために、いくつかのシステムは、オブジェクトおよび発話認識を使用し、番組のコンテンツに基づいて、番組のスケジュール変更がリアルタイムで起こったこと（例えば、アナウンサが、スポーツイベントが長引いたため、次のスケジュールされたスポーツイベントの開始が異なるチャネル上にあろうと言う）を決定する。しかしながら、そのようなシステムは、計算的に集約的であり、十分に較正されたときでさえも、必ずしも正確ではない。加えて、これらのシステムは、アナウンサによって／画面上に提示される情報に依存し、それらは、アナウンサがそれを言及できなかった場合に、スケジュール変更を決定することができない場合がある。
【発明の概要】
【課題を解決するための手段】
【０００３】
故に、システムおよび方法が、１つのコンテンツソースから記憶されるようにスケジュールされるメディアアセットが別のコンテンツソースに再スケジュールされていることを決定するために提示される。システムおよび方法は、メディアアセットが再スケジュールされていることと、メディアアセットが再スケジュールされているソースとをより効率的に決定するために使用され得る。例えば、現在受信されているメディアセット（例えば、イベント情報テーブル内のフィールド）を識別する、メディアアセットとともに受信されるデータパケットのコンテンツを調査することによって、セットトップボックスまたは他のユーザ機器デバイス上で実行されるメディアガイドアプリケーションは、記憶されるようにスケジュールされるメディアアセットが、最初にスケジュールされたコンテンツソースから現在伝送されていないことをリアルタイムで決定し得る。メディアアセットが最初にスケジュールされたコンテンツソースから利用可能ではないことを決定するステップに応答して、メディアガイドアプリケーションは、他のコンテンツソースから受信されるパケットを通して検索し、メディアアセットが再スケジュールされているコンテンツソースを決定し、そのコンテンツソースからメディアアセットを記憶し得る。いくつかの実施形態では、メディアガイドアプリケーションは、最初にスケジュールされたコンテンツソースへのそれらの類似性に基づいて、最初に検索するコンテンツソースを選択的に選定する（例えば、番組がＥＳＰＮ上に最初にスケジュールされた場合、ＥＳＰＮ２が、最初に検索されたコンテンツソースの間にあり得る）。
【０００４】
いくつかの側面では、メディアガイドアプリケーションは、スケジュールされた時間間隔中に複数のコンテンツソースのうちの第１のコンテンツソースから第１のメディアアセットを記憶するユーザ要求を受信する。例えば、メディアガイドアプリケーションは、午後４時から６時まで、チャネル「ＥＳＰＮ」からユーザ入力インターフェース（例えば、リモコン）を介して特定のフットボールの試合「Ｍｉｃｈｉｇａｎ対ＵＳＣ」を記憶するオプションのユーザ選択を受信してもよい。ユーザは、モバイルデバイス、または記憶される番組を選択するための任意の他の方法を使用して、セットトップボックスから遠隔で、具体的チームの全てのフットボールの試合のための連続録画オプションを通して、番組一覧画面内（例えば、グリッドガイド内）のフットボールの試合を記憶するオプションを選択してもよい。
【０００５】
メディアガイドアプリケーションは、次いで、データ構造へのエントリとして、スケジュールされた時間間隔中に第１のコンテンツソースから第１のメディアアセットを記憶するユーザ要求を記憶し、エントリは、現在のコンテンツソースを示す第１のフィールドを含む。例えば、メディアガイドアプリケーションは、記憶装置の中にローカルで位置し得る、または通信ネットワークを介して遠隔でアクセス可能であり得る、メディアアセットとユーザが記憶することを要求した伝送のためにメディアアセットがスケジュールされるときのスケジュールされた間隔とのデータベースを維持してもよい。具体的実施例として、データベースは、各行が、別個のセル（すなわち、フィールド）の中に、記憶のためにスケジュールされるメディアアセットの識別子、開始時間、終了時間、およびメディアアセットが利用可能であるコンテンツソース（すなわち、現在のコンテンツソース）を含有する、テーブルに配列されてもよい。メディアガイドアプリケーションは、ＳＱＬスクリプト等のデータベースクエリ言語スクリプトを実行することによって、本情報を読み取って／書き込んでもよい。例えば、メディアガイドアプリケーションは、以下でさらに説明されるように、メディアガイドアプリケーションが、第１のメディアアセットが異なるコンテンツソースに再スケジュールされたことを決定する場合に、異なるコンテンツソースであるように現在のコンテンツソースを含有するフィールドを更新してもよい。
【０００６】
メディアガイドアプリケーションは、次いで、スケジュールされた時間間隔中に、第１のコンテンツソースからビデオとともに受信されるデータパケットを監視する。例えば、スケジュールされた時間間隔がメディアアセットのために開始した（例えば、午後４時である）ことを決定することに応じて、メディアガイドアプリケーションは、プログラムスクリプトを実行して、第１のコンテンツソース（例えば、ＥＳＰＮ）から受信されるデータパケットをチェックし、フットボールの試合が第１のコンテンツソースから現在利用可能である（例えば、フットボールの試合がＥＳＰＮで放送されている）かどうかを決定してもよい。
【０００７】
メディアガイドアプリケーションは、監視されたデータパケットから第１のメディアアセットインジケータを抽出する。例えば、メディアガイドアプリケーションは、宣言的「選択」コマンドを利用してＳＱＬスクリプトを実行することによって、メディアアセットのための視聴覚データとともにデータパケットの中で伝送されるテーブル内のフィールドからメディアアセットインジケータを抽出してもよい。識別子は、第１のメディアアセットに特有であり、メディアガイドアプリケーションがそれを他のメディアアセットと区別することを可能にし、これは、メディアアセットの名称、またはコンテンツソースからのスケジュールされた伝送時間に基づく自動的にハッシュ化された整数であってもよい。いくつかの実施形態では、メディアガイドアプリケーションは、第１のコンテンツソースからのビデオに関連する情報を含有するテーブルを受信する。例えば、テーブルは、番組のインジケータ（例えば、番組に対応する一意の英数字コード）および番組の説明等の第１のコンテンツソースから現在受信されている番組に関するメタデータを含有する、行に編成されてもよい。メディアガイドアプリケーションは、次いで、第１のメディアアセットインジケータに対応するテーブル内のフィールドから値を読み出してもよい。例えば、上記で説明されるように、メディアガイドアプリケーションは、「ＦＴＢＬ１４８５」等のインジケータを読み出してもよい。
【０００８】
メディアガイドアプリケーションは、抽出された第１のメディアアセットインジケータを第１のメディアアセットの識別子と比較する。例えば、メディアガイドアプリケーションは、メディアアセットの識別子を含有するデータベースにアクセスし、メディアアセットストリームから抽出されるメディアアセットインジケータがデータベースの中に記憶された第１のメディアアセットの識別子に合致するかどうかを（例えば、文字合致を介して）決定してもよい。いくつかの実施形態では、メディアガイドアプリケーションは、ユーザ要求を用いて、第１のメディアアセットの識別子を記憶する。例えば、メディアガイドアプリケーションが、フットボールの試合を記憶するためのユーザ選択を受信するとき、メディアガイドアプリケーションは、フットボールの試合を提供するコンテンツソースに由来し得る、フットボールの試合の識別子を記憶する。メディアガイドアプリケーションは、第１のメディアアセットの識別子の文字を抽出された第１のメディアアセットインジケータの文字と比較してもよい。例えば、メディアガイドアプリケーションは、「ＦＴＢＬ１４８５」等の抽出されたインジケータの各文字を記憶された識別子と比較してもよい。メディアガイドアプリケーションは、閾値数または割合の文字が合致する場合に、抽出されたインジケータが記憶された識別子に合致することを決定してもよい。
【０００９】
メディアガイドアプリケーションは、抽出されたメディアアセットインジケータが第１のメディアアセットの識別子に対応しないことを決定するステップに応答して、第１のメディアアセットの識別子に対応する第２のメディアアセットインジケータを含む第２のデータパケットに関して、複数のコンテンツソース上で受信されるデータパケットを検索する。例えば、メディアガイドアプリケーションは、フットボールの試合の識別子に合致しない、ＥＳＰＮから現在受信されているメディアアセットからの抽出されたインジケータに基づいて（例えば、上記で説明されるようなデータベースとの比較に基づいて）、ＥＳＰＮで午後４時に放送されるようにスケジュールされたフットボールの試合が現在放送されていないことを決定してもよい。本決定に応答して、メディアガイドアプリケーションは、上記で説明されるように、データパケットからインジケータを抽出し、抽出されたインジケータをメディアアセットの識別子と比較することによって、メディアアセットが利用可能であるコンテンツソースを見出そうとして、ユーザがサブスクライブする他のコンテンツソースを通してスキャンしてもよい。
【００１０】
いくつかの実施形態では、第２のデータパケットに関して複数のコンテンツソース上で受信されるデータパケットを検索するとき、メディアガイドアプリケーションは、複数のコンテンツソースのための情報を含有するデータベースにアクセスし、情報は、複数のコンテンツソースのうちの各コンテンツソースに類似する複数のコンテンツソースのサブセットのインジケーションを含む。例えば、メディアガイドアプリケーションは、メモリの中にローカルで記憶されるか、または通信ネットワークを介してアクセス可能なメディアガイドデータソースに遠隔で記憶されたデータベースにアクセスしてもよい。データベースは、自己参照様式で設計されてもよく、識別子およびコンテンツソース毎の情報は、単一のテーブルの中に非隣接状態で含有され、ポインタを介してテーブル内の類似コンテンツソースに対応する適切なフィールドにリンクされ得る。メディアガイドアプリケーションは、次いで、第１のコンテンツソースと関連付けられるデータベース内のフィールドから、第２のコンテンツソースが第１のコンテンツソースに類似するというインジケーションを読み出す。例えば、メディアガイドアプリケーションは、第１のコンテンツソースと関連付けられるフィールドから第２のコンテンツソースの識別子を（例えば、宣言的「選択」命令文を介して）読み出す、ＳＱＬスクリプト等のデータベースクエリ言語スクリプトを実行してもよい。メディアガイドアプリケーションは、次いで、第１のメディアアセットの識別子に対応する第２のメディアアセットインジケータに関して、第２のコンテンツソースからのデータパケットを検索する。例えば、上記で説明されるように、メディアガイドアプリケーションは、第２のコンテンツソースから現在伝送されているメディアアセットのインジケータを抽出し、それが第１のメディアアセットの識別子に合致するかどうかを決定する。
【００１１】
メディアガイドアプリケーションは、複数のコンテンツソースのうちの第２のコンテンツソースから受信される第２のデータパケットが、第１のメディアアセットの識別子に対応する第２のメディアアセットインジケータを含むことを決定するステップに応答して、記憶されたエントリの第１のフィールド内の現在のコンテンツソースを更新し、第１のメディアアセットが第２のコンテンツソースから伝送されていることを示す。例えば、コンテンツソース「ＥＳＰＮ２」からの抽出されたデータパケットから、フットボールの試合がＥＳＰＮの代わりにＥＳＰＮ２で放送されていることを決定することに応じて、メディアガイドアプリケーションは、データ構造の中に記憶されたエントリ内の現在のコンテンツソースに対応するフィールドを更新し、フットボールの試合が異なるコンテンツソースＥＳＰＮ２から放送されていることを反映してもよい。具体的実施例として、メディアガイドアプリケーションは、プログラムスクリプトを実行し、フットボールの試合のための記憶されたエントリと関連付けられる第１のフィールドの中に記憶された値を更新してもよい。
【００１２】
メディアガイドアプリケーションは、記憶されたエントリの第１のフィールド内に示される現在のコンテンツソースから第１のメディアアセットを記憶する。例えば、メディアガイドアプリケーションは、データベース内のエントリの第１のフィールドの中に記憶された、更新された現在のコンテンツソース値に基づいて、ＥＳＰＮの代わりにＥＳＰＮ２からフットボールの試合を記憶してもよい。いくつかの実施形態では、メディアガイドアプリケーションは、第２のコンテンツソースから現在受信されているメディアアセットのデータパケットを監視し続け、第１のメディアアセットが第１のコンテンツソースに戻るようにスケジュールされたか、または別のコンテンツソースにスケジュールされたかを決定してもよい。例えば、フットボールの試合がＥＳＰＮ２に再スケジュールされた理由は、午後４時に終了するようにスケジュールされたＥＳＰＮ上のスポーツイベントが長引いたためであり得る。本状況では、第２のコンテンツソース（例えば、ＥＳＰＮ２）から記憶している間に、メディアガイドアプリケーションは、フットボールの試合が依然としてＥＳＰＮ２上で受信されているかどうかを監視し続けてもよい。１０分後、ＥＳＰＮ上の試合は、終了し得、「Ｍｉｃｈｉｇａｎ対ＵＳＣ」のフットボールの試合は、ＥＳＰＮ２からＥＳＰＮに戻るようにスケジュールされ得る。スケジュールされた時間間隔中にメディアアセットの視聴覚データとともに受信されるメディアアセットインジケータを監視し続けることによって、メディアガイドアプリケーションは、任意の時間にコンテンツソース変化を検出し、それが現在利用可能であるコンテンツソースからメディアアセットを見出して記憶することができる。
【００１３】
いくつかの実施形態では、メディアガイドアプリケーションは、記憶されるようにスケジュールされるメディアアセットが、そのスケジュールされたタイムスロットよりも長引いた、および／またはそのスケジュールされたタイムスロットの前に開始したかどうかをチェックする。メディアガイドアプリケーションは、スケジュールされた時間間隔外の第１の時間間隔中に、第１のコンテンツソースからビデオとともに受信されるデータパケットを監視する。例えば、メディアガイドアプリケーションは、ユーザカスタマイズ可能であり得る、番組が開始するようにスケジュールされる前の設定時間に（例えば、メディアアセットが開始するようにスケジュールされる３０分前に）第１のコンテンツソースからビデオとともに受信されるデータパケットを監視してもよい。例証的実施例として、メディアガイドアプリケーションは、午後４時に終了するようにスケジュールされるスポーツイベントが予期されるよりも早く終了する場合に、試合前の映像または情報を捕捉してもよい。代替として、または加えて、メディアガイドアプリケーションは、メディアアセットのスケジュールされた終了時間後に第１のコンテンツソースからビデオとともに受信されるデータパケットを監視する。例えば、記憶されるようにスケジュールされる第１のメディアアセットは、それ自体がスケジュールされた終了時間を過ぎ得る。本状況では、メディアガイドアプリケーションは、上記で説明されるように第１のコンテンツソースから受信されるデータパケットを監視し続け、第１のコンテンツソースからビデオとともに受信されるデータパケットがもはやメディアアセットの識別子に合致しなくなる（例えば、メディアアセットが終了したことを示す）まで、メディアアセットを記憶し続けてもよい。代替として、または加えて、メディアガイドアプリケーションは、終了時に、またはスケジュールされた時間間隔後に、上記で説明されるように複数のコンテンツソースを検索することによって、メディアアセットが終了し、別のコンテンツソースに再スケジュールされていないことを決定してもよい。
【００１４】
いくつかの実施形態では、メディアアセットは、異なるコンテンツソースから複数のセグメントで記憶されてもよい。例えば、フットボールの試合は、ＥＳＰＮ２上で開始するが、ＥＳＰＮ上で長引いた番組が終わったため、５分後にＥＳＰＮに移動され得る。そのような状況では、メディアガイドアプリケーションは、上記で議論されるように、第２のコンテンツソースからメディアアセットの第１のセグメントを記憶する。例えば、メディアガイドアプリケーションは、最初にスケジュールされたようなＥＳＰＮの代わりに、試合の開始時にＥＳＰＮ２から受信されるフットボールの試合を記憶してもよい。メディアガイドアプリケーションは、次いで、第１のコンテンツソースから受信される第１のメディアアセットの第２のセグメントを記憶する。例えば、メディアガイドアプリケーションは、上記で議論される方法を使用して、フットボールの試合がＥＳＰＮに戻るようにスケジュールされたことを決定し、ＥＳＰＮから受信されるフットボールの試合の第２のセグメントを記憶する。メディアガイドアプリケーションは、次いで、第１のセグメントおよび第２のセグメントを単一の記憶されたファイルにスティッチングする。例えば、メディアガイドアプリケーションは、試合全体のための単一の記憶されたファイルがユーザによってアクセスされることができるように、フットボールの試合の２つの記憶されたセグメントを組み合わせる。メディアガイドアプリケーションは、加えて、単一の記憶されたファイルの中に、単一の記憶されたファイルが第１のコンテンツソースおよび第２のコンテンツソースから作成されたというインジケーションを記憶する。例えば、メディアガイドアプリケーションは、ユーザがその事実へ注意喚起されるように、記憶されたファイルが複数のコンテンツソースから作製されたというインジケーションを記憶してもよい。
【００１５】
いくつかの実施形態では、２つの記憶されたセグメントをともにスティッチングするとき、メディアガイドアプリケーションは、第１のセグメントとともに記憶されたメタデータから第１のセグメントのための第１のタイムスタンプを抽出する。例えば、メディアガイドアプリケーションは、第１のセグメントが「１９：００：００」（時間：分：秒）から始まって記憶されたことを抽出してもよい。メディアガイドアプリケーションは、第２のセグメントとともに記憶されたメタデータから第２のセグメントのための第２のタイムスタンプを抽出する。例えば、メディアガイドアプリケーションは、第２のセグメントが「１９：０５：００」（時間：分：秒）から始まって記憶されたことを抽出してもよい。メディアガイドアプリケーションは、次いで、第１のタイムスタンプおよび第２のタイムスタンプを比較し、早い方を決定する。例えば、メディアガイドアプリケーションは、２つの抽出されたタイムスタンプを減算するステップに基づいて、減算から取得される結果が正であるかまたは負であるかに基づいて早い方を決定してもよい。メディアガイドアプリケーションは、第１のタイムスタンプがより早いことを決定するステップに応答して、第２のセグメントを第１のセグメントの終わりに追加する。例えば、メディアガイドアプリケーションは、フットボールの試合のＥＳＰＮから記憶される第２のセグメントの始まりを、ＥＳＰＮ２から記憶される第１のセグメントの終わりにスティッチングする。
【００１６】
いくつかの実施形態では、メディアガイドアプリケーションは、記憶された第１のメディアアセットの持続時間をスケジュールされた時間間隔と比較する。例えば、メディアガイドアプリケーションは、記憶されたフットボールの試合が１時間の持続時間を有することを決定し、これを、２時間であり得るフットボールの試合のスケジュールされた時間間隔と比較してもよい。メディアガイドアプリケーションは、記憶された第１のメディアアセットの持続時間がスケジュールされた時間間隔よりも短いことを決定するステップに応答して、記憶された第１のメディアアセットの持続時間とスケジュールされた時間間隔との間の差を閾値差と比較する。例えば、メディアガイドアプリケーションは、記憶されたフットボールの試合がフットボールの試合のスケジュールされた間隔よりも短く、差（例えば、１時間）が閾値差（例えば、５分）を上回ることを決定してもよい。メディアガイドアプリケーションは、記憶されたメディアアセットの持続時間とスケジュールされた時間間隔との間の差が閾値差を満たすことを決定するステップに応答して、記憶された第１のメディアアセットが完全ではないことを決定する。例えば、メディアガイドアプリケーションは、スケジュールされた間隔と、閾値差を上回る、実際に記憶されたものとの間に１時間の差があるため、記憶されたフットボールの試合が完全ではないことを決定する。
【００１７】
いくつかの実施形態では、記憶されたメディアアセットの持続時間とスケジュールされた時間間隔との間の差が閾値差を満たすことを決定するステップに応答して、メディアガイドアプリケーションは、加えて、メディアガイドデータベースから読み出されるメディアアセット一覧から、第１のメディアアセットが将来の時間に利用可能であるかどうかを決定する。例えば、メディアガイドアプリケーションは、閾値（例えば、５分）を超える、フットボールの試合（例えば、１時間）の一部が記憶されていない場合があることを決定し、次いで、メディアガイドデータソースから一覧を読み出し、メディアアセットが将来の時間（例えば、再放送）に利用可能であるかどうかを決定してもよい。メディアガイドアプリケーションは、メディアアセットの識別子の文字を個々の一覧と比較し、メディアアセットが将来の時間に利用可能であるという決定を行ってもよい。メディアガイドアプリケーションは、第１のメディアアセットが第３のコンテンツソースから将来の時間に利用可能であることを決定するステップに応答して、（例えば、上記で議論されるようにテーブル等のデータ構造の中に）第３のコンテンツソースから第１のメディアアセットを記憶する第２の要求を記憶する。例えば、メディアガイドアプリケーションは、メディアアセットが、第１、第２、または異なるコンテンツソースであり得る、第３のコンテンツソースから利用可能であることを決定し、第３のコンテンツソース（例えば、ＡＢＣ）からメディアアセットを記憶する要求をスケジュールしてもよい。メディアアセットの再放送をスケジュールすることによって、メディアガイドアプリケーションは、最初の記憶されたメディアアセットが完全であった（例えば、そのスケジュールされた間隔よりも早く終了した）かどうか、またはメディアアセットの一部を欠いていたかどうかを決定することが可能であり得る。
【００１８】
いくつかの実施形態では、メディアガイドアプリケーションは、将来の時間にスケジュールされるメディアアセットの一部のみを記憶する。メディアガイドアプリケーションは、記憶されたメディアアセットの複数のフレームのうちのフレーム毎に記憶されるメタデータから、複数のフレームのうちの各フレームと関連付けられる時間を読み出す。例えば、メディアガイドアプリケーションによって受信および記憶される各フレームは、フレームがコンテンツソースから伝送された時間（例えば、ＦＦがフレーム番号である、フォーマット時間：分：秒：ＦＦで）を伴う関連付けられるメタデータを有してもよい。メディアガイドアプリケーションは、第１のメディアアセットの一部が第１のフレームと第２のフレームとの間で欠落していることを決定してもよい。例えば、メディアガイドアプリケーションは、関連付けられる時間１９：０５：００：０１を伴うフレーム後に、次のフレームが関連付けられる時間１９：１０：００：０１を有することを検出してもよく、メディアガイドアプリケーションは、一部（例えば、５分のメディアアセット）が記憶されたメディアアセットから欠落していることを決定してもよい。メディアガイドアプリケーションは、次いで、第２の要求を用いて、第１のメディアアセットの第１の部分のみを記憶する命令を記憶してもよい。例えば、記憶集約的であり得る、メディアアセット全体をもう一度記憶することなく、メディアアセットの完全なバージョンを作成するために、メディアガイドアプリケーションは、記憶された第１のメディアアセットから欠落しているメディアアセットのフレーム（例えば、第１の部分）のみを記憶する命令を記憶する。
【００１９】
上記で説明されるシステムおよび／または方法は、他のシステム、方法、および／または装置に適用され得る、またはそれらに従って使用され得ることに留意されたい。
【００２０】
本開示の上記および他の目的および利点は、同様の参照文字が全体を通して同様の部分を指す、添付の図面と併せて考慮される、以下の発明を実施するための形態の検討から明白となるであろう。
【図面の簡単な説明】
【００２１】
【図１−１】図１は、本開示のいくつかの実施形態による、１つのコンテンツソースから記憶されるようにスケジュールされるメディアアセットが、別のコンテンツソースからの伝送のために再スケジュールされていることを決定するための例証的ステップのフローチャートである。
【図１−２】図１は、本開示のいくつかの実施形態による、１つのコンテンツソースから記憶されるようにスケジュールされるメディアアセットが、別のコンテンツソースからの伝送のために再スケジュールされていることを決定するための例証的ステップのフローチャートである。
【図２】図２は、本開示のいくつかの実施形態による、メディアアセット情報および視聴覚データを含有するコンテンツソースから受信される、データパケットの例証的実施例を示す。
【図３】図３は、本開示のいくつかの実施形態による、メディアコンテンツにアクセスする際に使用するための表示画面の例証的実施例を示す。
【図４】図４は、本開示のいくつかの実施形態による、メディアコンテンツにアクセスするために使用される表示画面の別の例証的実施例を示す。
【図５】図５は、本開示のいくつかの実施形態による、例証的ユーザ機器デバイスのブロック図である。
【図６】図６は、本開示のいくつかの実施形態による、例証的メディアシステムのブロック図である。
【図７−１】図７は、本開示のいくつかの実施形態による、１つのコンテンツソースから記憶されるようにスケジュールされるメディアアセットが、別のコンテンツソースからの伝送のために再スケジュールされていることを決定するための例証的ステップの別のフローチャートである。
【図７−２】図７は、本開示のいくつかの実施形態による、１つのコンテンツソースから記憶されるようにスケジュールされるメディアアセットが、別のコンテンツソースからの伝送のために再スケジュールされていることを決定するための例証的ステップの別のフローチャートである。
【図８】図８は、本開示のいくつかの実施形態による、複数のコンテンツソースから受信されるデータパケットを検索するための例証的ステップのフローチャートである。
【図９】図９は、本開示のいくつかの実施形態による、記憶されたメディアアセットがメディアアセットの完全なバージョンであるかどうかを決定するための例証的ステップのフローチャートである。
【発明を実施するための形態】
【００２２】
システムおよび方法が、１つのコンテンツソースから記憶されるようにスケジュールされるメディアアセットが、別のコンテンツソースからの伝送のために再スケジュールされていることを決定するために提示される。システムおよび方法は、メディアアセットが再スケジュールされていることと、メディアアセットが伝送されるように再スケジュールされているソースとをより効率的に決定するために使用され得る。例えば、現在受信されているメディアセット（例えば、イベント情報テーブル内のフィールド）を識別する、メディアアセットとともに受信されるデータパケットのコンテンツを調査することによって、セットトップボックスまたは他のユーザ機器デバイス上で実行されるメディアガイドアプリケーションは、記憶されるようにスケジュールされるメディアアセットが、最初にスケジュールされたコンテンツソースから現在伝送されていないことをリアルタイムで決定し得る。メディアアセットが最初にスケジュールされたコンテンツソースから利用可能ではないことを決定するステップに応答して、メディアガイドアプリケーションは、他のコンテンツソースから受信されるパケットを通して検索し、メディアアセットが再スケジュールされているコンテンツソースを決定し、そのコンテンツソースからメディアアセットを記憶し得る。いくつかの実施形態では、メディアガイドアプリケーションは、最初にスケジュールされたコンテンツソースへのそれらの類似性に基づいて、最初に検索するコンテンツソースを選択的に選定する（例えば、番組がＥＳＰＮ上に最初にスケジュールされた場合、ＥＳＰＮ２が、検索される最初に検索されたコンテンツソースの間にあり得る）。
【００２３】
本明細書で参照されるように、「メディアガイドアプリケーション」または「双方向メディアガイドアプリケーション」、またはある時は「メディアガイドアプリケーション」または「ガイドアプリケーション」は、ユーザがメディアアセットを消費する、および／またはそれにナビゲートすることを可能にする、アプリケーションである。いくつかの実施形態では、メディアガイドアプリケーションは、オンラインアプリケーション（すなわち、ウェブサイト上で提供される）として、またはサーバ、ユーザデバイス等の上の独立型アプリケーションとして、提供されてもよい。いくつかの実施形態では、メディアガイドアプリケーションは、同時に第１のデバイスおよび第２のデバイス上で、またはいずれかのデバイスから遠隔の場所（例えば、遠隔サーバ）で、または任意の好適な組み合わせで実行されてもよい。いくつかの実施形態では、種々のデバイスおよびプラットフォーム上に配設される制御回路は、以下でさらに詳細に説明されるように、メディアガイドアプリケーションを実行してもよい。いくつかの実施形態では、本明細書で議論される実施形態のうちのいずれかを実施するためのメディアガイドアプリケーションおよび／または任意の命令は、コンピュータ可読媒体上にエンコードされてもよい。コンピュータ可読媒体は、データを記憶することが可能な任意の媒体を含む。コンピュータ可読媒体は、限定されないが、電気または電磁信号の伝搬を含む、一過性であり得るか、または、限定されないが、ハードディスク、フロッピーディスク、ＵＳＢドライブ、ＤＶＤ、ＣＤ、メディアカード、レジスタメモリ、プロセッサキャッシュ、ランダムアクセスメモリ（「ＲＡＭ」）等の揮発性および不揮発性コンピュータメモリまたは記憶デバイスを含む、非一過性であり得る。
【００２４】
図１は、本開示のいくつかの実施形態による、ユーザ選好に基づいてメディアアセットの出力を調節するための例証的ステップのフローチャートである。例えば、メディアガイドアプリケーション実装プロセス１００は、制御回路５０４（図５）によって実行されてもよい。プロセス１００またはその任意のステップは、図５−６に示されるデバイスのうちのいずれかの上で実施され得る、またはそれによって提供され得ることに留意されたい。
【００２５】
プロセス１００は、メディアガイドアプリケーションが、（例えば、制御回路５０４（図５）を介して）スケジュールされた時間間隔中に複数のコンテンツソースのうちの第１のコンテンツソースから第１のメディアアセットを記憶するユーザ要求を受信する、１０２から開始する。例えば、メディアガイドアプリケーションは、（例えば、制御回路５０４（図５）を介して）午後４時から６時まで、チャネル「ＥＳＰＮ」からユーザ入力インターフェースを介して（例えば、ユーザ入力インターフェース５１０（図５）を介して）特定のフットボールの試合「Ｍｉｃｈｉｇａｎ対ＵＳＣ」を記憶するオプションのユーザ選択を受信してもよい。ユーザは、モバイルデバイス、または記憶される番組を選択するための任意の他の方法を使用して、セットトップボックスから遠隔で、具体的チームの全てのフットボールの試合のための連続録画オプションを通して、番組一覧画面内（例えば、グリッドガイド（図３−４）内）のフットボールの試合を記憶するオプションを選択してもよい。本明細書で参照されるように、「記憶する」は、ユーザがその最初の伝送後にメディアアセットにアクセスすることができるように、メディアアセットを持続的に保存するための任意の方法またはシステムを意味すると理解されるべきである。いくつかの実施形態では、メディアアセットを記憶するステップは、メディアアセットを伝送するコンテンツソースからメディアアセットを録画する、セットトップボックスまたは他のユーザ機器によって実施されてもよい。他の実施形態では、メディアアセットを記憶するステップは、通信ネットワークを介して遠隔サーバからメディアアセットのコピーをダウンロードすることによって実施されてもよい。
【００２６】
プロセス１００は、メディアガイドアプリケーションが、（例えば、制御回路５０４（図５）を介して）スケジュールされた時間間隔が開始したことを決定する、１０４に続く。例えば、メディアガイドアプリケーションは、（例えば、制御回路５０４（図５）を介して）（例えば、図５−６に説明されるようなユーザ機器デバイス内の）内部クロックから、現在の時間を決定してもよい。メディアガイドアプリケーションは、次いで、（例えば、制御回路５０４（図５）を介して）現在の時間を、第１のメディアアセットのためのデータ構造の中に記憶されたスケジュールされた時間間隔の開始時間と比較し、現在の時間が開始時間に合致するかどうかを決定してもよい。
【００２７】
プロセス１００は、メディアガイドアプリケーションが、以下の図７で詳細に説明されるように、（例えば、制御回路５０４（図５）を介して）第１のコンテンツソースからビデオとともに受信されるデータパケットを監視する、１０６に続く。例えば、メディアガイドアプリケーションは、（例えば、制御回路５０４（図５）を介して）プログラムスクリプトを実行して、第１のコンテンツソース（例えば、ＥＳＰＮ）から受信されるデータパケットをチェックし、フットボールの試合が第１のコンテンツソースから現在利用可能である（例えば、フットボールの試合がＥＳＰＮで放送されている）かどうかを決定してもよい。メディアガイドアプリケーションは、（例えば、制御回路５０４（図５）を介して）連続的に、または所定の間隔中にデータパケットを監視し、計算費用を削減してもよい。
【００２８】
プロセス１００は、メディアガイドアプリケーションが（例えば、制御回路５０４（図５）を介して）監視されたデータパケットから第１のメディアアセットインジケータを抽出する、１０８に続く。例えば、メディアガイドアプリケーションは、（例えば、制御回路５０４（図５）を介して）宣言的「選択」コマンドを利用してＳＱＬスクリプトを実行することによって、メディアアセットのための視聴覚データとともにデータパケットの中で伝送されるテーブル内のフィールドからメディアアセットインジケータを抽出してもよい。本明細書で参照されるように、「メディアアセットインジケータ」は、第１のメディアアセットに特有であり、メディアガイドアプリケーションがそれを他のメディアアセットと区別することを可能にする、任意の識別子を意味すると理解されるべきである。いくつかの実施形態では、メディアアセットインジケータは、英数字のメディアアセットの名称またはタイトルであってもよい。他の実施形態では、メディアアセットインジケータは、コンテンツソースからのスケジュールされた伝送時間に基づく自動的にハッシュ化された整数であってもよい。なおも他の実施形態では、「メディアアセットインジケータ」は、現在伝送されているメディアアセットを決定するためにメディアガイドアプリケーションによって使用される、複数のコンポーネントを含んで分割されてもよい。例えば、メディアガイドアプリケーションは、（例えば、以下の図２のように）情報の複数のフィールドを受信し、１つだけを上回るフィールドを使用して、現在伝送されているメディアアセットを決定してもよい。
【００２９】
いくつかの実施形態では、メディアガイドアプリケーションは、（例えば、制御回路５０４（図５）を介して）第１のコンテンツソースからのビデオに関連する情報を含有するテーブルを受信する。例えば、テーブルは、図２において以下でさらに説明されるように、番組のインジケータ（例えば、番組に対応する一意の英数字コード）および番組の説明等の第１のコンテンツソースから現在受信されている番組に関するメタデータを含有する、行に編成されてもよい。メディアガイドアプリケーションは、次いで、第１のメディアアセットインジケータに対応するテーブル内のフィールドから値を読み出してもよい。例えば、上記で説明されるように、メディアガイドアプリケーションは、「ＦＴＢＬ１４８５」等のインジケータを読み出してもよい。
【００３０】
プロセス１００は、メディアガイドアプリケーションが、（例えば、制御回路５０４（図５）を介して）抽出された第１のメディアアセットインジケータを第１のメディアアセットの識別子と比較する、１１０に続く。例えば、メディアガイドアプリケーションは、（例えば、制御回路５０４（図５）を介して）（例えば、メモリ（例えば、記憶装置５０８）の中にローカルで記憶されるか、または通信ネットワーク（例えば、通信ネットワーク６１４）を介してアクセス可能なメディアガイドデータソース（例えば、メディアガイドデータソース６１８）に遠隔で記憶された）メディアアセットの識別子を含有するデータベースにアクセスし、メディアアセットストリームから抽出されるメディアアセットインジケータがデータベースの中に記憶された第１のメディアアセットの識別子に合致するかどうかを（例えば、文字合致を介して）決定してもよい。
【００３１】
いくつかの実施形態では、メディアガイドアプリケーションは、（例えば、制御回路５０４（図５）を介して）ユーザ要求を用いて、第１のメディアアセットの識別子を記憶する。例えば、メディアガイドアプリケーションが（例えば、制御回路５０４（図５）を介して）フットボールの試合を記憶するためのユーザ選択を（例えば、ユーザ入力インターフェース５１０（図５）から）受信するとき、メディアガイドアプリケーションは、フットボールの試合を提供するコンテンツソースに由来し得る、フットボールの試合の識別子を記憶する。メディアガイドアプリケーションは、（例えば、制御回路５０４（図５）を介して）第１のメディアアセットの識別子の文字を抽出された第１のメディアアセットインジケータの文字と比較してもよい。例えば、メディアガイドアプリケーションは、（例えば、制御回路５０４（図５）を介して）「ＦＴＢＬ１４８５」等の抽出されたインジケータの各文字を記憶された識別子と比較してもよい。メディアガイドアプリケーションは、閾値数または割合の文字が合致する場合に、（例えば、制御回路５０４（図５）を介して）抽出されたインジケータが記憶された識別子に合致することを決定してもよい。
【００３２】
プロセス１００は、メディアガイドアプリケーションが、（例えば、制御回路５０４（図５）を介して）抽出されたメディアアセットインジケータが第１のメディアアセットの識別子に対応するかどうかを決定する、１１２に続く。例えば、メディアガイドアプリケーションは、（例えば、制御回路５０４（図５）を介して）抽出されたインジケータが第１のメディアアセットの記憶された識別子に合致する（例えば、「ＦＴＢＬ１４８５」が抽出されたインジケータおよび記憶された識別子の両方である）かどうかを出力する、プログラムスクリプトを実行してもよい。メディアガイドアプリケーションは、（例えば、制御回路５０４（図５）を介して）実行されたプログラムスクリプトの出力として、抽出されたインジケータが記憶された識別子に合致するかどうかに基づくブール結果を受信してもよい。
【００３３】
メディアガイドアプリケーションが、抽出されたメディアアセットインジケータが第１のメディアアセットの識別子に対応することを決定する場合、プロセス１００は、メディアガイドアプリケーションが（例えば、制御回路５０４（図５）を介して）第１のコンテンツソースから受信される第１のメディアアセットを記憶する、１１４に続く。例えば、抽出された識別子が第１のメディアアセットに対応する記憶された識別子に合致することを決定することに応じて、メディアガイドアプリケーションは、最初にスケジュールされたコンテンツソース（例えば、ＥＳＰＮ）から受信されるフットボールの試合を（例えば、記憶装置５０８（図５）の中に）記憶してもよい。メディアガイドアプリケーションは、（例えば、制御回路５０４（図５）を介して）スケジュールされた時間間隔の全体を通して第１のコンテンツソースから受信されるデータパケットを監視し続け、第１のメディアアセットが第１のコンテンツソースからもはや伝送されていない、および異なるコンテンツソースから伝送されているかどうかを決定してもよい（例えば、プロセス１００は、ステップ１０６に戻ってもよい）。
【００３４】
メディアガイドアプリケーションが、抽出されたメディアアセットインジケータが第１のメディアアセットの識別子に対応しないことを決定する場合、プロセス１００は、メディアガイドアプリケーションが、（例えば、制御回路５０４（図５）を介して）第１のメディアアセットの識別子に対応する第２のメディアアセットインジケータを含む第２のデータパケットに関して、複数のコンテンツソース上で受信されるデータパケットを検索する、１１６に続く。例えば、メディアガイドアプリケーションは、フットボールの試合の識別子に合致しない、ＥＳＰＮから現在受信されているメディアアセットからの抽出されたインジケータに基づいて（例えば、上記で説明されるようなデータベースとの比較に基づいて）、（例えば、制御回路５０４（図５）を介して）ＥＳＰＮで午後４時に放送されるようにスケジュールされたフットボールの試合が現在放送されていないことを決定してもよい。本決定に応答して、メディアガイドアプリケーションは、上記で説明されるように、データパケットからインジケータを抽出し、抽出されたインジケータをメディアアセットの識別子と比較することによって、メディアアセットが利用可能であるコンテンツソースを見出そうとして、（例えば、制御回路５０４（図５）を介して）ユーザがサブスクライブする他のコンテンツソースを通してスキャンしてもよい。
【００３５】
プロセス１００は、メディアガイドアプリケーションが、（例えば、制御回路５０４（図５）を介して）複数のコンテンツソースのうちの第２のコンテンツソースから受信される第２のデータパケットが第１のメディアアセットの識別子に対応する第２のメディアアセットインジケータを含むかどうかを決定する、１１８に続く。例えば、メディアガイドアプリケーションは、（例えば、制御回路５０４（図５）を介して）第２のコンテンツソースから受信されるデータパケットから、メディアアセットインジケータ（例えば、「ＦＴＢＬ１４８５」）を抽出し、上記で説明されるように、（例えば、文字合致を介して）それがデータ構造の中に記憶された第１のメディアアセットの識別子に合致するかどうかを決定してもよい。
【００３６】
メディアガイドアプリケーションが、複数のコンテンツソースのうちの第２のコンテンツソースから受信される第２のデータパケットが、第１のメディアアセットの識別子に対応する第２のメディアアセットインジケータを含むことを決定する場合、プロセス１００は、メディアガイドアプリケーションが（例えば、制御回路５０４（図５）を介して）第２のコンテンツソースから受信される第１のメディアアセットを記憶する、１２４に続く。例えば、メディアガイドアプリケーションは、ＥＳＰＮ２から受信されるデータパケットから、フットボールの試合がその局から伝送されていることを決定するステップに基づいて、ＥＳＰＮの代わりにＥＳＰＮ２から受信されるフットボールの試合を（例えば、記憶装置５０８（図５）の中に）記憶してもよい。
【００３７】
メディアガイドアプリケーションが、複数のコンテンツソースのうちの第２のコンテンツソースから受信される第２のデータパケットが第１のメディアアセットの識別子に対応する第２のメディアアセットインジケータを含まないことを決定する場合、プロセス１００は、メディアガイドアプリケーションが、（例えば、制御回路５０４（図５）を介して）検索されていない任意の付加的コンテンツソースがあるかどうかを決定する、１２０に続く。例えば、メディアガイドアプリケーションは、（例えば、制御回路５０４（図５）を介して）ユーザがサブスクライブするコンテンツソースからメディアアセットインジケータを含有するデータパケットを反復して受信し、全てのコンテンツソースからのメディアアセットインジケータを含有するデータパケットがチェックされたときに終了する、「ｆｏｒ」ループを含有するプログラムスクリプトを実行してもよい。代替として、または加えて、メディアガイドアプリケーションは、データパケットが抽出された（例えば、記憶装置５０８（図５）内の）コンテンツソースのリストを維持し、ユーザによってサブスクライブされる任意のコンテンツソースがまだチェックされていないかどうかを決定してもよい。
【００３８】
メディアガイドアプリケーションが、検索されていない任意の付加的コンテンツソースがないことを決定する場合、プロセス１００は、メディアガイドアプリケーションが、（例えば、制御回路５０４（図５）を介して）第１のメディアアセットが記憶のために利用可能ではないことを返す、１２２に続く。例えば、メディアガイドアプリケーションは、（例えば、制御回路５０４（図５）を介して）フットボールの試合がユーザに利用可能な任意のコンテンツソースから伝送されていないことを決定してもよい。代替として、または加えて、フットボールの試合がユーザに利用可能な任意のコンテンツソースから伝送されていないという決定を行うことに応じて、メディアガイドアプリケーションは、フットボールの試合がスケジュール変更に起因して記憶されることができないという通知を（例えば、通信ネットワーク６１４（図６）を介して）ユーザに伝送してもよい。
【００３９】
メディアガイドアプリケーションが、検索されていない任意の付加的コンテンツソースがあることを決定する場合、プロセス１００は、メディアガイドアプリケーションが、（例えば、制御回路５０４（図５）を介して）第１のメディアアセットの識別子に対応する第２のメディアアセットインジケータを含む第２のデータパケットに関して検索されていない、複数のコンテンツソース上で受信されるデータパケットを検索する、１１６に戻る。例えば、メディアガイドアプリケーションは、（例えば、制御回路５０４（図５）を介して）上記で説明されるように、フットボールの試合の記憶された識別子に対応するメディアアセットインジケータに関して、異なるコンテンツソースから受信されるデータパケットを検索し続けてもよい。
【００４０】
図１のステップまたは説明は、本開示の任意の他の実施形態と併用され得ることが考慮される。加えて、図１に関連して説明されるステップおよび説明は、本開示の目的を促すために、代替順序で、または並行して、行われてもよい。例えば、これらのステップはそれぞれ、システムまたは方法の遅延を低減させるかまたは速度を加速させるために、任意の順序で、または並行して、または実質的に同時に実施されてもよい。例えば、プロセス１００の複数のインスタンスは、記憶のために異なるメディアアセットを受信するようにそれぞれスケジュールされる、セットトップボックス内の複数のチューナのために実行されてもよい。さらに、図５−６に関連して議論されるデバイスまたは機器のうちのいずれかは、図１のプロセスのうちの１つ以上のものを実施するために使用され得ることに留意されたい。
【００４１】
図２は、本開示のいくつかの実施形態による、メディアアセット情報および視聴覚データを含有するコンテンツソースから受信される、データパケットの例証的実施例を示す。例えば、図２は、番組の提示に関する種々の情報（例えば、メディアアセット情報データパケット２０２および視聴覚データパケット２０４）を含有するコンテンツソース（例えば、メディアコンテンツソース６１６（図６））からメディアガイドアプリケーションによって受信される、データパケット２００を示す。例えば、メディアアセット情報データパケット２０２は、以下でさらに説明されるように、メディアアセット、そのソース、持続時間等を説明する、テキスト情報を含有してもよい。視聴覚データパケット２０４は、メディアガイドアプリケーションが表示画面上に番組を出力するために使用する情報（例えば、ピクセルカラー／輝度情報、可聴周波数、および振幅等）を含有してもよい。
【００４２】
メディアアセット情報データパケットは、メディアアセットの視聴覚情報への補足情報を含有するデータテーブルのための一貫した構造配列およびフォーマットを説明する、Ａｄｖａｎｃｅｄ  Ｔｅｌｅｖｉｓｉｏｎ  Ｓｙｓｔｅｍｓ  Ｃｏｍｍｉｔｔｅｅ，  Ｉｎｃ．の「ＡＴＳＣ  Ｒｅｃｏｍｍｅｎｄｅｄ  Ｐｒａｃｔｉｃｅ：  Ｐｒｏｇｒａｍａｎｄ  Ｓｙｓｔｅｍ  Ｉｎｆｏｒｍａｔｉｏｎ  Ｐｒｏｔｏｃｏｌ  Ｉｍｐｌｅｍｅｎｔａｔｉｏｎ  Ｇｕｉｄｅｌｉｎｅｓ  ｆｏｒ  Ｂｒｏａｄｃａｓｔｅｒｓ」に準拠する、メディアアセットについての情報を含有してもよい。一般的議論として、メディアアセット情報データパケット２０２のうちの特定のパケットは、パケットＩＤ２０６を含有してもよい。例えば、パケットＩＤ２０６は、ハッシング（例えば、整数等のインデックス値を各パケットに割り当てる関数）によって生成されてもよく、メディアガイドアプリケーションが特定のパケットを参照し、それを視聴覚データパケットにマップすることを可能にする、整数または文字列であってもよい。これは、メディアガイドアプリケーションが、特定の視聴覚データパケットまたはデータパケットのセットが特定のメディアアセット情報に対応することを決定することを可能にし得る（例えば、メディアガイドアプリケーションが、メディアアセットが現在伝送されていることを決定することを可能にする）。メディアアセット情報データパケット２０２のうちの特定のパケットは、加えて、イベント情報２０８と、評価情報２１０とを含有する。番組の拡張説明、チャネルリスト、または任意の他の関連情報に関する付加的情報２１２もまた、メディアアセット情報データパケット２０２の中に含有されてもよい。
【００４３】
評価情報２１０は、異なる評価が、番組を受信し得る異なる集団と合致される、テーブルとして配列されてもよい。例えば、メディアガイドアプリケーションは、評価情報２１０に関してテーブルで定義されるように、メディアアセットがＴＶ−１４と評価される、テキサスで番組を受信してもよい。メディアガイドアプリケーションは、ペアレンタルコントロール設定を実装する、すなわち、番組をロック解除するためのコードまたは個人識別番号を有していない限り、あるコンテンツ評価を上回るユーザによる視聴のために番組をロックするために、本情報を使用してもよい。
【００４４】
メディアアセット情報データパケットの中に含有されるイベント情報２０８は、図２に示されるように、テーブルに配列されてもよい。メディアアセット情報と同時に伝送される視聴覚データのコンテンツソース２１４は、チャネル番号、周波数、または他の識別子（例えば、「ＥＳＰＮ」等の局名）によって識別されてもよい。テーブルは、その放送時間およびコンテンツに基づいてテーブルの中の情報をインデックス化する、イベントＩＤ２１６等のイベントＩＤに基づいて配列されてもよい。例えば、インデックス「１」を伴うイベントＩＤ２１６が、コンテンツソース２１４からの現在放送されている番組を参照し得る一方で、より大きいインデックスを伴うイベントＩＤは、将来スケジュールされる番組を参照し得る。イベントＩＤ毎に、テーブルは、「１２：３０」等のローカル開始時間２１８についての情報を含有する。時間は、午前を午後と区別するように指定される付加的ビットを伴う１２時間フォーマット、または２４時間フォーマットで配列されてもよい。各イベントＩＤはまた、特定のイベントＩＤによって説明されるメディアアセットの長さ２２０も含有する。長さは、任意の時間の長さに対し得るが、容易にするために、秒数の四捨五入された整数値が、小数を要求し得る時間または日数よりも好ましくあり得る。
【００４５】
各イベントＩＤは、加えて、タイトル２２２「フットボール」等のタイトルを含有する。タイトルは、メディアアセットを識別する、英数字の任意の組み合わせであってもよいが、伝送の効率のためにデータパケットの中のあるバイト数に限定されてもよい。メディアアセットの付加的なより長い説明（例えば、番組２２８の説明）は、ある場合には、イベントＩＤ毎に見出されてもよい（例えば、短い段落の中でコンテンツを要約する概要）。しかしながら、ある場合には、番組２２８の説明のためのフィールドは、別個のデータパケットの中にあり得る、説明を含有する別のテーブルへのポインタを含有してもよい。各イベントＩＤは、特定のイベントＩＤが参照するものをメディアガイドアプリケーションに知らせる記述子を含有する。例えば、イベントＩＤ２１６は、メディアアセット自体についての情報を含有するため、記述子２２４「コンテンツ」を説明し得る。別の実施例として、異なるイベントＩＤは、帯域外で受信されるデータ、または記述子２２６「字幕」等のコンテンツソース２１４からの非視聴覚データを説明し得る。
【００４６】
いくつかの実施形態では、メディアガイドアプリケーションは、第１のコンテンツソースからのビデオに関連する情報を含有するテーブルを受信してもよい。例えば、メディアガイドアプリケーションは、図２に示されるように、テーブルに配列されるイベント情報２０８を受信してもよい。メディアガイドアプリケーションは、次いで、第１のメディアアセットインジケータに対応するテーブル内のフィールドから値を読み出してもよい。例えば、メディアガイドアプリケーションは、コンテンツソース２１４から現在伝送されているメディアアセットを表すため、「１」のインデックスを有する、イベントＩＤ２１６のタイトル２２２「フットボール」を読み出してもよい。代替として、または加えて、メディアガイドアプリケーションは、番組２２８の説明に対応するフィールドからデータを読み出し、読み出されたタイトル２２２と併せて本データを使用し、コンテンツソース２１４から現在伝送されているメディアアセットのより正確な決定を確実にしてもよい。例えば、メディアガイドアプリケーションは、タイトル２２２「フットボール」および番組２２８の説明「Ｍｉｃｈｉｇａｎ対ＵＳＣ」を読み出すステップに基づいて、「フットボール−Ｍｉｃｈｉｇａｎ対ＵＳＣ」がコンテンツソース２１４から現在伝送されていることを決定してもよい。このようにして、メディアガイドアプリケーションは、第１のメディアアセットインジケータがメディアアセットの識別子に合致するかどうかのより正確な決定のために、データパケットから付加的情報を抽出してもよい。
【００４７】
任意の所与のコンテンツ配信システムでユーザに利用可能なコンテンツの量が、膨大であり得る。その結果、多くのユーザは、ユーザがコンテンツの選択を効率的にナビゲートし、所望し得るコンテンツを容易に識別することを可能にする、インターフェースを通したメディアガイドの形態を所望している。そのようなガイドを提供するアプリケーションは、本明細書では、双方向メディアガイドアプリケーションと称されるが、時として、メディアガイドアプリケーションまたはガイドアプリケーションと称されることもある。
【００４８】
双方向メディアガイドアプリケーションは、ガイドを提供するコンテンツに応じて、種々の形態をとってもよい。１つの典型的なタイプのメディアガイドアプリケーションは、双方向テレビ番組ガイドである。双方向テレビ番組ガイド（時として、電子番組ガイドと称される）は、とりわけ、ユーザが、多くのタイプのコンテンツまたはメディアアセット間をナビゲートし、それを特定することを可能にする、周知のガイドアプリケーションである。双方向メディアガイドアプリケーションは、ユーザが、コンテンツ間をナビゲートし、それを特定および選択することを可能にする、グラフィカルユーザインターフェース画面を生成してもよい。本明細書で参照されるように、用語「メディアアセット」および「コンテンツ」は、テレビ番組、および有料番組、オンデマンド番組（ビデオオンデマンド（ＶＯＤ）システムにおけるような）、インターネットコンテンツ（例えば、ストリーミングコンテンツ、ダウンロード可能コンテンツ、ウェブキャスト等）、ビデオクリップ、オーディオ、コンテンツ情報、写真、回転画像、ドキュメント、再生一覧、ウェブサイト、記事、書籍、電子書籍、ブログ、チャットセッション、ソーシャルメディア、アプリケーション、ゲーム、および／または任意の他のメディアまたはマルチメディア、および／またはそれらの組み合わせ等の電子的に消費可能なユーザアセットを意味すると理解されたい。ガイドアプリケーションはまた、ユーザが、コンテンツ間をナビゲートし、それを特定することを可能にする。本明細書で参照されるように、用語「マルチメディア」は、上記で説明される少なくとも２つの異なるコンテンツ形態、例えば、テキスト、オーディオ、画像、ビデオ、または双方向コンテンツ形態を利用する、コンテンツを意味すると理解されたい。コンテンツは、ユーザ機器デバイスによって、録画、再生、表示、またはアクセスされてもよいが、また、ライブパーフォーマンスの一部であることもできる。
【００４９】
本明細書で議論される実施形態のいずれかを行うためのメディアガイドアプリケーションおよび／または任意の命令は、コンピュータ可読媒体上にエンコードされてもよい。コンピュータ可読媒体は、データを記憶することが可能な任意のメディアを含む。コンピュータ可読媒体は、限定ではないが、電気または電磁信号の伝搬を含む、一過性であり得る、または限定ではないが、ハードディスク、フロッピーディスク、ＵＳＢドライブ、ＤＶＤ、ＣＤ、メディアカード、レジスタメモリ、プロセッサキャッシュ、ランダムアクセスメモリ（「ＲＡＭ」）等の揮発性および不揮発性コンピュータメモリまたは記憶デバイスを含む、非一過性であり得る。
【００５０】
インターネット、モバイルコンピューティング、および高速無線ネットワークの出現に伴って、ユーザは、従来は使用しなかったユーザ機器デバイス上でメディアにアクセスするようになっている。本明細書で参照されるように、語句「ユーザ機器デバイス」、「ユーザ機器」、「ユーザデバイス」、「電子デバイス」、「電子機器」、「メディア機器デバイス」、または「メディアデバイス」は、テレビ、スマートＴＶ、セットトップボックス、衛星テレビに対応するための統合型受信機デコーダ（ＩＲＤ）、デジタル記憶デバイス、デジタルメディア受信機（ＤＭＲ）、デジタルメディアアダプタ（ＤＭＡ）、ストリーミングメディアデバイス、ＤＶＤプレーヤ、ＤＶＤレコーダ、接続型ＤＶＤ、ローカルメディアサーバ、ＢＬＵ−ＲＡＹ（登録商標）プレーヤ、ＢＬＵ−ＲＡＹ（登録商標）レコーダ、パーソナルコンピュータ（ＰＣ）、ラップトップコンピュータ、タブレットコンピュータ、ウェブＴＶボックス、パーソナルコンピュータテレビ（ＰＣ／ＴＶ）、ＰＣメディアサーバ、ＰＣメディアセンター、ハンドヘルドコンピュータ、固定電話、携帯情報端末（ＰＤＡ）、携帯電話、ポータブルビデオプレーヤ、ポータブル音楽プレーヤ、ポータブルゲーム機、スマートフォン、または任意の他のテレビ機器、コンピューティング機器、または無線デバイス、および／またはそれらの組み合わせ等の上記で説明されるコンテンツにアクセスするための任意のデバイスを意味すると理解されたい。いくつかの実施形態では、ユーザ機器デバイスは、正面画面および裏面画面、複数の正面画面、または複数の角度付き画面を有してもよい。いくつかの実施形態では、ユーザ機器デバイスは、正面カメラおよび／または裏面カメラを有してもよい。これらのユーザ機器デバイス上で、ユーザは、テレビを通して利用可能な同一のコンテンツ間をナビゲートし、それを特定することが可能であり得る。その結果として、メディアガイドは、これらのデバイス上でも利用可能であり得る。提供されるガイドは、テレビのみを通して利用可能なコンテンツ、他のタイプのユーザ機器デバイスのうちの１つ以上のもののみを通して利用可能なコンテンツ、またはテレビおよび他のタイプのユーザ機器デバイスのうちの１つ以上のものの両方を通して利用可能なコンテンツのためのものであってもよい。メディアガイドアプリケーションは、ユーザ機器デバイス上で、オンラインアプリケーション（すなわち、ウェブサイト上で提供される）として、または独立型アプリケーションまたはクライアントとして提供されてもよい。メディアガイドアプリケーションを実装し得る、種々のデバイスおよびプラットフォームは、以下でさらに詳細に説明される。
【００５１】
メディアガイドアプリケーションの機能のうちの１つは、メディアガイドデータをユーザに提供することである。本明細書で参照されるように、語句「メディアガイドデータ」または「ガイドデータ」は、コンテンツに関連する任意のデータまたはガイドアプリケーションを動作させる際に使用されるデータを意味すると理解されたい。例えば、ガイドデータは、番組情報、ガイドアプリケーション設定、ユーザ選好、ユーザプロファイル情報、メディア一覧、メディア関連情報（例えば、放送時間、放送チャネル、タイトル、内容、評価情報（例えば、ペアレンタルコントロール評価、批評家の評価等）、ジャンルまたはカテゴリ情報、俳優情報、放送会社またはプロバイダのロゴのロゴデータ等）、メディア形式（例えば、標準解像度、高解像度、３Ｄ等）、オンデマンド情報、ブログ、ウェブサイト、およびユーザが所望のコンテンツ選択間をナビゲートし、それを特定するために役立つ、任意の他のタイプのガイドデータを含んでもよい。
【００５２】
図３−４は、メディアガイドデータを提供するために使用され得る、例証的表示画面を示す。図３−４に示される表示画面は、任意の好適なユーザ機器デバイスまたはプラットフォーム上に実装されてもよい。図３−４の表示は、フル画面表示として図示されているが、それらはまた、表示されているコンテンツ上に完全または部分的にオーバーレイされてもよい。ユーザは、表示画面に提供された選択可能なオプション（例えば、メニューオプション、一覧オプション、アイコン、ハイパーリンク等）を選択することによって、またはリモートコントロールまたは他のユーザ入力インターフェースまたはデバイス上の専用ボタン（例えば、「ガイド」ボタン）を押下することによって、コンテンツ情報にアクセスする要望を示してもよい。ユーザのインジケーションに応答して、メディアガイドアプリケーションは、グリッド内の時間およびチャネル別、時間別、チャネル別、ソース別、コンテンツタイプ別、カテゴリ別（例えば、映画、スポーツ、ニュース、子供向け、または他の番組カテゴリ）、または他の所定、ユーザ定義、または他の編成基準等のいくつかの方法のうちの１つにおいて編成されたメディアガイドデータを表示画面に提供してもよい。
【００５３】
図３は、単一表示内の異なるタイプのコンテンツへのアクセスも可能にする、時間およびチャネル別に配列された番組一覧表示３００の例証的グリッドを示す。表示３００は、（１）各チャネル／コンテンツタイプ識別子（列内のセル）が利用可能な異なるチャネルまたはコンテンツのタイプを識別する、チャネル／コンテンツタイプ識別子３０４の列、および（２）各時間識別子（行内のセル）が番組の時間帯を識別する、時間識別子３０６の行を伴うグリッド３０２を含んでもよい。グリッド３０２はまた、番組一覧３０８等の番組一覧のセルも含み、各一覧は、一覧の関連チャネルおよび時間の上に提供される、番組のタイトルを提供する。ユーザ入力デバイスを用いて、ユーザは、ハイライト領域３１０を移動させることによって番組一覧を選択することができる。ハイライト領域３１０によって選択される番組一覧に関する情報が、番組情報領域３１２内に提供されてもよい。領域３１２は、例えば、番組タイトル、番組内容、番組が提供される時間（該当する場合）、番組が放送されるチャネル（該当する場合）、番組の評価、および他の所望の情報を含んでもよい。
【００５４】
線形番組（例えば、所定の時間に複数のユーザ機器デバイスに伝送されるようにスケジュールされ、スケジュールに従って提供されるコンテンツ）にアクセスを提供することに加えて、メディアガイドアプリケーションはまた、非線形番組（例えば、任意の時間においてユーザ機器デバイスにアクセス可能であって、スケジュールに従って提供されないコンテンツ）へのアクセスも提供する。非線形番組は、オンデマンドコンテンツ（例えば、ＶＯＤ）、インターネットコンテンツ（例えば、ストリーミングメディア、ダウンロード可能メディア等）、ローカルで記憶されたコンテンツ（例えば、上記で説明される任意のユーザ機器デバイスまたは他の記憶デバイス上に記憶されたコンテンツ）、または時間的制約のない他のコンテンツを含む、異なるコンテンツソースからのコンテンツを含んでもよい。オンデマンドコンテンツは、特定のコンテンツプロバイダ（例えば、「Ｔｈｅ  Ｓｏｐｒａｎｏｓ」や「Ｃｕｒｂ  Ｙｏｕｒ  Ｅｎｔｈｕｓｉａｓｍ」を提供するＨＢＯ  ＯＮ  ＤＥＭＡＮＤ）によって提供される映画または任意の他のコンテンツを含んでもよい。ＨＢＯ  ＯＮ  ＤＥＭＡＮＤは、Ｔｉｍｅ  Ｗａｒｎｅｒ  Ｃｏｍｐａｎｙ  Ｌ．Ｐ．らによって所有されるサービスマークであり、ＴＨＥ  ＳＯＰＲＡＮＯＳおよびＣＵＲＢ  ＹＯＵＲ  ＥＮＴＨＵＳＩＡＳＭは、Ｈｏｍｅ  Ｂｏｘ  Ｏｆｆｉｃｅ，  Ｉｎｃ．によって所有される商標である。インターネットコンテンツは、チャットセッションまたはウェブキャスト等のウェブイベント、またはインターネットウェブサイトまたは他のインターネットアクセス（例えば、ＦＴＰ）を通して、ストリーミングコンテンツまたはダウンロード可能なコンテンツとしてオンデマンドで利用可能なコンテンツを含んでもよい。
【００５５】
グリッド３０２は、オンデマンド一覧３１４、録画コンテンツ一覧３１６、およびインターネットコンテンツ一覧３１８を含む、非線形番組のメディアガイドデータを提供してもよい。異なるタイプのコンテンツソースからのコンテンツのためのメディアガイドデータを組み合わせる表示は、時として、「混合メディア」表示と称されることもある。表示３００とは異なる、表示され得るメディアガイドデータのタイプの種々の順列は、ユーザ選択またはガイドアプリケーション定義に基づいてもよい（例えば、録画および放送一覧のみの表示、オンデマンドおよび放送一覧のみの表示等）。例証されるように、一覧３１４、３１６、および３１８は、これらの一覧の選択が、それぞれ、オンデマンド一覧、録画一覧、またはインターネット一覧専用の表示へのアクセスを提供し得ることを示すように、グリッド３０２内に表示される時間帯全体に及ぶものとして示されている。いくつかの実施形態では、これらのコンテンツタイプの一覧は、グリッド３０２に直接含まれてもよい。ユーザがナビゲーションアイコン３２０のうちの１つを選択することに応答して、付加的メディアガイドデータが表示されてもよい（ユーザ入力デバイス上の矢印キーを押下することは、ナビゲーションアイコン３２０を選択することと同様に表示に影響を及ぼし得る）。
【００５６】
表示３００はまた、ビデオ領域３２２およびオプション領域３２６を含んでもよい。ビデオ領域３２２は、ユーザが、現在利用可能である、今後利用可能となる、またはユーザに利用可能であった番組を視聴および／またはプレビューすることを可能にしてもよい。ビデオ領域３２２のコンテンツは、グリッド３０２に表示される一覧のうちの１つに対応するか、またはそれから独立してもよい。ビデオ領域を含むグリッド表示は、時として、ピクチャインガイド（ＰＩＧ）表示と称されることもある。ＰＩＧ表示およびそれらの機能性は、参照することによってその全体として本明細書に組み込まれる、２００３年５月１３日発行のＳａｔｔｅｒｆｉｅｌｄらの米国特許第６，５６４，３７８号、および２００１年５月２９日発行のＹｕｅｎらの米国特許第６，２３９，７９４号でさらに詳細に説明されている。ＰＩＧ表示は、本明細書に説明される実施形態の他のメディアガイドアプリケーション表示画面に含まれてもよい。
【００５７】
オプション領域３２６は、ユーザが、異なるタイプのコンテンツ、メディアガイドアプリケーション表示、および／またはメディアガイドアプリケーション特徴にアクセスすることを可能にしてもよい。オプション領域３２６は、表示３００（および本明細書に説明される他の表示画面）の一部であってもよい、または画面上のオプションを選択すること、またはユーザ入力デバイス上の専用または割当可能ボタンを押下することによって、ユーザによって呼び出されてもよい。オプション領域３２６内の選択可能オプションは、グリッド３０２内の番組一覧に関連する特徴に関してもよい、またはメインメニュー表示から利用可能なオプションを含んでもよい。番組一覧に関連する特徴は、他の放送時間または番組の受信方法の検索、番組の録画、番組の連続録画の有効化、番組および／またはチャネルのお気に入りとしての設定、番組の購入、または他の特徴を含んでもよい。メインメニュー表示から利用可能なオプションは、検索オプション、ＶＯＤオプション、ペアレンタルコントロールオプション、インターネットオプション、クラウドベースのオプション、デバイス同期オプション、第２の画面デバイスオプション、種々のタイプのメディアガイドデータ表示にアクセスするオプション、プレミアムサービスをサブスクライブするオプション、ユーザのプロファイルを編集するオプション、ブラウザオーバーレイにアクセスするオプション、または他のオプションを含んでもよい。
【００５８】
メディアガイドアプリケーションは、ユーザの選好に基づいて個人化されてもよい。個人化されたメディアガイドアプリケーションは、ユーザが、メディアガイドアプリケーションを用いて個人化された「体験」を生成するように、表示および特徴をカスタマイズすることを可能にする。この個人化された体験は、ユーザがこれらのカスタマイズを入力することを可能にすることによって、および／または種々のユーザ選好を決定するようにメディアガイドアプリケーションがユーザアクティビティを監視することによって、生成されてもよい。ユーザは、ログインすることによって、または別様にガイドアプリケーションに対して自らを識別することによって、それらの個人化されたガイドアプリケーションにアクセスしてもよい。メディアガイドアプリケーションのカスタマイズは、ユーザプロファイルに従って作成されてもよい。カスタマイズは、提示方式（例えば、表示の色方式、テキストのフォントサイズ等）、表示されるコンテンツ一覧の側面（例えば、ＨＤＴＶ番組のみまたは３Ｄ番組のみ、お気に入りチャネル選択に基づいたユーザ指定の放送チャネル、チャネルの表示の並び替え、推奨コンテンツ等）、所望の録画特徴（例えば、特定のユーザに対する録画または連続録画、録画品質等）、ペアレンタルコントロール設定、インターネットコンテンツのカスタマイズされた提示（例えば、ソーシャルメディアコンテンツ、電子メール、電子的に配信された記事等の提示）、および他の所望のカスタマイズを変更させるステップを含んでもよい。
【００５９】
メディアガイドアプリケーションは、ユーザが、ユーザプロファイル情報を提供することを可能にしてもよい、またはユーザプロファイル情報を自動的にコンパイルしてもよい。メディアガイドアプリケーションは、例えば、ユーザがアクセスするコンテンツ、および／またはユーザがガイドアプリケーションと行い得る他の相互作用を監視してもよい。加えて、メディアガイドアプリケーションは、特定のユーザに関連する他のユーザプロファイルの全体または一部を取得し（例えば、ｗｗｗ．ａｌｌｒｏｖｉ．ｃｏｍ等のユーザがアクセスするインターネット上の他のウェブサイトから、ユーザがアクセスする他のメディアガイドアプリケーションから、ユーザがアクセスする他の双方向アプリケーションから、ユーザの別のユーザ機器デバイスから等）、および／またはメディアガイドアプリケーションがアクセスし得る他のソースから、ユーザについての情報を取得してもよい。結果として、ユーザは、ユーザの異なるユーザ機器デバイスにわたって、統一されたガイドアプリケーション体験を提供されることができる。本タイプのユーザ体験は、図６に関連して以下でさらに詳細に説明される。付加的な個人化されたメディアガイドアプリケーション特徴は、参照することによってその全体として本明細書に組み込まれる、２００５年７月１１日出願のＥｌｌｉｓらの米国特許出願第２００５／０２５１８２７号、２００７年１月１６日出願のＢｏｙｅｒらの米国特許出願第７，１６５，０９８号、および２００２年２月２１日出願のＥｌｌｉｓらの米国特許出願第２００２／０１７４４３０号でさらに詳細に説明されている。
【００６０】
メディアガイドを提供するための別の表示配列が、図４に示されている。ビデオモザイク表示４００は、コンテンツのタイプ、ジャンル、および／または他の編成基準に基づいて編成されたコンテンツ情報のための選択可能オプション４０２を含む。表示４００では、テレビ一覧オプション４０４が、選択され、したがって、一覧４０６、４０８、４１０、および４１２を放送番組一覧として提供する。表示４００では、一覧は、カバーアート、コンテンツからの静止画像、ビデオクリップのプレビュー、コンテンツからのライブビデオ、または一覧中のメディアガイドデータによって記述されているコンテンツをユーザに示す他のタイプのコンテンツを含む、グラフィック画像を提供してもよい。グラフィック一覧はまた、それぞれ、一覧と関連付けられるコンテンツに関するさらなる情報を提供するように、テキストを伴ってもよい。例えば、一覧４０８は、メディア部分４１４およびテキスト部分４１６を含む、１つを上回る部分を含んでもよい。メディア部分４１４および／またはテキスト部分４１６は、コンテンツをフル画面で視聴するように、またはメディア部分４１４に表示されるコンテンツに関連する情報を閲覧するように（例えば、ビデオが表示されるチャネルの一覧を閲覧するように）、選択可能であり得る。
【００６１】
表示４００内の一覧は、異なるサイズである（すなわち、一覧４０６は、一覧４０８、４１０、および４１２より大きい）が、所望に応じて、全ての一覧が同一のサイズであってもよい。一覧は、コンテンツプロバイダの所望に応じて、またはユーザ選好に基づいて、ユーザの関心の程度を示すように、またはあるコンテンツを強調するように、異なるサイズであるか、またはグラフィック的に強調されてもよい。コンテンツ一覧をグラフィック的に強調するための種々のシステムおよび方法は、例えば、参照することによってその全体として本明細書に組み込まれる、２００９年１１月１２日に出願されたＹａｔｅｓの米国特許出願公開第２０１０／０１５３８８５号で議論されている。
【００６２】
ユーザは、そのユーザ機器デバイスのうちの１つ以上のものから、コンテンツおよびメディアガイドアプリケーション（および上記および下記で説明されるその表示画面）にアクセスしてもよい。図５は、例証的ユーザ機器デバイス５００の一般化された実施形態を示す。ユーザ機器デバイスのより具体的な実装は、図６に関連して以下で議論される。ユーザ機器デバイス５００は、入出力（以下「Ｉ／Ｏ」）パス５０２を介して、コンテンツおよびデータを受信してもよい。Ｉ／Ｏパス５０２は、処理回路５０６および記憶装置５０８を含む制御回路５０４に、コンテンツ（例えば、放送番組、オンデマンド番組、インターネットコンテンツ、ローカルエリアネットワーク（ＬＡＮ）または広域ネットワーク（ＷＡＮ）を経由して利用可能なコンテンツ、および／または他のコンテンツ）およびデータを提供してもよい。制御回路５０４は、Ｉ／Ｏパス５０２を使用して、コマンド、要求、および他の好適なデータを送受信するために使用されてもよい。Ｉ／Ｏパス５０２は、制御回路５０４（具体的には、処理回路５０６）を１つ以上の通信パス（以下で説明される）に接続してもよい。Ｉ／Ｏ機能は、これらの通信パスのうちの１つ以上のものによって提供されてもよいが、図面が複雑になり過ぎることを回避するため、図５では単一パスとして示されている。
【００６３】
制御回路５０４は、処理回路５０６等の任意の好適な処理回路に基づいてもよい。本明細書で参照されるように、処理回路とは、１つ以上のマイクロプロセッサ、マイクロコントローラ、デジタル信号プロセッサ、プログラマブル論理デバイス、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）、特定用途向け集積回路（ＡＳＩＣ）等に基づく回路を意味すると理解され、マルチコアプロセッサ（例えば、デュアルコア、クアドコア、ヘクサコア、または任意の好適な数のコア）またはスーパーコンピュータを含んでもよい。いくつかの実施形態では、処理回路は、複数の別個のプロセッサまたは処理ユニット、例えば、複数の同一のタイプの処理ユニット（例えば、２つのＩｎｔｅｌ  Ｃｏｒｅ  ｉ７プロセッサ）または複数の異なるプロセッサ（例えば、Ｉｎｔｅｌ  Ｃｏｒｅ  ｉ５プロセッサおよびＩｎｔｅｌ  Ｃｏｒｅ  ｉ７プロセッサ）にわたって分散されてもよい。いくつかの実施形態では、制御回路５０４は、メモリ（すなわち、記憶装置５０８）に記憶されたメディアガイドアプリケーションに対する命令を実行する。具体的には、制御回路５０４は、メディアガイドアプリケーションによって、上記および下記で議論される機能を果たすように命令されてもよい。例えば、メディアガイドアプリケーションは、制御回路５０４に、メディアガイド表示を生成するための命令を提供してもよい。いくつかの実装では、制御回路５０４によって実施される任意のアクションは、メディアガイドアプリケーションから受信される命令に基づいてもよい。
【００６４】
クライアントサーバベースの実施形態では、制御回路５０４は、ガイドアプリケーションサーバまたは他のネットワークまたはサーバと通信するための好適な通信回路を含んでもよい。上記に述べられる機能性を実施するための命令は、ガイドアプリケーションサーバ上に記憶されてもよい。通信回路は、ケーブルモデム、総合デジタル通信網（ＩＳＤＮ）モデム、デジタルサブスクライバ回線（ＤＳＬ）モデム、電話モデム、イーサネット（登録商標）カード、または他の機器との通信用の無線モデム、または任意の他の好適な通信回路を含んでもよい。そのような通信は、インターネットまたは任意の他の好適な通信ネットワークまたはパスを伴ってもよい（図６に関連してさらに詳細に説明される）。加えて、通信回路は、ユーザ機器デバイスのピアツーピア通信、または相互から遠隔の場所にあるユーザ機器デバイスの通信を可能にする回路を含んでもよい（以下でさらに詳細に説明される）。
【００６５】
メモリは、制御回路５０４の一部である、記憶装置５０８として提供される、電子記憶デバイスであってもよい。本明細書で参照されるように、語句「電子記憶デバイス」または「記憶デバイス」とは、ランダムアクセスメモリ、読取専用メモリ、ハードドライブ、光学ドライブ、デジタルビデオディスク（ＤＶＤ）レコーダ、コンパクトディスク（ＣＤ）レコーダ、ＢＬＵ−ＲＡＹ（登録商標）ディスク（ＢＤ）レコーダ、ＢＬＵ−ＲＡＹ（登録商標）  ３Ｄディスクレコーダ、デジタルビデオレコーダ（ＤＶＲ、または時として、パーソナルビデオレコーダ（ＰＶＲ）と呼ばれる場合もある）、ソリッドステートデバイス、量子記憶デバイス、ゲームコンソール、ゲームメディア、または任意の他の好適な固定またはリムーバブル記憶デバイス、および／またはそれらの任意の組み合わせ等の電子データ、コンピュータソフトウェア、またはファームウェアを記憶するための任意のデバイスを意味すると理解されたい。記憶装置５０８は、本明細書に説明される種々のタイプのコンテンツ、および上記で説明されるメディアガイドデータを記憶するために使用されてもよい。不揮発性メモリもまた、（例えば、ブートアップルーチンおよび他の命令を起動するために）使用されてもよい。図６に関連して説明される、クラウドベースの記憶装置が、記憶装置５０８を補完するために、または記憶装置５０８の代わりに使用されてもよい。
【００６６】
制御回路５０４は、１つ以上のアナログチューナ、１つ以上のＭＰＥＧ−２デコーダ、または他のデジタルデコード回路、高解像度チューナ、または任意の他の好適な同調またはビデオ回路、またはそのような回路の組み合わせ等のビデオ生成回路および同調回路を含んでもよい。（例えば、記憶するために、無線、アナログ、またはデジタル信号をＭＰＥＧ信号に変換するための）エンコード回路もまた、提供されてもよい。制御回路５０４はまた、コンテンツをユーザ機器５００の好ましい出力形式に上方変換および下方変換するためのスケーリング回路を含んでもよい。回路５０４はまた、デジタル信号とアナログ信号との間で変換するためのデジタル／アナログ変換回路およびアナログ／デジタル変換回路を含んでもよい。同調およびエンコード回路は、コンテンツを受信して表示する、再生する、または録画するために、ユーザ機器デバイスによって使用されてもよい。同調およびエンコード回路はまた、ガイドデータを受信するために使用されてもよい。例えば、同調、ビデオ生成、エンコード、デコード、暗号化、解読、スケーリング、およびアナログ／デジタル回路を含む、本明細書に説明される回路は、１つ以上の汎用または特殊プロセッサ上で起動するソフトウェアを使用して実装されてもよい。複数のチューナが、同時同調機能（例えば、視聴および録画機能、ピクチャインピクチャ（ＰＩＰ）機能、多重チューナ録画機能等）に対処するように提供されてもよい。記憶装置５０８が、ユーザ機器５００とは別のデバイスとして提供される場合、同調およびエンコード回路（複数のチューナを含む）は、記憶装置５０８と関連付けられてもよい。
【００６７】
ユーザは、ユーザ入力インターフェース５１０を使用して、命令を制御回路５０４に送信してもよい。ユーザ入力インターフェース５１０は、リモートコントロール、マウス、トラックボール、キーパッド、キーボード、タッチスクリーン、タッチパッド、スタイラス入力、ジョイスティック、音声認識インターフェース、または他のユーザ入力インターフェース等の任意の好適なユーザインターフェースであってもよい。ディスプレイ５１２は、独立型デバイスとして提供されるか、またはユーザ機器デバイス５００の他の要素と統合されてもよい。例えば、ディスプレイ５１２は、タッチスクリーンまたはタッチセンサ式ディスプレイであってもよい。そのような状況では、ユーザ入力インターフェース５１０は、ディスプレイ５１２と統合されるか、または組み合わせられてもよい。ディスプレイ５１２は、モニタ、テレビ、モバイルデバイス用液晶ディスプレイ（ＬＣＤ）、非晶質シリコンディスプレイ、低温ポリシリコンディスプレイ、電子インクディスプレイ、電気泳動ディスプレイ、アクティブマトリクスディスプレイ、エレクトロウェッティングディスプレイ、電気流体ディスプレイ、ブラウン管ディスプレイ、発光ダイオードディスプレイ、エレクトロルミネセントディスプレイ、プラズマディスプレイパネル、高性能アドレッシングディスプレイ、薄膜トランジスタディスプレイ、有機発光ダイオードディスプレイ、表面伝導型電子放出素子ディスプレイ（ＳＥＤ）、レーザテレビ、カーボンナノチューブ、量子ドットディスプレイ、干渉変調器ディスプレイ、または視覚的画像を表示するための任意の他の好適な機器のうちの１つ以上のものであってもよい。いくつかの実施形態では、ディスプレイ５１２は、ＨＤＴＶ対応型であり得る。いくつかの実施形態では、ディスプレイ５１２は、３Ｄディスプレイであってもよく、双方向メディアガイドアプリケーションおよび任意の好適なコンテンツは、３Ｄで表示されてもよい。ビデオカードまたはグラフィックカードは、ディスプレイ５１２への出力を生成してもよい。ビデオカードは、３Ｄシーンおよび２Ｄグラフィックのレンダリング加速、ＭＰＥＧ−２／ＭＰＥＧ−４デコード、ＴＶ出力、または複数のモニタを接続する能力等の種々の機能を提供し得る。ビデオカードは、制御回路５０４に関連する上記で説明される任意の処理回路であってもよい。ビデオカードは、制御回路５０４と統合されてもよい。スピーカ５１４は、ユーザ機器デバイス５００の他の要素と統合されたものとして提供されてもよい、または独立型ユニットであってもよい。ディスプレイ５１２上に表示されるビデオおよび他のコンテンツのオーディオコンポーネントは、スピーカ５１４を通して再生されてもよい。いくつかの実施形態では、オーディオは、スピーカ５１４を介して音声を処理および出力する、受信機（図示せず）に配信されてもよい。
【００６８】
ガイドアプリケーションは、任意の好適なアーキテクチャを使用して実装されてもよい。例えば、これは、ユーザ機器デバイス５００上で完全に実装される、独立型アプリケーションであってもよい。そのようなアプローチでは、アプリケーションの命令は、ローカルで（例えば、記憶装置５０８内に）記憶され、アプリケーションによって使用するためのデータは、周期的にダウンロードされる（例えば、帯域外フィードから、インターネットリソースから、または別の好適なアプローチを使用して）。制御回路５０４は、記憶装置５０８からアプリケーションの命令を読み出し、本明細書で議論される表示のうちのいずれかを生成するための命令を処理してもよい。処理された命令に基づいて、制御回路５０４は、入力がユーザ入力インターフェース５１０から受信されるときに実施するアクションを決定してもよい。例えば、表示上のカーソルの上／下への移動は、ユーザ入力インターフェース５１０が上／下ボタンが選択されたことを示すときに、処理された命令によって示されてもよい。
【００６９】
いくつかの実施形態では、メディアガイドアプリケーションは、クライアントサーバベースのアプリケーションである。ユーザ機器デバイス５００上に実装される、シックまたはシンクライアントによって使用するためのデータは、ユーザ機器デバイス５００の遠隔にあるサーバに要求を発行することによって、オンデマンドで読み出される。クライアントサーバベースのガイドアプリケーションの一実施例では、制御回路５０４は、遠隔サーバによって提供されるウェブページを解釈する、ウェブブラウザを起動する。例えば、遠隔サーバは、記憶デバイス内にアプリケーションのための命令を記憶してもよい。遠隔サーバは、回路（例えば、制御回路５０４）を使用して、記憶された命令を処理し、上記および下記で議論される表示を生成してもよい。クライアントデバイスは、遠隔サーバによって生成される表示を受信してもよく、表示のコンテンツを機器デバイス５００上でローカルで表示してもよい。このように、命令の処理が、サーバによって遠隔で実施される一方、結果として生じる表示は、機器デバイス５００上でローカルで提供される。機器デバイス５００は、ユーザ入力インターフェース５１０を介して、ユーザから入力を受信し、対応する表示を処理および生成するために、それらの入力を遠隔サーバに伝送してもよい。例えば、機器デバイス５００は、上／下ボタンがユーザ入力インターフェース５１０を介して選択されたことを示す、通信を遠隔サーバに伝送してもよい。遠隔サーバは、その入力に従って命令を処理し、入力に対応するアプリケーションの表示を生成してもよい（例えば、カーソルを上／下に移動させる表示）。生成された表示は、次いで、ユーザへの提示のために、機器デバイス５００に伝送される。
【００７０】
いくつかの実施形態では、メディアガイドアプリケーションは、インタープリタまたは仮想マシン（制御回路５０４によって起動される）によって、ダウンロードされ、解釈または別様に起動される。いくつかの実施形態では、ガイドアプリケーションは、ＥＴＶバイナリ交換形式（ＥＴＶ  Ｂｉｎａｒｙ  Ｉｎｔｅｒｃｈａｎｇｅ  Ｆｏｒｍａｔ／ＥＢＩＦ）でエンコードされ、好適なフィードの一部として制御回路５０４によって受信され、制御回路５０４上で起動するユーザエージェントによって解釈されてもよい。例えば、ガイドアプリケーションは、ＥＢＩＦアプリケーションであってもよい。いくつかの実施形態では、ガイドアプリケーションは、制御回路５０４によって実行されるローカル仮想マシンまたは他の好適なミドルウェアによって受信および起動される、一連のＪＡＶＡ（登録商標）ベースのファイルによって定義されてもよい。そのような実施形態のうちのいくつか（例えば、ＭＰＥＧ−２または他のデジタルメディアエンコードスキームを採用するもの）では、ガイドアプリケーションは、例えば、番組のＭＰＥＧオーディオおよびビデオパケットを用いたＭＰＥＧ−２オブジェクトカルーセルにおいてエンコードおよび伝送されてもよい。
【００７１】
図５のユーザ機器デバイス５００は、ユーザテレビ機器６０２、ユーザコンピュータ機器６０４、無線ユーザ通信デバイス６０６、または非携帯用ゲーム機等のコンテンツにアクセスするために好適な任意の他のタイプのユーザ機器として、図６のシステム６００に実装されることができる。簡単にするために、これらのデバイスは、本明細書では総称して、ユーザ機器またはユーザ機器デバイスと称されてもよく、上記で説明されるユーザ機器デバイスに実質的に類似し得る。メディアガイドアプリケーションが実装され得る、ユーザ機器デバイスは、独立型デバイスとして機能してもよい、またはデバイスのネットワークの一部であってもよい。デバイスの種々のネットワーク構成が実装されてもよく、以下でさらに詳細に議論される。
【００７２】
図５に関連して上記で説明されるシステム特徴のうちの少なくともいくつかを利用する、ユーザ機器デバイスは、単に、ユーザテレビ機器６０２、ユーザコンピュータ機器６０４、または無線ユーザ通信デバイス６０６として分類されなくてもよい。例えば、ユーザテレビ機器６０２は、いくつかのユーザコンピュータ機器６０４のように、インターネットコンテンツへのアクセスを可能にするインターネット対応型であり得る一方で、ユーザコンピュータ機器６０４は、あるテレビ機器６０２のように、テレビ番組へのアクセスを可能にするチューナを含んでもよい。メディアガイドアプリケーションは、種々の異なるタイプのユーザ機器上で同一のレイアウトを有してもよい、またはユーザ機器の表示能力に合わせられてもよい。例えば、ユーザコンピュータ機器６０４上では、ガイドアプリケーションは、ウェブブラウザによってアクセスされるウェブサイトとして提供されてもよい。別の実施例では、ガイドアプリケーションは、無線ユーザ通信デバイス６０６用に縮小されてもよい。
【００７３】
システム６００では、典型的には、各タイプのユーザ機器デバイスが１つを上回って存在するが、図面が複雑になり過ぎることを回避するように、それぞれ１つだけが図６に示されている。加えて、各ユーザは、１つを上回るタイプのユーザ機器デバイスと、また、各タイプのユーザ機器デバイスのうちの１つを上回るものとを利用してもよい。
【００７４】
いくつかの実施形態では、ユーザ機器デバイス（例えば、ユーザテレビ機器６０２、ユーザコンピュータ機器６０４、無線ユーザ通信デバイス６０６）は、「第２の画面デバイス」と称されてもよい。例えば、第２の画面デバイスは、第１のユーザ機器デバイス上に提示されるコンテンツを補完してもよい。第２の画面デバイス上に提示されるコンテンツは、第１のデバイス上に提示されるコンテンツを補完する、任意の好適なコンテンツであってもよい。いくつかの実施形態では、第２の画面デバイスは、第１のデバイスの設定および表示選好を調節するためのインターフェースを提供する。いくつかの実施形態では、第２の画面デバイスは、他の第２の画面デバイスと相互作用するため、またはソーシャルネットワークと相互作用するために構成される。第２の画面デバイスは、第１のデバイスと同一の部屋内に、第１のデバイスと異なる部屋であるが同一の家または建物内に、または第１のデバイスと異なる建物内に位置することができる。
【００７５】
ユーザはまた、家庭内デバイスおよび遠隔デバイスにわたって一貫したメディアガイドアプリケーション設定を維持するように、種々の設定を設定してもよい。設定は、本明細書に説明されるもの、およびお気に入りのチャネルおよび番組、番組を推奨するためにガイドアプリケーションが利用する番組選好、表示選好、および他の望ましいガイド設定を含む。例えば、ユーザが、そのオフィスのパーソナルコンピュータ上、例えば、ウェブサイトｗｗｗ．ａｌｌｒｏｖｉ．ｃｏｍの上で、チャネルをお気に入りとして設定した場合、同一のチャネルが、ユーザの家庭内デバイス（例えば、ユーザテレビ機器およびユーザコンピュータ機器）上で、および所望に応じて、ユーザのモバイルデバイス上でお気に入りとして表示されるであろう。したがって、同一または異なるタイプのユーザ機器デバイスであるかどうかにかかわらず、１つのユーザ機器デバイス上で行われる変更は、別のユーザ機器デバイス上のガイド体験を変更することができる。加えて、行われる変更は、ユーザによって入力される設定、およびガイドアプリケーションによって監視されるユーザアクティビティに基づいてもよい。
【００７６】
ユーザ機器デバイスは、通信ネットワーク６１４に結合されてもよい。すなわち、ユーザテレビ機器６０２、ユーザコンピュータ機器６０４、および無線ユーザ通信デバイス６０６は、それぞれ、通信パス６０８、６１０、および６１２を介して、通信ネットワーク６１４に結合される。通信ネットワーク６１４は、インターネット、携帯電話ネットワーク、モバイルボイスまたはデータネットワーク（例えば、４ＧまたはＬＴＥネットワーク）、ケーブルネットワーク、公衆交換電話ネットワーク、または他のタイプの通信ネットワーク、または通信ネットワークの組み合わせを含む、１つ以上のネットワークであってもよい。パス６０８、６１０、６１２、および６１２は、別個または一緒に、衛星パス、光ファイバパス、ケーブルパス、インターネット通信をサポートするパス（例えば、ＩＰＴＶ）、フリースペース接続（例えば、放送または他の無線信号用）、または任意の他の好適な有線または無線通信パス、またはそのようなパスの組み合わせ等の１つ以上の通信パスを含んでもよい。パス６１２は、図６に示される例示的実施形態では、無線パスであることを示すように破線で描かれ、パス６０８および６１０は、有線パスであることを示すように実線として描かれている（しかし、これらのパスは、所望に応じて、無線パスであってもよい）。ユーザ機器デバイスとの通信は、これらの通信パスのうちの１つ以上のものによって提供されてもよいが、図６では、図面が複雑になり過ぎることを回避するように、単一パスとして示されている。
【００７７】
通信パスは、ユーザ機器デバイスの間には描かれていないが、これらのデバイスは、パス６０８、６１０、および６１２に関連して上記で説明されるもの、およびＵＳＢケーブル、ＩＥＥＥ  １３９４ケーブル、無線パス（例えば、Ｂｌｕｅｔｏｏｔｈ（登録商標）、赤外線、ＩＥＥＥ  ８０２−１１ｘ等）等の他の短距離ポイントツーポイント通信パス、または有線または無線パスを介した他の短距離通信等の通信パス等を介して、相互に直接通信してもよい。ＢＬＵＥＴＯＯＴＨ（登録商標）は、Ｂｌｕｅｔｏｏｔｈ  ＳＩＧ，  ＩＮＣ．によって所有される認証マークである。ユーザ機器デバイスはまた、通信ネットワーク６１４を介した間接パスを通して、相互に直接通信してもよい。
【００７８】
システム６００は、それぞれ、通信パス６２０および６２２を介して、通信ネットワーク６１４に結合される、コンテンツソース６１６およびメディアガイドデータソース６１８を含む。パス６２０および６２２は、パス６０８、６１０、および６１２に関連して上記で説明される通信パスのうちのいずれかを含んでもよい。コンテンツソース６１６およびメディアガイドデータソース６１８との通信は、１つ以上の通信パスを介して交信されてもよいが、図６では、図面が複雑になり過ぎることを回避するように、単一パスとして示される。加えて、コンテンツソース６１６およびメディアガイドデータソース６１８のそれぞれが１つを上回って存在し得るが、図面が複雑になり過ぎることを回避するように、それぞれ１つだけが図６に示されている。（異なるタイプのこれらのソースのそれぞれが以下で議論される）。所望に応じて、コンテンツソース６１６およびメディアガイドデータソース６１８は、１つのソースデバイスとして統合されてもよい。ソース６１６および６１８と、ユーザ機器デバイス６０２、６０４、および６０６との間の通信は、通信ネットワーク６１４を通したものとして示されるが、いくつかの実施形態では、ソース６１６および６１８は、パス６０８、６１０、および６１２に関連して上記で説明されるもの等の通信パス（図示せず）を介して、ユーザ機器デバイス６０２、６０４、および６０６と直接通信してもよい。
【００７９】
コンテンツソース６１６は、テレビ配信施設、ケーブルシステムヘッドエンド、衛星配信施設、番組ソース（例えば、ＮＢＣ、ＡＢＣ、ＨＢＯ等のテレビ放送会社）、中間配信施設および／またはサーバ、インターネットプロバイダ、オンデマンドメディアサーバ、および他のコンテンツプロバイダを含む、１つ以上のタイプのコンテンツ配信機器を含んでもよい。ＮＢＣは、Ｎａｔｉｏｎａｌ  Ｂｒｏａｄｃａｓｔｉｎｇ  Ｃｏｍｐａｎｙ，  Ｉｎｃ．によって所有される商標であり、ＡＢＣは、Ａｍｅｒｉｃａｎ  Ｂｒｏａｄｃａｓｔｉｎｇ  Ｃｏｍｐａｎｙ，  ＩＮＣ．によって所有される商標であり、ＨＢＯは、Ｈｏｍｅ  Ｂｏｘ  Ｏｆｆｉｃｅ，  Ｉｎｃ．によって所有される商標である。コンテンツソース６１６は、コンテンツの発信元であってもよく（例えば、テレビ放送会社、ウェブキャストプロバイダ等）、またはコンテンツの発信元でなくてもよい（例えば、オンデマンドコンテンツプロバイダ、ダウンロード用放送番組のコンテンツのインターネットプロバイダ等）。コンテンツソース６１６は、ケーブルソース、衛星プロバイダ、オンデマンドプロバイダ、インターネットプロバイダ、オーバーザトップコンテンツプロバイダ、または他のコンテンツのプロバイダを含んでもよい。コンテンツソース６１６はまた、ユーザ機器デバイスのうちのいずれかから遠隔の場所にある、異なるタイプのコンテンツ（ユーザによって選択されるビデオコンテンツを含む）を記憶するために使用される、遠隔メディアサーバを含んでもよい。コンテンツの遠隔記憶のため、および遠隔に記憶されたコンテンツをユーザ機器に提供するためのシステムおよび方法は、参照することによってその全体として本明細書に組み込まれる、２０１０年７月２０日出願のＥｌｌｉｓらの米国特許出願第７，７６１，８９２号に関連して、さらに詳細に議論されている。
【００８０】
メディアガイドデータソース６１８は、上記で説明されるメディアガイドデータ等のメディアガイドデータを提供してもよい。メディアガイドデータは、任意の好適なアプローチを使用して、ユーザ機器デバイスに提供されてもよい。いくつかの実施形態では、ガイドアプリケーションは、データフィード（例えば、継続フィードまたはトリクルフィード）を介して、番組ガイドデータを受信する、独立型双方向テレビ番組ガイドであってもよい。番組スケジュールデータおよび他のガイドデータは、テレビチャネルのサイドバンド上で、帯域内デジタル信号を使用して、帯域外デジタル信号を使用して、または任意の他の好適なデータ伝送技術によって、ユーザ機器に提供されてもよい。番組スケジュールデータおよび他のメディアガイドデータは、複数のアナログまたはデジタルテレビチャネル上でユーザ機器に提供されてもよい。
【００８１】
いくつかの実施形態では、メディアガイドデータソース６１８からのガイドデータは、クライアントサーバアプローチを使用して、ユーザの機器に提供されてもよい。例えば、ユーザ機器デバイスは、メディアガイドデータをサーバからプルしてもよい、またはサーバは、メディアガイドデータをユーザ機器デバイスにプッシュしてもよい。いくつかの実施形態では、ユーザの機器上に常駐するガイドアプリケーションクライアントは、必要に応じて、例えば、ガイドデータが古くなっているとき、またはユーザ機器デバイスが、データを受信するための要求をユーザから受信するとき、ソース６１８とセッションを開始し、ガイドデータを取得してもよい。メディアガイドは、任意の好適な頻度で（例えば、継続的に、毎日、ユーザ規定期間で、システム規定期間で、ユーザ機器からの要求に応答して等）ユーザ機器に提供されてもよい。メディアガイドデータソース６１８は、ユーザ機器デバイス６０２、６０４、および６０６に、メディアガイドアプリケーション自体、またはメディアガイドアプリケーションのソフトウェア更新を提供してもよい。
【００８２】
いくつかの実施形態では、メディアガイドデータは、視聴者データを含んでもよい。例えば、視聴者データは、現在および／または履歴ユーザアクティビティ情報（例えば、ユーザが典型的に鑑賞するコンテンツ、ユーザがコンテンツを鑑賞する時刻、ユーザがソーシャルネットワークと相互作用するかどうか、ユーザがソーシャルネットワークと相互作用し、情報をポストする時間、ユーザが典型的に鑑賞するコンテンツのタイプ（例えば、有料ＴＶまたは無料ＴＶ）、気分、脳の活動情報等）を含んでもよい。メディアガイドデータはまた、サブスクリプションデータを含んでもよい。例えば、サブスクリプションデータは、所与のユーザがサブスクライブするソースまたはサービスおよび／または所与のユーザが以前にサブスクライブしていたが、後にアクセスを打ち切ったソースまたはサービス（例えば、ユーザがプレミアムチャネルをサブスクライブしているかどうか、ユーザがプレミアムレベルのサービスを追加したかどうか、ユーザがインターネット速度を加速させたかどうか）を識別してもよい。いくつかの実施形態では、視聴者データおよび／またはサブスクリプションデータは、１年を上回る周期の間の所与のユーザのパターンを識別してもよい。メディアガイドデータは、所与のユーザがサービス／ソースへのアクセスを打ち切るであろう可能性を示すスコアを生成するために使用される、モデル（例えば、残存者モデル）を含んでもよい。例えば、メディアガイドアプリケーションは、所与のユーザが特定のサービスまたはソースへのアクセスを打ち切るであろうかどうかの可能性を示す、値またはスコアを生成するためのモデルを併用して、サブスクリプションデータとともに視聴者データを処理してもよい。特に、より高いスコアは、ユーザが特定のサービスまたはソースへのアクセスを打ち切るであろう、より高いレベルの信頼性を示し得る。スコアに基づいて、メディアガイドアプリケーションは、ユーザがアクセスを打ち切る可能性が高いであろうものとしてスコアによって示される特定のサービスまたはソースをユーザが維持するように勧誘する宣伝を生成してもよい。
【００８３】
メディアガイドアプリケーションは、例えば、ユーザ機器デバイス上に実装される独立型アプリケーションであってもよい。例えば、メディアガイドアプリケーションは、記憶装置５０８内に記憶され、ユーザ機器デバイス５００の制御回路５０４によって実行され得る、ソフトウェアまたは実行可能命令のセットとして実装されてもよい。いくつかの実施形態では、メディアガイドアプリケーションは、クライアント−サーバアプリケーションであってもよく、その場合、クライアントアプリケーションのみが、ユーザ機器デバイス上に常駐し、サーバアプリケーションは、遠隔サーバ上に常駐する。例えば、メディアガイドアプリケーションは、部分的にユーザ機器デバイス５００の制御回路５０４上のクライアントアプリケーションとして、および遠隔サーバの制御回路上で起動するサーバアプリケーション（例えば、メディアガイドデータソース６１８）として部分的に遠隔サーバ上で、実装されてもよい。遠隔サーバの制御回路（メディアガイドデータソース６１８等）によって実行されると、メディアガイドアプリケーションは、制御回路に、ガイドアプリケーション表示を生成し、生成された表示をユーザ機器デバイスに伝送するように命令してもよい。サーバアプリケーションは、メディアガイドデータソース６１８の制御回路に、ユーザ機器上での記憶のためのデータを伝送するように命令してもよい。クライアントアプリケーションは、受信用ユーザ機器の制御回路に、ガイドアプリケーション表示を生成するように命令してもよい。
【００８４】
ユーザ機器デバイス６０２、６０４、および６０６に配信されるコンテンツおよび／またはメディアガイドデータは、オーバーザトップ（ＯＴＴ）コンテンツであってもよい。ＯＴＴコンテンツ配信は、上記で説明される任意のユーザ機器デバイスを含む、インターネット対応型ユーザデバイスが、ケーブルまたは衛星接続を経由して受信されるコンテンツに加えて、上記で説明される任意のコンテンツを含む、インターネットを経由して転送されるコンテンツを受信することを可能にする。ＯＴＴコンテンツは、インターネットサービスプロバイダ（ＩＳＰ）によって提供されるインターネット接続を介して配信されるが、第三者も、コンテンツを配信する。ＩＳＰは、視聴能力、著作権、またはコンテンツの再配信に責任がない場合があり、ＯＴＴコンテンツプロバイダによって提供されるＩＰパケットのみを転送してもよい。ＯＴＴコンテンツプロバイダの実施例は、ＩＰパケットを介して、オーディオおよびビデオを提供する、ＹＯＵＴＵＢＥ（登録商標）、ＮＥＴＦＬＩＸ、およびＨＵＬＵを含む。Ｙｏｕｔｕｂｅ（登録商標）は、Ｇｏｏｇｌｅ  Ｉｎｃ．によって所有される商標であり、Ｎｔｆｌｉｘは、Ｎｔｆｌｉｘ，  Ｉｎｃ．によって所有される商標であり、Ｈｕｌｕは、Ｈｕｌｕ，  ＬＬＣ．によって所有される商標である。ＯＴＴコンテンツプロバイダは、加えて、または代替として、上記で説明されるメディアガイドデータを提供してもよい。コンテンツおよび／またはメディアガイドデータに加えて、ＯＴＴコンテンツのプロバイダは、メディアガイドアプリケーション（例えば、ウェブベースのアプリケーションまたはクラウドベースのアプリケーション）を配信することができる、またはコンテンツは、ユーザ機器デバイス上に記憶されたメディアガイドアプリケーションによって表示されることができる。
【００８５】
メディアガイドシステム６００は、いくつかのアプローチまたはネットワーク構成を例証することを意図しており、これによって、ユーザ機器デバイスおよびコンテンツおよびガイドデータのソースは、コンテンツにアクセスし、メディアガイドを提供する目的のために、相互に通信してもよい。本明細書に説明される実施形態は、これらのアプローチのうちのいずれか１つまたは一部において、またはコンテンツを配信し、メディアガイドを提供するための他のアプローチを採用するシステムにおいて、適用されてもよい。以下の４つのアプローチは、図６の一般化された実施例の具体的例証を提供する。
【００８６】
あるアプローチでは、ユーザ機器デバイスは、ホームネットワーク内で相互に通信してもよい。ユーザ機器デバイスは、上記で説明される短距離ポイントツーポイント通信方式を介して、ホームネットワーク上に提供されるハブまたは他の類似デバイスを通した間接パスを介して、または通信ネットワーク６１４を介して、相互に直接通信することができる。１つの家庭内の複数の個人のそれぞれが、ホームネットワーク上の異なるユーザ機器デバイスを動作させてもよい。結果として、種々のメディアガイド情報または設定が、異なるユーザ機器デバイスの間で通信されることが望ましくあり得る。例えば、２００５年７月１１日出願のＥｌｌｉｓらの米国特許公開第２００５／０２５１８２７号でさらに詳細に説明されるように、ホームネットワーク内の異なるユーザ機器デバイス上で、ユーザが一貫したメディアガイドアプリケーション設定を維持することが望ましくあり得る。ホームネットワーク内の異なるタイプのユーザ機器デバイスもまた、相互に通信し、コンテンツを伝送してもよい。例えば、ユーザは、ユーザコンピュータ機器から携帯用ビデオプレーヤまたは携帯用音楽プレーヤにコンテンツを伝送してもよい。
【００８７】
第２のアプローチでは、ユーザは、複数のタイプのユーザ機器を有してもよく、これによって、コンテンツにアクセスし、メディアガイドを取得する。例えば、一部のユーザは、家庭内およびモバイルデバイスによってアクセスされる、ホームネットワークを有してもよい。ユーザは、遠隔デバイス上に実装されるメディアガイドアプリケーションを介して、家庭内デバイスを制御してもよい。例えば、ユーザは、そのオフィスのパーソナルコンピュータ、またはＰＤＡまたはウェブ対応携帯電話等のモバイルデバイスを介して、ウェブサイト上のオンラインメディアガイドアプリケーションにアクセスしてもよい。ユーザは、オンラインガイドアプリケーション上で種々の設定（例えば、録画、リマインダ、または他の設定）を設定して、ユーザの家庭内機器を制御してもよい。オンラインガイドは、直接、またはユーザの家庭内機器上のメディアガイドアプリケーションと通信することによって、ユーザの機器を制御してもよい。ユーザ機器デバイスが相互から遠隔の場所にある、ユーザ機器デバイスの通信のための種々のシステムおよび方法は、例えば、参照することによってその全体として本明細書に組み込まれる、Ｅｌｌｉｓらの２０１１年１０月２５日発行の米国特許第８，０４６，８０１号で議論されている。
【００８８】
第３のアプローチでは、家庭内外のユーザ機器デバイスのユーザは、コンテンツソース６１６と直接通信し、コンテンツにアクセスするために、そのメディアガイドアプリケーションを使用することができる。具体的には、家庭内では、ユーザテレビ機器６０２およびユーザコンピュータ機器６０４のユーザは、メディアガイドアプリケーションにアクセスし、所望のコンテンツ間をナビゲートし、それを特定してもよい。ユーザはまた、無線ユーザ通信デバイス６０６を使用して、家庭外のメディアガイドアプリケーションにアクセスし、所望のコンテンツ間をナビゲートし、それを特定してもよい。
【００８９】
第４のアプローチでは、ユーザ機器デバイスは、クラウドコンピューティング環境内で動作し、クラウドサービスにアクセスしてもよい。クラウドコンピューティング環境では、コンテンツ共有、記憶、または配信のための種々のタイプのコンピューティングサービス（例えば、ビデオ共有サイトまたはソーシャルネットワーキングサイト）が、「クラウド」と称される、ネットワーク−アクセス可能コンピューティングおよび記憶リソースの集合によって提供される。例えば、クラウドは、通信ネットワーク６１４を介したインターネット等のネットワークを介して接続される、種々のタイプのユーザおよびデバイスにクラウドベースのサービスを提供する、中央または分散場所に位置し得る、サーバコンピューティングデバイスの集合を含むことができる。これらのクラウドリソースは、１つ以上のコンテンツソース６１６および１つ以上のメディアガイドデータソース６１８を含んでもよい。加えて、または代替として、遠隔コンピューティングサイトは、ユーザテレビ機器６０２、ユーザコンピュータ機器６０４、および無線ユーザ通信デバイス６０６等の他のユーザ機器デバイスを含んでもよい。例えば、他のユーザ機器デバイスは、ビデオの記憶されたコピーまたはストリーミングされたビデオへのアクセスを提供してもよい。そのような実施形態では、ユーザ機器デバイスは、中央サーバと通信することなく、ピアツーピア様式で動作してもよい。
【００９０】
クラウドは、ユーザ機器デバイスのために、他の実施例の中でもとりわけ、コンテンツ記憶、コンテンツ共有、またはソーシャルネットワーキングサービス等のサービスへのアクセス、および上記で説明される任意のコンテンツへのアクセスを提供する。サービスは、クラウドコンピューティングサービスプロバイダを通して、またはオンラインサービスの他のプロバイダを通して、クラウド内で提供されることができる。例えば、クラウドベースのサービスは、コンテンツ記憶サービス、コンテンツ共有サイト、ソーシャルネットワーキングサイト、または他のサービスを含むことができ、それを介して、ユーザ供給コンテンツは、接続されたデバイス上で他者によって視聴するために配信される。これらのクラウドベースのサービスは、ユーザ機器デバイスが、コンテンツをローカルで記憶し、ローカルで記憶されたコンテンツにアクセスするのではなく、コンテンツをクラウドに記憶し、コンテンツをクラウドから受信することを可能にしてもよい。
【００９１】
ユーザは、カムコーダ、ビデオモード付きデジタルカメラ、オーディオレコーダ、携帯電話、およびハンドヘルドコンピューティングデバイス等の種々のコンテンツ捕捉デバイスを使用して、コンテンツを録画してもよい。ユーザは、直接、例えば、ユーザコンピュータ機器６０４から、またはコンテンツ捕捉特徴を有する、無線ユーザ通信デバイス６０６からのいずれかにおいて、クラウド上のコンテンツ記憶サービスにコンテンツをアップロードすることができる。代替として、ユーザは、最初に、コンテンツをユーザコンピュータ機器６０４等のユーザ機器デバイスに転送することができる。コンテンツを記憶するユーザ機器デバイスは、通信ネットワーク６１４上のデータ伝送サービスを使用して、コンテンツをクラウドにアップロードする。いくつかの実施形態では、ユーザ機器デバイス自体が、クラウドリソースであり、他のユーザ機器デバイスは、直接、ユーザがコンテンツを記憶したユーザ機器デバイスから、コンテンツにアクセスすることができる。
【００９２】
クラウドリソースは、例えば、ウェブブラウザ、メディアガイドアプリケーション、デスクトップアプリケーション、モバイルアプリケーション、および／またはそれらのアクセスアプリケーションの任意の組み合わせを使用して、ユーザ機器デバイスによってアクセスされてもよい。ユーザ機器デバイスは、アプリケーション配信のためにクラウドコンピューティングに依拠する、クラウドクライアントであってもよい、またはユーザ機器デバイスは、クラウドリソースにアクセスすることなく、ある機能性を有してもよい。例えば、ユーザ機器デバイス上で起動するいくつかのアプリケーションは、クラウドアプリケーション、すなわち、インターネットを経由して、サービスとして配信されるアプリケーションであってもよい一方で、他のアプリケーションは、ユーザ機器デバイス上に記憶され、起動されてもよい。いくつかの実施形態では、ユーザデバイスは、コンテンツを複数のクラウドリソースから同時に受信してもよい。例えば、ユーザデバイスは、オーディオを１つのクラウドリソースからストリーミングする一方で、コンテンツを第２のクラウドリソースからダウンロードすることができる。または、ユーザデバイスは、より効率的なダウンロードのために、コンテンツを複数のクラウドリソースからダウンロードすることができる。いくつかの実施形態では、ユーザ機器デバイスは、図５に関連して説明される処理回路によって実施される処理動作等の処理動作のために、クラウドリソースを使用することができる。
【００９３】
本明細書で参照されるように、用語「〜に応答して」は、「〜の結果として開始される」ことを指す。例えば、第２のアクションに応答して実施されている第１のアクションは、第１のアクションと第２のアクションとの間に介在ステップを含んでもよい。本明細書で参照されるように、用語「〜に直接応答して」は、「〜によって引き起こされる」ことを指す。例えば、第２のアクションに直接応答して実施されている第１のアクションは、第１のアクションと第２のアクションとの間に介在ステップを含まなくてもよい。
【００９４】
図７は、本開示のいくつかの実施形態による、ユーザ選好に基づいてメディアアセットの出力を調節するための別の例証的ステップのフローチャートである。例えば、メディアガイドアプリケーション実装プロセス７００は、制御回路５０４（図５）によって実行されてもよい。プロセス７００またはその任意のステップは、図５−６に示されるデバイスのうちのいずれかの上で実施され得る、またはそれによって提供され得ることに留意されたい。
【００９５】
プロセス７００は、メディアガイドアプリケーションが、（例えば、制御回路５０４（図５）を介して）スケジュールされた時間間隔中に複数のコンテンツソースのうちの第１のコンテンツソースから第１のメディアアセットを記憶するユーザ要求を受信する、７０２から開始する。例えば、メディアガイドアプリケーションは、午後４時から６時まで、チャネル「ＥＳＰＮ」からユーザ入力インターフェースを介して（例えば、ユーザ入力インターフェース５１０（図５）を介して）、特定のフットボールの試合「Ｍｉｃｈｉｇａｎ対ＵＳＣ」を記憶するオプションのユーザ選択を受信してもよい。ユーザは、モバイルデバイス、または記憶される番組を選択するための任意の他の方法を使用して、セットトップボックスから遠隔で、具体的チームの全てのフットボールの試合のための連続録画オプションを通して、番組一覧画面内（例えば、グリッドガイド（図３−４）内）のフットボールの試合を記憶するオプションを選択してもよい。
【００９６】
プロセス７００は、メディアガイドアプリケーションが、データ構造へのエントリとして、スケジュールされた時間間隔中に第１のコンテンツソースから第１のメディアアセットを記憶するユーザ要求を（例えば、記憶装置５０８（図５）の中に）記憶し、エントリは、現在のコンテンツソースを示す第１のフィールドを含む、７０４に続く。例えば、メディアガイドアプリケーションは（例えば、制御回路５０４（図５）を介して）、メディアアセットとユーザが記憶することを要求した伝送のためにメディアアセットがスケジュールされるときのスケジュールされた間隔とのデータベースを維持してもよく、これは、記憶装置の中に（例えば、記憶装置５０８（図５）の中に）ローカルに位置し得るか、または、通信ネットワークを介して（例えば、通信ネットワーク６１４（図６）を介して）アクセス可能な遠隔に（例えば、メディアガイドデータソース６１８（図６）の中に）位置し得る。具体的実施例として、データベースは、各行が、別個のセル（すなわち、フィールド）の中に、記憶のためにスケジュールされるメディアアセットの識別子、開始時間、終了時間、およびメディアアセットが利用可能であるコンテンツソース（すなわち、現在のコンテンツソース）を含有する、テーブルとして配列されてもよい。メディアガイドアプリケーションは、（例えば、制御回路５０４（図５）を介して）ＳＱＬスクリプト等のデータベースクエリ言語スクリプトを実行することによって、本情報を読み取って／書き込んでもよい。例えば、メディアガイドアプリケーションは、以下でさらに説明されるように、メディアガイドアプリケーションが、第１のメディアアセットが異なるコンテンツソースに再スケジュールされたことを決定する場合に、異なるコンテンツソースであるように現在のコンテンツソースを含有するフィールドを更新してもよい（例えば、制御回路５０４（図５）を介して）。
【００９７】
プロセス７００は、メディアガイドアプリケーションが、（例えば、制御回路５０４（図５）を介して）第１のコンテンツソースからビデオとともに受信されるデータパケットを監視する、７０６に続く。例えば、メディアガイドアプリケーションは、（例えば、制御回路５０４（図５）を介して）プログラムスクリプトを実行して、第１のコンテンツソース（例えば、ＥＳＰＮ）から受信されるデータパケットをチェックし、フットボールの試合が第１のコンテンツソースから現在利用可能である（例えば、フットボールの試合がＥＳＰＮで放送されている）かどうかを決定してもよい。メディアガイドアプリケーションは、（例えば、制御回路５０４（図５）を介して）連続的に、または所定の間隔中にデータパケットを監視し、計算費用を削減してもよい。
【００９８】
いくつかの実施形態では、メディアガイドアプリケーションは、（例えば、制御回路５０４（図５）を介して）図１に説明されるようなスケジュールされた時間間隔外に第１のコンテンツソースから受信されるデータパケットを監視する。メディアガイドアプリケーションは、次いで、（例えば、制御回路５０４（図５）を介して）記憶されるようにスケジュールされるメディアアセットが、そのスケジュールされたタイムスロットよりも長引いた、および／またはそのスケジュールされたタイムスロットの前に開始したかどうかを決定してもよい。メディアガイドアプリケーションは、スケジュールされた時間間隔外の第１の時間間隔中に、（例えば、制御回路５０４（図５）を介して）第１のコンテンツソースからビデオとともに受信されるデータパケットを監視する。例えば、メディアガイドアプリケーションは、ユーザカスタマイズ可能であり得る、番組が開始するようにスケジュールされる前の設定時間に（例えば、メディアアセットが開始するようにスケジュールされる３０分前に）第１のコンテンツソースからビデオとともに受信されるデータパケットを監視してもよい（例えば、制御回路５０４（図５）を介して）。例証的実施例として、メディアガイドアプリケーションは、スケジュールされた第１のメディアアセットが終了する前に終了するようにスケジュールされるスポーツイベントが予期されるよりも早く終了する場合に、（例えば、記憶装置５０８（図５）の中に）試合前の映像または情報を記憶してもよい。
【００９９】
代替として、または加えて、メディアガイドアプリケーションは、（例えば、制御回路５０４（図５）を介して）メディアアセットのスケジュールされた終了時間後に第１のコンテンツソースからビデオとともに受信されるデータパケットを監視する。例えば、記憶されるようにスケジュールされる第１のメディアアセットは、それ自体がスケジュールされた終了時間を過ぎ得る。本状況では、メディアガイドアプリケーションは、（例えば、制御回路５０４（図５）を介して）上記で説明されるように第１のコンテンツソースから受信されるデータパケットを監視し続け、第１のコンテンツソースからビデオとともに受信されるデータパケットがもはやメディアアセットの識別子に合致しなくなる（例えば、メディアアセットが終了したことを示す）まで、メディアアセットを記憶し続けてもよい。代替として、または加えて、メディアガイドアプリケーションは、（例えば、制御回路５０４（図５）を介して）終了時に、またはスケジュールされた時間間隔後に、上記で説明されるように複数のコンテンツソースを検索することによって、メディアアセットが終了し、別のコンテンツソースに再スケジュールされていないことを決定してもよい。
【０１００】
プロセス７００は、メディアガイドアプリケーションが（例えば、制御回路５０４（図５）を介して）監視されたデータパケットから第１のメディアアセットインジケータを抽出する、７０８に続く。例えば、メディアガイドアプリケーションは、（例えば、制御回路５０４（図５）を介して）宣言的「選択」コマンドを利用してＳＱＬスクリプトを実行することによって、メディアアセットのための視聴覚データとともにデータパケットの中で伝送されるテーブル内のフィールドからメディアアセットインジケータを抽出してもよい。識別子は、第１のメディアアセットに特有であり、メディアガイドアプリケーションがそれを他のメディアアセットと区別することを可能にし、これは、メディアアセットの名称、またはコンテンツソースからのスケジュールされた伝送時間に基づく自動的にハッシュ化された整数であってもよい。いくつかの実施形態では、メディアガイドアプリケーションは、（例えば、制御回路５０４（図５）を介して）第１のコンテンツソースからのビデオに関連する情報を含有するテーブルを受信する。例えば、テーブルは、図２において以下でさらに説明されるように、番組のインジケータ（例えば、番組に対応する一意の英数字コード）および番組の説明等の第１のコンテンツソースから現在受信されている番組に関するメタデータを含有する、行に編成されてもよい。メディアガイドアプリケーションは、次いで、第１のメディアアセットインジケータに対応するテーブル内のフィールドから値を読み出してもよい。例えば、上記で説明されるように、メディアガイドアプリケーションは、「ＦＴＢＬ１４８５」等のインジケータを読み出してもよい。
【０１０１】
プロセス７００は、メディアガイドアプリケーションが、（例えば、制御回路５０４（図５）を介して）抽出された第１のメディアアセットインジケータを第１のメディアアセットの識別子と比較する、７１０に続く。例えば、メディアガイドアプリケーションは、（例えば、制御回路５０４（図５）を介して）（例えば、メモリ（例えば、記憶装置５０８）の中にローカルで記憶されるか、または通信ネットワーク（例えば、通信ネットワーク６１４）を介してアクセス可能なメディアガイドデータソース（例えば、メディアガイドデータソース６１８）に遠隔で記憶された）メディアアセットの識別子を含有するデータベースにアクセスし、メディアアセットストリームから抽出されるメディアアセットインジケータがデータベースの中に記憶された第１のメディアアセットの識別子に合致するかどうかを（例えば、文字合致を介して）決定してもよい。
【０１０２】
いくつかの実施形態では、メディアガイドアプリケーションは、（例えば、制御回路５０４（図５）を介して）ユーザ要求を用いて、第１のメディアアセットの識別子を記憶する。例えば、メディアガイドアプリケーションが（例えば、制御回路５０４（図５）を介して）フットボールの試合を記憶するためのユーザ選択を（例えば、ユーザ入力インターフェース５１０（図５）から）受信するとき、メディアガイドアプリケーションは、フットボールの試合を提供するコンテンツソースに由来し得る、フットボールの試合の識別子を記憶する。メディアガイドアプリケーションは、（例えば、制御回路５０４（図５）を介して）第１のメディアアセットの識別子の文字を抽出された第１のメディアアセットインジケータの文字と比較してもよい。例えば、メディアガイドアプリケーションは、（例えば、制御回路５０４（図５）を介して）「ＦＴＢＬ１４８５」等の抽出されたインジケータの各文字を記憶された識別子と比較してもよい。メディアガイドアプリケーションは、閾値数または割合の文字が合致する場合に、（例えば、制御回路５０４（図５）を介して）抽出されたインジケータが記憶された識別子に合致することを決定してもよい。
【０１０３】
プロセス７００は、メディアガイドアプリケーションが、（例えば、制御回路５０４（図５）を介して）抽出されたメディアアセットインジケータが第１のメディアアセットの識別子に対応するかどうかを決定する、７１２に続く。例えば、メディアガイドアプリケーションは、（例えば、制御回路５０４（図５）を介して）抽出されたインジケータが第１のメディアアセットの記憶された識別子に合致する（例えば、「ＦＴＢＬ１４８５」が抽出されたインジケータおよび記憶された識別子の両方である）かどうかを出力する、プログラムスクリプトを実行してもよい。メディアガイドアプリケーションは、（例えば、制御回路５０４（図５）を介して）実行されたプログラムスクリプトの出力として、抽出されたインジケータが記憶された識別子に合致するかどうかに基づくブール結果を受信してもよい。
【０１０４】
メディアガイドアプリケーションが、抽出されたメディアアセットインジケータが第１のメディアアセットの識別子に対応することを決定する場合、プロセス７００は、メディアガイドアプリケーションが（例えば、制御回路５０４（図５）を介して）記憶されたエントリの第１のフィールド内に示される第１のコンテンツソースから第１のメディアアセットを記憶する、７１４に続く。例えば、抽出された識別子が第１のメディアアセットに対応する記憶された識別子に合致することを決定することに応じて、メディアガイドアプリケーションは、記憶されたエントリの第１のフィールド内に示されるように、最初にスケジュールされたコンテンツソース（例えば、ＥＳＰＮ）から受信されるフットボールの試合を（例えば、記憶装置５０８（図５）の中に）記憶してもよい。メディアガイドアプリケーションは、（例えば、制御回路５０４（図５）を介して）スケジュールされた時間間隔の全体を通して第１のコンテンツソースから受信されるデータパケットを監視し続け、第１のメディアアセットが第１のコンテンツソースからもはや伝送されていない、および異なるコンテンツソースから伝送されているかどうかを決定してもよい（例えば、プロセス７００は、ステップ７０６に戻ってもよい）。
【０１０５】
メディアガイドアプリケーションが、抽出されたメディアアセットインジケータが第１のメディアアセットの識別子に対応しないことを決定する場合、プロセス７００は、メディアガイドアプリケーションが、（例えば、制御回路５０４（図５）を介して）第１のメディアアセットの識別子に対応する第２のメディアアセットインジケータを含む第２のデータパケットに関して、複数のコンテンツソース上で受信されるデータパケットを検索する、７１６に続く。例えば、メディアガイドアプリケーションは、フットボールの試合の識別子に合致しない、ＥＳＰＮから現在受信されているメディアアセットからの抽出されたインジケータに基づいて（例えば、上記で説明されるようなデータベースとの比較に基づいて）、（例えば、制御回路５０４（図５）を介して）ＥＳＰＮで午後４時に放送されるようにスケジュールされたフットボールの試合が現在放送されていないことを決定してもよい。本決定に応答して、メディアガイドアプリケーションは、上記で説明されるように、データパケットからインジケータを抽出し、抽出されたインジケータをメディアアセットの識別子と比較することによって、メディアアセットが利用可能であるコンテンツソースを見出そうとして、（例えば、制御回路５０４（図５）を介して）ユーザがサブスクライブする他のコンテンツソースを通してスキャンしてもよい。
【０１０６】
プロセス７００は、メディアガイドアプリケーションが、（例えば、制御回路５０４（図５）を介して）複数のコンテンツソースのうちの第２のコンテンツソースから受信される第２のデータパケットが第１のメディアアセットの識別子に対応する第２のメディアアセットインジケータを含むかどうかを決定する、７１８に続く。例えば、メディアガイドアプリケーションは、（例えば、制御回路５０４（図５）を介して）第２のコンテンツソースから受信されるデータパケットから、メディアアセットインジケータ（例えば、「ＦＴＢＬ１４８５」）を抽出し、上記で説明されるように、（例えば、文字合致を介して）それがデータ構造の中に記憶された第１のメディアアセットの識別子に合致するかどうかを決定してもよい。
【０１０７】
メディアガイドアプリケーションが、複数のコンテンツソースのうちの第２のコンテンツソースから受信される第２のデータパケットが、第１のメディアアセットの識別子に対応する第２のメディアアセットインジケータを含むことを決定する場合、プロセス７００は、メディアガイドアプリケーションが、（例えば、制御回路５０４（図５）を介して）記憶されたエントリの第１のフィールド内の現在のコンテンツソースを更新し、第１のメディアアセットが第２のコンテンツソースから伝送されていることを示す、７２４に続く。例えば、コンテンツソース「ＥＳＰＮ２」からの抽出されたデータパケットから、フットボールの試合がＥＳＰＮの代わりにＥＳＰＮ２で放送されていることを決定することに応じて、メディアガイドアプリケーションは、（例えば、制御回路５０４（図５）を介して）データ構造の中に記憶されたエントリ内の現在のコンテンツソースに対応するフィールドを更新し、フットボールの試合が異なるコンテンツソースＥＳＰＮ２から放送されていることを反映してもよい。具体的実施例として、メディアガイドアプリケーションは、（例えば、制御回路５０４（図５）を介して）プログラムスクリプトを実行し、第１のフィールド、すなわち、フットボールの試合のための記憶されたエントリと関連付けられるコンテンツソースフィールドの中に記憶された値を更新してもよい。
【０１０８】
プロセス７００は、次いで、メディアガイドアプリケーションが、現在のコンテンツソースとして、記憶されたエントリの第１のフィールド内に示される第２のコンテンツソースから受信される第１のメディアアセットを（例えば、記憶装置５０８（図５）の中に）記憶する、７２６に続く。例えば、メディアガイドアプリケーションは、データベース内のエントリの第１のフィールドの中に記憶された、更新された現在のコンテンツソース値に基づいて、ＥＳＰＮの代わりにＥＳＰＮ２からフットボールの試合を（例えば、記憶装置５０８（図５）の中に）記憶してもよい。いくつかの実施形態では、メディアガイドアプリケーションは、（例えば、制御回路５０４（図５）を介して）第２のコンテンツソースから現在受信されているメディアアセットのデータパケットを監視し続け、第１のメディアアセットが第１のコンテンツソースに戻るようにスケジュールされたか、または別のコンテンツソースにスケジュールされたかを決定してもよい。例えば、フットボールの試合がＥＳＰＮ２に再スケジュールされた理由は、午後４時に終了するようにスケジュールされたＥＳＰＮ上のスポーツイベントが長引いたためであり得る。本状況では、第２のコンテンツソースからの第１のメディアアセット（例えば、ＥＳＰＮ２からのフットボールの試合）を（例えば、記憶装置５０８（図５）の中に）記憶している間に、メディアガイドアプリケーションは、（例えば、制御回路５０４（図５）を介して）フットボールの試合が依然としてＥＳＰＮ２上で受信されているかどうかを監視し続けてもよい。１０分後、ＥＳＰＮ上の試合は、終了し得、「Ｍｉｃｈｉｇａｎ対ＵＳＣ」のフットボールの試合は、ＥＳＰＮ２からＥＳＰＮに戻るようにスケジュールされ得る。スケジュールされた時間間隔中にメディアアセットの視聴覚データとともに受信されるメディアアセットインジケータを監視し続けることによって、メディアガイドアプリケーションは、（例えば、制御回路５０４（図５）を介して）任意の時間にコンテンツソース変化を検出し、それが現在利用可能であるコンテンツソースからメディアアセットを見出して記憶することができる。
【０１０９】
いくつかの実施形態では、メディアガイドアプリケーションは、異なるコンテンツソースから複数のセグメントでメディアアセットを（例えば、記憶装置５０８（図５）の中に）記憶してもよい。例えば、フットボールの試合は、ＥＳＰＮ２上で開始するが、ＥＳＰＮ上で長引いた番組が終わったため、５分後にＥＳＰＮに移動され得る。そのような状況では、メディアガイドアプリケーションは、上記で議論されるように、第２のコンテンツソースからメディアアセットの第１のセグメントを（例えば、記憶装置５０８（図５）の中に）記憶してもよい。例えば、メディアガイドアプリケーションは、最初にスケジュールされたようなＥＳＰＮの代わりに、試合の開始時にＥＳＰＮ２から受信されるフットボールの試合を（例えば、記憶装置５０８（図５）の中に）記憶してもよい。メディアガイドアプリケーションは、次いで、第１のコンテンツソースから受信される第１のメディアアセットの第２のセグメントを（例えば、記憶装置５０８（図５）の中に）記憶してもよい。例えば、メディアガイドアプリケーションは、上記で議論される（例えば、ステップ７１８）のように、フットボールの試合がＥＳＰＮに戻るようにスケジュールされたことを決定してもよく、ＥＳＰＮから受信されるフットボールの試合の第２のセグメントを（例えば、記憶装置５０８（図５）の中に）記憶してもよい。メディアガイドアプリケーションは、次いで、（例えば、制御回路５０４（図５）を介して）第１のセグメントおよび第２のセグメントを単一の記憶されたファイルにスティッチングする。例えば、メディアガイドアプリケーションは、試合全体のための単一の記憶されたファイルがユーザによってアクセスされることができるように、（例えば、制御回路５０４（図５）を介して）フットボールの試合の２つの記憶されたセグメントを組み合わせる。メディアガイドアプリケーションは、加えて、単一の記憶されたファイルの中に、単一の記憶されたファイルが第１のコンテンツソースおよび第２のコンテンツソースから作成されたというインジケーションを（例えば、記憶装置５０８（図５）の中に）記憶する。例えば、メディアガイドアプリケーションは、ユーザがその事実へ注意喚起されるように、記憶されたファイルが複数のコンテンツソースから作製されたというインジケーションを（例えば、記憶装置５０８（図５）の中に）記憶してもよい。
【０１１０】
いくつかの実施形態では、２つの記憶されたセグメントをともにスティッチングするとき、メディアガイドアプリケーションは、（例えば、制御回路５０４（図５）を介して）第１のセグメントとともに記憶されたメタデータから第１のセグメントのための第１のタイムスタンプを抽出する。例えば、メディアガイドアプリケーションは、（例えば、制御回路５０４（図５）を介して）第１のセグメントが「１９：００：００」（時間：分：秒）から始まって記憶されたことを抽出してもよい。メディアガイドアプリケーションは、（例えば、制御回路５０４（図５）を介して）第２のセグメントとともに記憶されたメタデータから第２のセグメントのための第２のタイムスタンプを抽出する。例えば、メディアガイドアプリケーションは、（例えば、制御回路５０４（図５）を介して）第２のセグメントが「１９：０５：００」（時間：分：秒）から始まって記憶されたことを抽出してもよい。メディアガイドアプリケーションは、次いで、（例えば、制御回路５０４（図５）を介して）第１のタイムスタンプおよび第２のタイムスタンプを比較し、早い方を決定する。例えば、メディアガイドアプリケーションは、２つの抽出されたタイムスタンプを減算するステップに基づいて、（例えば、制御回路５０４（図５）を介して）減算から取得される結果が正であるかまたは負であるかに基づいて早い方を決定してもよい。メディアガイドアプリケーションは、第１のタイムスタンプがより早いことを決定するステップに応答して、（例えば、制御回路５０４（図５）を介して）第２のセグメントを第１のセグメントの終わりに追加する。例えば、メディアガイドアプリケーションは、（例えば、制御回路５０４（図５）を介して）フットボールの試合のＥＳＰＮから記憶される第２のセグメントの始まりを、ＥＳＰＮ２から記憶される第１のセグメントの終わりにスティッチングする。
【０１１１】
メディアガイドアプリケーションが、複数のコンテンツソースのうちの第２のコンテンツソースから受信される第２のデータパケットが第１のメディアアセットの識別子に対応する第２のメディアアセットインジケータを含まないことを決定する場合、プロセス７００は、メディアガイドアプリケーションが、（例えば、制御回路５０４（図５）を介して）検索されていない任意の付加的コンテンツソースがあるかどうかを決定する、７２０に続く。例えば、メディアガイドアプリケーションは、（例えば、制御回路５０４（図５）を介して）ユーザがサブスクライブするコンテンツソースからメディアアセットインジケータを含有するデータパケットを反復して受信し、全てのコンテンツソースからのメディアアセットインジケータを含有するデータパケットがチェックされたときに終了する、「ｆｏｒ」ループを含有するプログラムスクリプトを実行してもよい。代替として、または加えて、メディアガイドアプリケーションは、データパケットが抽出された（例えば、記憶装置５０８（図５）内の）コンテンツソースのリストを維持し、ユーザによってサブスクライブされる任意のコンテンツソースがまだチェックされていないかどうかを決定してもよい。
【０１１２】
メディアガイドアプリケーションが、検索されていない任意の付加的コンテンツソースがないことを決定する場合、プロセス７００は、メディアガイドアプリケーションが、（例えば、制御回路５０４（図５）を介して）第１のメディアアセットが記憶のために利用可能ではないことを返す、７２２に続く。例えば、メディアガイドアプリケーションは、（例えば、制御回路５０４（図５）を介して）フットボールの試合がユーザに利用可能な任意のコンテンツソースから伝送されていないことを決定してもよい。代替として、または加えて、フットボールの試合がユーザに利用可能な任意のコンテンツソースから伝送されていないという決定を行うことに応じて、メディアガイドアプリケーションは、フットボールの試合がスケジュール変更に起因して記憶されることができないという通知を（例えば、通信ネットワーク６１４（図６）を介して）ユーザに伝送してもよい。
【０１１３】
メディアガイドアプリケーションが、検索されていない任意の付加的コンテンツソースがあることを決定する場合、プロセス７００は、メディアガイドアプリケーションが、（例えば、制御回路５０４（図５）を介して）第１のメディアアセットの識別子に対応する第２のメディアアセットインジケータを含む第２のデータパケットに関して検索されていない、複数のコンテンツソース上で受信されるデータパケットを検索する、７１６に戻る。例えば、メディアガイドアプリケーションは、（例えば、制御回路５０４（図５）を介して）上記で説明されるように、フットボールの試合の記憶された識別子に対応するメディアアセットインジケータに関して、異なるコンテンツソースから受信されるデータパケットを検索し続けてもよい。
【０１１４】
図７のステップまたは説明は、本開示の任意の他の実施形態と併用され得ることが考慮される。加えて、図７に関連して説明されるステップおよび説明は、本開示の目的を促すために、代替順序で、または並行して、行われてもよい。例えば、これらのステップはそれぞれ、システムまたは方法の遅延を低減させるかまたは速度を加速させるために、任意の順序で、または並行して、または実質的に同時に実施されてもよい。例えば、プロセス７００の複数のインスタンスは、記憶のために異なるメディアアセットを受信するようにそれぞれスケジュールされる、セットトップボックス内の複数のチューナのために実行されてもよい。さらに、図５−６に関連して議論されるデバイスまたは機器のうちのいずれかは、図７のステップのうちの１つ以上のものを実施するために使用され得ることに留意されたい。
【０１１５】
図８は、本開示のいくつかの実施形態による、複数のコンテンツソースから受信されるデータパケットを検索するための例証的ステップのフローチャートである。例えば、メディアガイドアプリケーション実装プロセス８００は、制御回路５０４（図５）によって実行されてもよい。プロセス８００またはその任意のステップは、図５−６に示されるデバイスのうちのいずれかの上で実施され得る、またはそれによって提供され得ることに留意されたい。プロセス８００は、メディアガイドアプリケーションが、第１のメディアアセットの識別子に対応する第２のメディアアセットインジケータを含む第２のデータパケットに関して、複数のコンテンツソース上で受信されるデータパケットを検索するためのプロセスを開始する、８０２から開始する。例えば、メディアガイドアプリケーションは、必要な変数を初期化し、（例えば、制御回路５０４（図５）を介して）プロセス８００を実行するための特定の方法を呼び出すプログラムスクリプトを実行してもよい。
【０１１６】
プロセス８００は、メディアガイドアプリケーションが（例えば、制御回路５０４（図５）を介して）複数のコンテンツソースのための情報を含有するデータベースにアクセスし、情報は、複数のコンテンツソースのうちの各コンテンツソースに類似する複数のコンテンツソースのサブセットのインジケーションを含む、８０４に続く。例えば、メディアガイドアプリケーションは、メモリの中に（例えば、記憶装置５０８（図５）の中に）ローカルで記憶されるか、または通信ネットワーク（例えば、通信ネットワーク６１４（図６））を介してアクセス可能なメディアガイドデータソース（例えば、メディアガイドデータソース６１８（図６））に遠隔で記憶されたデータベースにアクセスしてもよい。データベースは、自己参照様式で設計されてもよく、識別子およびコンテンツソース毎の情報は、単一のテーブルの中に非隣接状態で含有され、ポインタを介してテーブル内の類似コンテンツソースに対応する適切なフィールドにリンクされ得る。
【０１１７】
プロセス８００は、メディアガイドアプリケーションが、（例えば、制御回路５０４（図５）を介して）第１のコンテンツソースと関連付けられるデータベース内のフィールドから、第２のコンテンツソースが第１のコンテンツソースに類似するというインジケーションを読み出す、８０６に続く。例えば、メディアガイドアプリケーションは、（例えば、制御回路５０４（図５）を介して）第１のコンテンツソースと関連付けられるフィールドから第２のコンテンツソースの識別子を（例えば、宣言的「選択」命令文を介して）読み出す、ＳＱＬスクリプト等のデータベースクエリ言語スクリプトを実行してもよい。識別子は、コンテンツソースを一意に識別する、英数字または他の文字の任意の組み合わせであってもよい。例えば、識別子は、周波数（例えば、５４ＭＨｚ）、ＯＴＡチャネルのコールサイン（例えば、ＷＸＹＺ）であってもよい、または識別子は、チャネル名（例えば、ＥＳＰＮ）であってもよい。
【０１１８】
プロセス８００は、メディアガイドアプリケーションが（例えば、制御回路５０４（図５）を介して）第２のコンテンツソースを受信する、８０８に続く。例えば、上記で説明されるように、メディアガイドアプリケーションは、第２のコンテンツソースによって現在伝送されているメディアアセットを決定するために、第２のコンテンツソースから（例えば、図２に示されるような）メディアアセット情報データパケットを受信してもよい。
【０１１９】
プロセス８００は、メディアガイドアプリケーションが、（例えば、制御回路５０４（図５）を介して）第２のコンテンツソースから受信されるデータパケットから、第２のメディアアセットインジケータを抽出する、８１０に続く。図１および６において上記で説明されるように、メディアガイドアプリケーションは、（例えば、制御回路５０４（図５）を介して）第２のコンテンツソースから受信されるデータパケットから、第２のメディアアセットインジケータを抽出し、第２のコンテンツソースから現在伝送されているメディアアセットを決定してもよい。例えば、メディアガイドアプリケーションは、（例えば、制御回路５０４（図５）を介して）インジケータ「Ｓｏｃｃｅｒｌ２３」を抽出してもよい。
【０１２０】
プロセス８００は、メディアガイドアプリケーションが、（例えば、制御回路５０４（図５）を介して）抽出された第２のメディアアセットインジケータが第１のメディアアセットの識別子に対応するかどうかを決定する、８１２に続く。図１および７において上記で説明されるように、メディアガイドアプリケーションは、（例えば、制御回路５０４（図５）を介して）抽出されたインジケータ（例えば、「Ｓｏｃｃｅｒ１２３」）を、ユーザが記憶することを要求した第１のメディアアセットの識別子と比較する。例えば、メディアガイドアプリケーションは、（例えば、制御回路５０４（図５）を介して）抽出されたインジケータ「Ｓｏｃｃｅｒｌ２３」の文字を記憶された識別子「フットボール６７８」の文字と比較し、閾値数の文字が合致するかどうかを決定してもよい。
【０１２１】
抽出された第２のメディアアセットインジケータが第１のメディアアセットの識別子に対応しない場合、プロセス８００は、メディアガイドアプリケーションが、（例えば、制御回路５０４（図５）を介して）第１のメディアアセットが第２のコンテンツソースから利用可能ではないことを返す、８１４に続く。例えば、メディアガイドアプリケーションが、（例えば、制御回路５０４（図５）を介して）閾値数の文字が第２のメディアアセットインジケータと第１のメディアアセットの識別子との間で合致しないことを決定する場合、メディアガイドアプリケーションは、メディアアセットが第２のコンテンツソースから利用可能ではないことを返してもよい。メディアガイドアプリケーションは、ステップ８０４に戻り、（例えば、制御回路５０４（図５）を介して）全てのコンテンツソースがチェックされたかどうかを決定し、これらのコンテンツソースから受信されるデータパケットが、第１のメディアアセットが現在伝送されていることを示すかどうかを決定してもよい。メディアガイドアプリケーションは、プログラムスクリプトを実行し、第１のコンテンツソースと関連付けられる各コンテンツソースがチェックされるまで、またはユーザに利用可能な全てのコンテンツソースがチェックされるまで、（例えば、制御回路５０４（図５）を介して）プロセス８００を通してループしてもよい。
【０１２２】
抽出された第２のメディアアセットインジケータが第１のメディアアセットの識別子に対応する場合、プロセス８００は、メディアガイドアプリケーションが、（例えば、制御回路５０４（図５）を介して）第１のメディアアセットが第２のコンテンツソースから利用可能であることを返す、８１６に続く。例えば、メディアガイドアプリケーションが、（例えば、制御回路５０４（図５）を介して）閾値数の文字が第２のメディアアセットインジケータと第１のメディアアセットの識別子との間で合致することを決定する場合、メディアガイドアプリケーションは、メディアアセットが第２のコンテンツソースから利用可能ではないことを返してもよい。メディアガイドアプリケーションは、次いで、（例えば、制御回路５０４（図５）を介して）プロセス８００を終了し、第２のコンテンツソースから第１のメディアアセットを録画するための新しいプロセスを実行してもよい。
【０１２３】
図８のステップまたは説明は、本開示の任意の他の実施形態と併用され得ることが考慮される。加えて、図８に関連して説明されるステップおよび説明は、本開示の目的を促すために、代替順序で、または並行して、行われてもよい。例えば、これらのステップはそれぞれ、システムまたは方法の遅延を低減させるかまたは速度を加速させるために、任意の順序で、または並行して、または実質的に同時に実施されてもよい。例えば、プロセス８００の複数のインスタンスは、セットトップボックス内の複数のチューナがそれぞれ、並行して異なるコンテンツソースを受信するように実行されてもよい。これは、メディアガイドアプリケーションが、第１のコンテンツソースと関連付けられる複数のコンテンツソースを並行してチェックし、第１のメディアアセットがこれらのコンテンツソースから伝送されているかどうかを決定することを可能にする。さらに、図５−６に関連して議論されるデバイスまたは機器のうちのいずれかは、図８のプロセスのうちの１つ以上のものを実施するために使用され得ることに留意されたい。
【０１２４】
図９は、本開示のいくつかの実施形態による、記憶されたメディアアセットがメディアアセットの完全なバージョンであるかどうかを決定するための例証的ステップのフローチャートである。例えば、メディアガイドアプリケーション実装プロセス９００は、制御回路５０４（図５）によって実行されてもよい。プロセス９００またはその任意のステップは、図５−６に示されるデバイスのうちのいずれかの上で実施され得る、またはそれによって提供され得ることに留意されたい。プロセス９００は、メディアガイドアプリケーションが、記憶された第１のメディアアセットが完全であるかどうかを決定するためのプロセスを開始する、９０２から開始する。例えば、メディアガイドアプリケーションは、必要な変数を初期化し、（例えば、制御回路５０４（図５）を介して）プロセス９００を実行するための特定の方法を呼び出すプログラムスクリプトを実行してもよい。
【０１２５】
プロセス９００は、メディアガイドアプリケーションが（例えば、制御回路５０４（図５）を介して）記憶された第１のメディアアセットの持続時間を決定する、９０４に続く。例えば、メディアガイドアプリケーションは、（例えば、制御回路５０４（図５）を介して）「７１００秒」であり得る「ｐｒｏｇｒａｍ＿ｌｅｎｇｔｈ」変数の中に記憶された値である、記憶された第１のメディアアセットとともに（例えば、記憶装置５０８（図５）の中に）記憶されたメタデータを読み出してもよい。代替として、または加えて、メディアガイドアプリケーションは、（例えば、制御回路５０４（図５）を介して）第１のメディアアセットが最初に記憶された開始時間およびそれがメディアガイドアプリケーションによって記憶されることを止めた終了時間を読み出し、２つの値を減算することを介して持続時間を計算してもよい。
【０１２６】
プロセス９００は、メディアガイドアプリケーションが、（例えば、制御回路５０４（図５）を介して）記憶された第１のメディアアセットの持続時間をスケジュールされた時間間隔と比較する、９０６に続く。例えば、メディアガイドアプリケーションは、（例えば、制御回路５０４（図５）を介して）スケジュールされた時間間隔の長さから記憶された第１のメディアアセットの持続時間を減算してもよい。具体的実施例として、記憶された第１のメディアアセットの持続時間が７１００秒であり、スケジュールされた時間間隔の長さが７２００秒である場合、メディアガイドアプリケーションは、（例えば、制御回路５０４（図５）を介して）記憶された第１のメディアアセットがスケジュールされた時間間隔よりも１００秒短く、第１のメディアアセットの一部が記憶されなかったことを示し得ることを決定してもよい。
【０１２７】
プロセス９００は、メディアガイドアプリケーションが、（例えば、制御回路５０４（図５）を介して）記憶されたメディアアセットの持続時間がスケジュールされた時間間隔よりも短いかどうかを決定する、９０８に続く。例えば、上記で説明されるように、メディアガイドアプリケーションは、記憶された第１のメディアアセットが短い場合、スケジュールされた時間間隔の長さからの記憶された第１のメディアアセットの持続時間の減算の結果として、（例えば、制御回路５０４（図５）を介して）正の値を計算してもよい。逆に、値が負である場合、記憶された第１のメディアアセットは、スケジュールされた時間間隔よりも長く、第１のメディアアセットがその全体で正確に記憶されたことを示す可能性が高い。いくつかの実施形態では、第１のメディアアセットの実際の持続時間は、第１の（および／または第２の）コンテンツソースからメディアガイドアプリケーションによって（例えば、制御回路５０４（図５）を介して）受信されてもよく、これは、上記で説明されるように、より正確な比較および決定を行うために使用されることができる。
【０１２８】
メディアガイドアプリケーションが、記憶されたメディアアセットの持続時間がスケジュールされた時間間隔よりも短くないことを決定する場合、プロセス９００は、メディアガイドアプリケーションが、（例えば、制御回路５０４（図５）を介して）記憶された第１のメディアアセットが完全であることを返す、９１０に続く。例えば、メディアガイドアプリケーションによって計算される値が上記で説明されるように負である場合、メディアガイドアプリケーションは、（例えば、制御回路５０４（図５）を介して）記憶された第１のメディアアセットが完全であることを返し、プロセス９００を終了してもよい。
【０１２９】
メディアガイドアプリケーションが、記憶されたメディアアセットの持続時間がスケジュールされた時間間隔よりも短いことを決定する場合、プロセス９００は、メディアガイドアプリケーションが、（例えば、制御回路５０４（図５）を介して）記憶されたメディアアセットの持続時間とスケジュールされた時間間隔との間の差を閾値差と比較する、９１２に続く。例えば、メディアガイドアプリケーションは、（例えば、制御回路５０４（図５）を介して）閾値差に対応するユーザプロファイルの中に記憶された値を読み出してもよい。閾値差は、記憶されたメディアアセットが必須量のコンテンツを欠いている（例えば、完全ではない）ことを決定する前に、ユーザが記憶されたメディアアセットから欠落していることが許容できるメディアアセットの割合を決定するように、ユーザによって調節可能であり得る。具体的実施例として、メディアガイドアプリケーションは、（例えば、制御回路５０４（図５）を介して）閾値差「６０秒」を読み出してもよい。メディアガイドアプリケーションは、次いで、（例えば、制御回路５０４（図５）を介して）閾値差（例えば、６０秒）をステップ９０６において上記で決定される差（例えば、１００秒）と比較してもよい。
【０１３０】
プロセス９００は、メディアガイドアプリケーションが、（例えば、制御回路５０４（図５）を介して）記憶された第１のメディアアセットの持続時間とスケジュールされた時間間隔との間の差が閾値差を満たすかどうかを決定する、９１４に続く。例えば、メディアガイドアプリケーションは、（例えば、制御回路５０４（図５）を介して）ステップ９０６において決定される差から閾値差を減算し、値が正であるかまたは負であるかを決定してもよい。メディアガイドアプリケーションが負の値を計算する場合には、メディアガイドアプリケーションは、（例えば、制御回路５０４（図５）を介して）閾値差が満たされていないことを決定してもよい。メディアガイドアプリケーションが正またはゼロの値を計算する場合には、メディアガイドアプリケーションは、（例えば、制御回路５０４（図５）を介して）閾値差が満たされていることを決定してもよい。
【０１３１】
メディアガイドアプリケーションが、記憶された第１のメディアアセットの持続時間とスケジュールされた時間間隔との間の差が閾値差を満たさないことを決定する場合、プロセス９００は、メディアガイドアプリケーションが、（例えば、制御回路５０４（図５）を介して）記憶された第１のメディアアセットが完全であることを返す、９１０に続く。例えば、メディアガイドアプリケーションによって計算される値が上記で説明されるような閾値差を満たさない場合、メディアガイドアプリケーションは、（例えば、制御回路５０４（図５）を介して）記憶された第１のメディアアセットが完全であることを返し、プロセス９００を終了してもよい。
【０１３２】
メディアガイドアプリケーションが、記憶された第１のメディアアセットの持続時間とスケジュールされた時間間隔との間の差が閾値差を満たすことを決定する場合、プロセス９００は、メディアガイドアプリケーションが、（例えば、制御回路５０４（図５）を介して）記憶された第１のメディアアセットが完全ではないことを返す、９１０に続く。例えば、メディアガイドアプリケーションによって計算される値が上記で説明されるような閾値差を満たす場合、メディアガイドアプリケーションは、（例えば、制御回路５０４（図５）を介して）記憶された第１のメディアアセットが完全ではないことを返し、プロセス９００を終了してもよい。
【０１３３】
いくつかの実施形態では、記憶されたメディアアセットの持続時間とスケジュールされた時間間隔との間の差が閾値差を満たすことを決定するステップに応答して、メディアガイドアプリケーションは、加えて、（例えば、制御回路５０４（図５）を介して）メディアガイドデータベースから（例えば、メディアガイドデータソース６１８（図６）から）読み出されるメディアアセット一覧から、第１のメディアアセットが将来の時間に利用可能であるかどうかを決定する。例えば、メディアガイドアプリケーションは、（例えば、制御回路５０４（図５）を介して）閾値（例えば、５分）を超える、フットボールの試合（例えば、１時間）の一部が記憶されていない場合があることを決定し、次いで、メディアガイドデータソースから一覧を読み出し、メディアアセットが将来の時間（例えば、再放送）に利用可能であるかどうかを決定してもよい。メディアガイドアプリケーションは、（例えば、制御回路５０４（図５）を介して）メディアアセットの識別子の文字を個々の一覧と比較し、メディアアセットが将来の時間に利用可能であるという決定を行ってもよい。メディアガイドアプリケーションは、第１のメディアアセットが第３のコンテンツソースから将来の時間に利用可能であることを決定するステップに応答して、（例えば、図７の上記で議論されるようにテーブル等のデータ構造の中に）第３のコンテンツソースから第１のメディアアセットを記憶する第２の要求を（例えば、制御回路５０４（図５）を介して）記憶する。例えば、メディアガイドアプリケーションは、（例えば、制御回路５０４（図５）を介して）メディアアセットが、第１のコンテンツソース、第２のコンテンツソース、または異なるコンテンツソースであり得る、第３のコンテンツソースから利用可能であることを決定し、第３のコンテンツソース（例えば、ＡＢＣ）からメディアアセットを記憶する要求をスケジュールしてもよい。メディアアセットの再放送をスケジュールすることによって、メディアガイドアプリケーションは、（例えば、制御回路５０４（図５）を介して）最初の記憶されたメディアアセットが完全であった（例えば、そのスケジュールされた間隔よりも早く終了した）か、またはメディアアセットの一部を欠いていたかを決定することが可能であり得る。
【０１３４】
いくつかの実施形態では、メディアガイドアプリケーションは、将来の時間にスケジュールされるメディアアセットの一部のみを記憶する。メディアガイドアプリケーションは、（例えば、制御回路５０４（図５）を介して）記憶されたメディアアセットの複数のフレームのうちのフレーム毎に記憶されるメタデータから、複数のフレームのうちの各フレームと関連付けられる時間を読み出す。例えば、メディアガイドアプリケーションによって受信および記憶される各フレームは、フレームがコンテンツソースから伝送された時間（例えば、ＦＦがフレーム番号である、フォーマット時間：分：秒：ＦＦで）を伴う関連付けられるメタデータを有してもよい。メディアガイドアプリケーションは、（例えば、制御回路５０４（図５）を介して）第１のメディアアセットの一部が第１のフレームと第２のフレームとの間で欠落していることを決定してもよい。例えば、メディアガイドアプリケーションは、関連付けられる時間１９：０５：００：０１を伴うフレーム後に、次のフレームが関連付けられる時間１９：１０：００：０１を有することを検出してもよく、メディアガイドアプリケーションは、（例えば、制御回路５０４（図５）を介して）一部（例えば、５分のメディアアセット）が記憶されたメディアアセットから欠落していることを決定してもよい。メディアガイドアプリケーションは、次いで、（例えば、記憶装置５０８（図５）を介して）第２の要求を用いて、第１のメディアアセットの第１の部分のみを記憶する命令を記憶してもよい。例えば、記憶集約的であり得る、メディアアセット全体をもう一度記憶することなく、メディアアセットの完全なバージョンを作成するために、メディアガイドアプリケーションは、記憶された第１のメディアアセットから欠落しているメディアアセットのフレーム（例えば、第１の部分）のみを記憶する命令を記憶する。
【０１３５】
図９のステップまたは説明は、本開示の任意の他の実施形態と併用され得ることが考慮される。加えて、図９に関連して説明されるステップおよび説明は、本開示の目的を促すために、代替順序で、または並行して、行われてもよい。例えば、これらのステップはそれぞれ、システムまたは方法の遅延を低減させるかまたは速度を加速させるために、任意の順序で、または並行して、または実質的に同時に実施されてもよい。例えば、プロセス９００の複数のインスタンスは、複数の記憶されたメディアアセットが並行して完全性に関してチェックされるように実行されてもよい。さらに、図５−６に関連して議論されるデバイスまたは機器のうちのいずれかは、図９のプロセスのうちの１つ以上のものを実施するために使用され得ることに留意されたい。
【０１３６】
本開示の上記で説明される実施形態は、限定ではなく、例証目的のために提示されており、本開示は、続く請求項によってのみ限定される。さらに、いずれか１つの実施形態で説明される特徴および制限は、本明細書のいずれかの他の実施形態に適用され得、一実施形態に関するフローチャートまたは実施例は、好適な様式でいずれかの他の実施形態と組み合わせられ得る、異なる順序で行われ得る、または並行して行われ得ることに留意されたい。加えて、本明細書に説明されるシステムおよび方法は、リアルタイムで実施されてもよい。また、上記に説明されるシステムおよび／または方法は、他のシステムおよび／または方法に適用され得る、またはそれらに従って使用され得ることにも留意されたい。
【図１−１】
2019525661.tif 000002
【図１−２】
2019525661.tif 000003
【図２】
2019525661.tif 000004
【図３】
2019525661.tif 000005
【図４】
2019525661.tif 000006
【図５】
2019525661.tif 000007
【図６】
2019525661.tif 000008
【図７−１】
2019525661.tif 000009
【図７−２】
2019525661.tif 000010
【図８】
2019525661.tif 000011
【図９】
2019525661.tif 000012
【国際調査報告】
2019525661.tif 000013
2019525661.tif 000014
2019525661.tif 000015