JP2019521625A - コンテンツストリーム部分を修正または削除から保護すること - Google Patents

コンテンツストリーム部分を修正または削除から保護すること Download PDF

Info

Publication number
JP2019521625A
JP2019521625A JP2019510587A JP2019510587A JP2019521625A JP 2019521625 A JP2019521625 A JP 2019521625A JP 2019510587 A JP2019510587 A JP 2019510587A JP 2019510587 A JP2019510587 A JP 2019510587A JP 2019521625 A JP2019521625 A JP 2019521625A
Authority
JP
Japan
Prior art keywords
content
manifest
computing device
hidden
portions
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2019510587A
Other languages
English (en)
Other versions
JP6666520B2 (ja
Inventor
ライアン エフ ワトソン
ライアン エフ ワトソン
クレイグ ウエスリー ハワード
クレイグ ウエスリー ハワード
グレゴリー ケネス トロウ
グレゴリー ケネス トロウ
アレックス シャオイー ジャン
アレックス シャオイー ジャン
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Amazon Technologies Inc
Original Assignee
Amazon Technologies Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Amazon Technologies Inc filed Critical Amazon Technologies Inc
Publication of JP2019521625A publication Critical patent/JP2019521625A/ja
Application granted granted Critical
Publication of JP6666520B2 publication Critical patent/JP6666520B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/17Details of further file system functions
    • G06F16/172Caching, prefetching or hoarding of files
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/18File system types
    • G06F16/182Distributed file systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/64Protecting data integrity, e.g. using checksums, certificates or signatures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q30/00Commerce
    • G06Q30/02Marketing; Price estimation or determination; Fundraising
    • G06Q30/0241Advertisements
    • G06Q30/0251Targeted advertisements
    • G06Q30/0267Wireless devices
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • H04L65/61Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio
    • H04L65/612Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio for unicast
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • H04L65/75Media network packet handling
    • H04L65/762Media network packet handling at the source 
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/06Protocols specially adapted for file transfer, e.g. file transfer protocol [FTP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/231Content storage operation, e.g. caching movies for short term storage, replicating data over plural servers, prioritizing data for deletion
    • H04N21/23116Content storage operation, e.g. caching movies for short term storage, replicating data over plural servers, prioritizing data for deletion involving data replication, e.g. over plural servers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/235Processing of additional data, e.g. scrambling of additional data or processing content descriptors
    • H04N21/2351Processing of additional data, e.g. scrambling of additional data or processing content descriptors involving encryption of additional data
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/239Interfacing the upstream path of the transmission network, e.g. prioritizing client content requests
    • H04N21/2393Interfacing the upstream path of the transmission network, e.g. prioritizing client content requests involving handling client requests
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/24Monitoring of processes or resources, e.g. monitoring of server load, available bandwidth, upstream requests
    • H04N21/2407Monitoring of transmitted content, e.g. distribution time, number of downloads
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/25Management operations performed by the server for facilitating the content distribution or administrating data related to end-users or client devices, e.g. end-user or client device authentication, learning user preferences for recommending movies
    • H04N21/262Content or additional data distribution scheduling, e.g. sending additional data at off-peak times, updating software modules, calculating the carousel transmission frequency, delaying a video stream transmission, generating play-lists
    • H04N21/26258Content or additional data distribution scheduling, e.g. sending additional data at off-peak times, updating software modules, calculating the carousel transmission frequency, delaying a video stream transmission, generating play-lists for generating a list of items to be played back in a given order, e.g. playlist, or scheduling item distribution according to such list
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/41Structure of client; Structure of client peripherals
    • H04N21/414Specialised client platforms, e.g. receiver in car or embedded in a mobile appliance
    • H04N21/41407Specialised client platforms, e.g. receiver in car or embedded in a mobile appliance embedded in a portable device, e.g. video client on a mobile phone, PDA, laptop
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/47End-user applications
    • H04N21/482End-user interface for program selection
    • H04N21/4825End-user interface for program selection using a list of items to be played back in a given order, e.g. playlists
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/80Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
    • H04N21/81Monomedia components thereof
    • H04N21/812Monomedia components thereof involving advertisement data
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/80Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
    • H04N21/81Monomedia components thereof
    • H04N21/8126Monomedia components thereof involving additional data, e.g. news, sports, stocks, weather forecasts
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/80Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
    • H04N21/83Generation or processing of protective or descriptive data associated with content; Content structuring
    • H04N21/84Generation or processing of descriptive data, e.g. content descriptors
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/80Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
    • H04N21/83Generation or processing of protective or descriptive data associated with content; Content structuring
    • H04N21/845Structuring of content, e.g. decomposing content into time segments
    • H04N21/8456Structuring of content, e.g. decomposing content into time segments by decomposing the content in the time domain, e.g. in time segments
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2107File encryption
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/80Responding to QoS

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Business, Economics & Management (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • Development Economics (AREA)
  • Marketing (AREA)
  • Strategic Management (AREA)
  • Finance (AREA)
  • Accounting & Taxation (AREA)
  • Computer Hardware Design (AREA)
  • Data Mining & Analysis (AREA)
  • Game Theory and Decision Science (AREA)
  • Entrepreneurship & Innovation (AREA)
  • Economics (AREA)
  • General Business, Economics & Management (AREA)
  • Computing Systems (AREA)
  • Software Systems (AREA)
  • General Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • Health & Medical Sciences (AREA)
  • Human Computer Interaction (AREA)
  • Information Transfer Between Computers (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

ストリーミングコンテンツの中の部分の削除、ブロック、または読み飛ばしを阻止するまたは妨げる一方で、ストリーミングコンテンツの配信を可能にするためのシステム及び方法が説明される。コンテンツ配信システムは、ストリーミングコンテンツを形成するコンテンツ部分を示すマニフェストを生成できる。各コンテンツ部分は、クライアントがコンテンツ部分を自動的に削除するまたは修正するのを阻止するまたは妨げるために、クライアントからコンテンツ部分の実際の識別子を隠す隠し識別子を使用し、マニフェストで識別できる。コンテンツ配信システムは、コンテンツ部分に対する要求を受け取ると、隠し識別子を実際の識別子に変換し、クライアントに適切なコンテンツ部分を返すことができる。いくつかの例では、隠しマニフェストの中に含まれる特定の識別子は、クライアントがストリーミングコンテンツの所与の部分を見ることを確実にするために、クライアントデバイスのモニタリング情報に基づいて修正または適応されてよい。【選択図】図5

Description

概して説明すると、コンピューティングデバイスは、データを交換するために1つの通信ネットワークまたは一連の通信ネットワークを利用する。企業及び組織は、いくつかのコンピューティングデバイスを相互接続して、業務をサポートするまたは第三者にサービスを提供するコンピュータネットワークを運用する。コンピューティングシステムは、単一の地理的な位置に位置するまたは複数の別個の地理的な位置に位置する(例えば、専用通信網または公衆通信網を介して相互接続される)場合がある。具体的には、本明細書で概して「データセンタ」と呼ぶデータセンタまたはデータ処理センタは、データセンタのユーザーにコンピューティングリソースを提供するためにいくつかの相互接続されたコンピューティングシステムを含んでよい。データセンタは、組織の代わりに運用されるプライベートデータセンタ、または一般人の代わりにもしくは一般人のために運用される公衆データセンタであってよい。
(例えば、企業、アーチスト、メディア配信サービス等の)サービスプロバイダまたはコンテンツクリエータは、一連の相互接続されたデータセンタを利用して、ユーザーまたはクライアントに(例えば、ウェブサイト、ウェブコンテンツ、または他のデジタルデータ等の)コンテンツを配信できる。これらの相互接続されたデータセンタは、「コンテンツ配信ネットワーク」(CDN)またはストリーミングコンテンツ配信システムと呼ばれることがある。既存のルーティング技術及びアドレス指定技術は、ストリーミングコンテンツ配信システムと関連付けられた複数のデータセンタが、クライアントコンピューティングデバイスに類似したコンテンツまたは同一のコンテンツを提供することを可能にする。いくつかの例では、コンテンツのセットを提供する各データセンタは、通信アクセスポイント(「POP」)と呼ばれることがある。ストリーミングコンテンツ配信システムは、広域にわたって(つまり世界中で)POPを維持して、システムが、さまざまな場所のクライアントからの要求にサービスを提供できるようにする。
CDNは、多種多様のコンテンツを配信するために利用することができ、いくつかの例では、前のコンテンツ配信システムを複製するまたは置き換えるために役立つ場合がある。例えば、CDNは、従来のテレビネットワークまたはラジオネットワークに類似したやり方でネットワークベースのストリーミング音声コンテンツまたはストリーミングビデオコンテンツを提供できる。このコンテンツは、それぞれ「インターネットテレビ」または「インターネットラジオ」と呼ばれることがある。ストリーミングコンテンツは、通常、専用のコンピューティングデバイス(例えば、セットトップボックス)、クライアントコンピューティングデバイス上の専用ビューワ(例えば、ソフトウェアアプリケーション)、または非専用ソフトウェアアプリケーション(例えば、ウェブブラウザ)によって見ることができる。多くの場合、これらのビューワは、例えば、コンテンツを「オンデマンド」で再生する可用性等の、テレビまたはラジオのような従来の配信ネットワークで利用できる機能性よりも高い機能性を提供する。さらに、これらのビューワは、多くの場合、エンドユーザーに高レベルの制御を提供し、ユーザーが、しばしばコンテンツプロバイダまたは配信ネットワークの知識をもたずに広告または他の望ましくない部分を削除する等、見られているコンテンツを修正できるようにする。いくつかの例では、これらの修正はコンテンツプロバイダに、例えば、広告が事実上ブロックされていたときに広告が見られた旨の表示等、偽の情報を提供する。
保護部分の削除またはブロックを阻止する隠しマニフェスト(concealed manifest)を用いてクライアントコンピューティングデバイスに保護部分を有するコンテンツを提供するように構成されたストリーミングコンテンツ配信システムだけではなく、クライアントコンピューティングデバイス、コンテンツプロバイダ、及び広告システムを含んだ例示的な論理ネットワーク環境を示すブロック図である。 隠しマニフェストを生成し得る、図1のマニフェスト生成サービスを実装してよいサーバの一実施形態の例示的な構成を示すブロック図である。 クライアントのための隠しマニフェストを生成し、コンテンツの特定の部分の削除またはブロックを阻止する一方で、クライアントがコンテンツを消費できるようにするための図1のストリーミングコンテンツ配信システムの例示的な対話を示すブロック図である。 クライアントのための隠しマニフェストを生成し、コンテンツの特定の部分の削除またはブロックを阻止する一方で、クライアントがコンテンツを消費できるようにするための図1のストリーミングコンテンツ配信システムの例示的な対話を示すブロック図である。 隠しマニフェストに基づいてクライアントコンピューティングデバイスにコンテンツを提供するための図1のストリーミングコンテンツ配信システムの例示的な対話を示すブロック図である。 隠しマニフェストの中に示される隠し部分識別子に対応するコンテンツ部分だけではなく、図1のストリーミングコンテンツ配信システムによって提供されてよい隠しマニフェストの例示的なグラフィック表示または視覚化である。 隠しマニフェストを用いて保護部分を有するコンテンツを提供するための例示的なルーチンを示すフローチャートである。
概して説明すると、本開示は、クライアントまたはクライアントコンピューティングデバイスがコンテンツの保護部分をブロックまたは改変することを阻止し、クライアントが保護部分を見ることを確実にし得るやり方で通信ネットワークを介してストリーミングコンテンツを提供することに関する。本明細書に説明するように、ストリーミングコンテンツは概して、クライアントが、第2の部分をダウンロードしながら第1の部分を見始め得るように、別々に送信され、見られ得る(「チャンク」と呼ばれることがある)部分に分割される任意のコンテンツを指す。ストリーミングコンテンツの種々の部分は、多くの場合、コンテンツの中の部分のリストだけではなく、ストリーミングコンテンツに関するメタデータも提供する1つ以上のマニフェストの中で識別される。各部分は、クライアントコンピューティングデバイスが部分を入手し、出力するために使用し得る(例えば、ユニフォームリソースインジケータ、つまり「URI」等の)リソース識別子またはファイル名に基づいてマニフェストの中で識別されてよい。いくつかの例では、クライアントコンピューティングデバイスは、例えば法律上の警告及び通知、クレジット、献辞、または広告等の不必要なコンテンツを選択的にブロックするまたは除外するために部分のリソースインジケータを利用する場合がある。係るコンテンツをブロックするデバイスまたはソフトウェアは、「アドブロッカー」と呼ばれることがある。アドブロッカーは、多くの場合(例えば、ファイル名の中に特定の単語を含んだインジケータまたは識別子の中の特定のドメイン名を示すインジケータ等の)特定のリソースインジケータを有する部分についてマニフェストを監視し、マニフェストファイルからそれらの部分を削除するか、そうでなければクライアントコンピューティングデバイスが該部分を表示するのを妨げるかのどちらかによって機能する。これらの修正は、クライアントが重要なコンテンツを見るのを妨げ、(例えば、法律上の警告の有効性を削減する、コンテンツプロバイダの広告収入を削減する等によって)コンテンツプロバイダに悪影響を与える場合がある。したがって、本開示の実施形態は、マニフェストに一覧する個々の部分の性質をマスキングする隠し識別子を介してコンテンツの部分を一覧表示する、ストリーミングコンテンツのための隠しマニフェストを生成し、送信するストリーミングコンテンツ配信システムに関する。隠しマニフェストは、(例えばクライアント要求に応えて)「ジャストインタイムで」作成されてよく、各クライアントまたは各ストリーミングセッション(例えば、ストリーミングコンテンツが消費される各別個の例)に対して個別化され、このようにしてアドブロッカーが、どの部分が広告(またはクライアントがブロックを希望する場合がある他のコンテンツ)を含むのか、及びどの部分が他のコンテンツを含むのかを識別するのを妨げてよい。隠しマニフェストからの個々の部分がクライアントコンピューティングデバイスによって要求されるとき、ストリーミングコンテンツ配信システムは、該部分の隠し識別子を、該部分のための実際の(例えば、隠されていない)識別子に変換し、クライアントに該部分を返すことができる。このようにして、クライアントコンピューティングデバイスは、マニフェスト内の異なる部分を区別することを妨げられ、したがって特定の部分を削除するためにコンテンツを改変することを妨げられ得る。
例示的な例として、クライアントコンピューティングデバイスが、ストリーミングコンテンツ配信システムから、25分のテレビ番組制作及び3分の広告を含むストリーミングコンテンツを要求すると仮定する。典型的なマニフェストファイルは、第1の命名方式または規約(例えば、「television1.ts」、「television2.ts」等)に従って、テレビ番組制作の各部分を別々の10秒の部分で識別し、第2の命名方式または規約(「advertisement1.ts」、「advertisement2.ts」)等に従って、広告の各10秒部分を同様に識別してよい。通常の運用下では、クライアントコンピューティングデバイスは、ネットワークファイル位置(例えば、URI)に対応する場合があるマニフェストの識別子を使用し、各部分を取り出すであろう。しかしながら、クライアントコンピューティングデバイスがアドブロッカーを利用すると、クライアントコンピューティングデバイスが、第2の命名規約の下で名付けられた(例えば、「advertisementX.ts」と題する)ファイルに対するすべての参照を削除することによって広告を削除するためにマニフェストファイルを修正することは相対的に些末なことであろう。本開示の態様によれば、ストリーミングコンテンツ配信システムは、マニフェストの中の各部分の実際の識別子(例えば、ある部分が記憶されるネットワーク位置)を提供する代わりに、共通の命名規約を利用する、マニフェストの中の一連の隠し識別子を提供してよい。各隠し識別子は、対応するコンテンツ部分の性質がクライアントコンピューティングデバイスから伏せられるように(例えば、テレビ番組制作と広告の両方とも共通の命名方式によって表されるように)生成できる。隠し識別子を使用し、ある部分が要求されるとき、ストリーミングコンテンツ配信システムは、隠し識別子を実際の識別子に変換し、クライアントに正しいコンテンツ部分を提供できる。このようにして、クライアントコンピューティングデバイスは、コンテンツをストリーム配信することが可能にされるが、マニフェストファイルの中の識別子に基づいてコンテンツの部分を自動的にブロックまたは改変するのを妨げられる場合がある。
有利なことに、隠し識別子を用いてコンテンツ部分を識別する隠しマニフェストの使用は、ストリーミングコンテンツ配信システムが、セッション単位またはユーザー単位でコンテンツ部分の識別子を修正し、クライアントコンピューティングデバイスが(例えば、アドブロッカーソフトウェアを介して)各コンテンツ部分の中のコンテンツを予測できる可能性を削減または排除できるようにする。さらに、ストリーミングコンテンツ配信システムは、隠し識別子を実際の(例えば、隠されていない)識別子に変換できるため、システムは自ら実際のコンテンツ部分を複製することを必要とされず、これはストリーミングコンテンツ配信システムのストレージ要件を大幅に拡大し、システムの中のそれらのコンテンツ部分のキャッシングに干渉するであろう。さらに、マニフェストは、クライアント単位で生成できるため、各マニフェストの中で提供される特定の部分は、(例えば、部分の中の標的にされる広告を提供するために)ユーザーの属性に基づいて変えることできる。
隠しマニフェストの生成を可能にするために、ストリーミングコンテンツ配信システムは、ストリーミングコンテンツに対するクライアント要求を受け取り、そのコンテンツの部分の隠し識別子を含んだマニフェストを返すマニフェスト生成サービスを含む場合がある。いくつかの例では、マニフェスト生成サービスは、各クライアントに提供される特定のストリーミングコンテンツ(例えば、1つ以上の広告、法律上の通知等に加えてメインコンテンツ項目)を決定するために例えば広告ネットワーク等の第三者サービスと対話してよい。その後、マニフェスト生成サービスは、コンテンツの各部分のために隠し識別子を利用する、ストリーミングコンテンツのための隠しマニフェストを生成できる。一実施形態では、マニフェスト生成サービスは、技術で既知であるさまざまな暗号化技術のいずれかに従ってコンテンツ部分の実際の識別子を暗号化することによって所与のコンテンツのための隠し識別子を決定してよい。したがって、(例えば「advertisement.ts」等の)人間が認識可能な識別子は、隠しマニフェストの中に含めることができる人間が認識不可能な識別子に変換されてよい。別の実施形態では、マニフェスト生成サービスは、無作為な選択によってまたは一方向性ハッシュアルゴリズムに実際の識別子を通すことによって所与のコンテンツ部分のための隠し識別子を決定してよい。概して、ストリーミングコンテンツ配信システムは、クライアントに提供される隠し識別子及び対応する実際の識別子のレコード、またはクライアントごとに隠し識別子がどのようにして作成されたのかのレコードを維持することができるので、クライアントに提供される隠し識別子は、一意であることを必要とされない。しかしながら、ストリーミングコンテンツ配信システムの種々の構成要素間で状態情報を維持する必要性を削減するために、隠し識別子が一意である(例えば、統計的に複製される可能性がきわめて低い)ようにストリーミングコンテンツ配信システムを構成することが望ましい場合がある。例えば、すべての隠し識別子が、共通の暗号鍵を使用し、実際の識別子を暗号化することによって作成される場合、ストリーミングコンテンツ配信システムの任意の構成要素は、他の情報が構成要素間で維持されることを必要とすることなく、その暗号鍵を使用し、隠し識別子を実際の識別子に変換してよい。したがって、例えばマニフェスト生成サービスが、クライアントコンピューティングデバイスにコンテンツ部分を実際に提供する構成要素とは別個に実装される実施形態等、広く分散しているシステムでは、実際の識別子を隠し識別子に変換するために共通の暗号鍵を使用することが望ましい場合がある。
いくつかの例では、個々の部分の中のコンテンツは、さらに、一定の属性を維持するために種々の部分を再符号化する、またはそうでなければ修正することによって隠される場合がある。例えば、ストリーミングコンテンツが、概して10秒のインクリメントで提供される2つのタイプのコンテンツ(例えば、メインコンテンツと広告コンテンツの両方)を含むとき、コンテンツタイプの一方または両方が、10秒のインクリメントに均等に分割できない長さである可能性がある。部分は必ずしも一定の持続時間を維持するよう求められていないが、その持続時間の相違は、クライアントコンピューティングデバイスによってコンテンツのタイプを区別するために使用できるであろう(例えば、ある部分が周囲の部分とは異なる持続時間である場合、それはおそらくコンテンツのタイプ間の遷移を示す)。同様に、異なるタイプのコンテンツは、タイプを区別するためにも使用され得る、例えば符号化タイプ、ビットレート、解像度、フレームレート、コーデック、コーデックプロファイル、コーデックレベル、チャネルカウント等の異なる属性を有することがある。コンテンツタイプの区別を阻止するために、ストリーミングコンテンツ配信システムは、コンテンツを再符号化するように構成されたコンテンツ生成サービスを含む場合があり、これによりそうでなければ、ストリームの中で変化するであろう部分は均一な属性をもたせられる場合がある。例えば、第1のタイプのコンテンツ(例えば、メインコンテンツ)が、通常、標準外の持続時間の部分で提供され、後に第2のタイプのコンテンツ(例えば、広告コンテンツ)が続く場合、コンテンツ生成サービスは、第1のタイプのコンテンツ及び第2のタイプのコンテンツを再符号化して、(それぞれが、第1のタイプのコンテンツ及び第2のタイプのコンテンツの組み合わせを含んでよい)標準持続時間の1つ以上の部分を作成することができる。追加の例として、第1のタイプのコンテンツ及び第2のタイプのコンテンツが、例えば符号化タイプ、ビットレート、解像度、フレームレート、コーデック、コーデックプロファイル、コーデックレベル、チャネルカウント等の他の属性で変化する場合、コンテンツ生成システムは、第1のタイプのコンテンツ及び第2のタイプのコンテンツのどちらかまたは両方を再符号化して、コンテンツタイプの属性を統一してよい。さらに別の例として、1つ以上のタイプのコンテンツが補足コンテンツ(例えば、ビデオコンテンツを補足する音声または字幕)と関連付けられる場合、コンテンツ生成システムは、補足コンテンツの属性の整合性を保証するために補足コンテンツも再符号化してよい。以下により詳細に説明するように、コンテンツ生成サービスは、いくつかの例では、必要とされるコンテンツ部分が(例えば、隠しマニフェストの中で)クライアントコンピューティングデバイスに対して識別された後にだけ、必要とされるコンテンツ部分を生成することによってジャストインタイムに動作してよい。
自動コンテンツフィルタリング及び(例えば、アドブロッカーを用いる)自動コンテンツブロックに加えて、本開示の実施形態は、クライアントによるコンテンツの手動読み飛ばしを阻止する、または妨げることができる。具体的には、本開示の実施形態は、そのコンテンツが、マニフェストを消費するクライアントの活動に基づいて変化する適応マニフェストを利用できる。例えば、マニフェストは、ストリーミングセッションの始まりで全体で提供されるよりむしろ、ストリーミングセッションの間に(例えば、絶えず更新される単一のファイルで、複数のファイルで等)クライアントに提供できる。ストリーミングコンテンツ配信システムは、次いでストリーミングセッションの間のユーザー活動に基づいてマニフェストファイルのより最近のセクションのコンテンツを変えるように構成できる。例えば、マニフェストの第1のセクションが広告を含んでいるが、(例えば、クライアントが広告に相当するコンテンツのセクションを読み飛ばしたために)その広告がクライアントによって出力されない場合、ストリーミングコンテンツ配信システムは、広告を再度導入するためにマニフェストの後続のセクションを生成できる。このようにして、マニフェストの各セクションの中に含まれる特定のコンテンツ部分は、クライアントコンピューティングデバイスの活動に基づいてカスタマイズできる。
例は、コンテンツ配信システムに関して本明細書に示されているが、本開示の実施形態は、クライアントコンピューティングデバイスにストリーミングコンテンツを供給するために動作するコンピューティングデバイスの任意のネットワークに関して実施されてよい。さらに、いくつかの例は、例えば音声及びビデオ等の特定のタイプのストリーミングコンテンツに関して示されているが、本開示の実施形態は、マニフェストによってユーザーに対して識別される別々のセクションに分割される任意のコンテンツの配信を制御するために利用されてよい。なおさらに、いくつかの例は、コンテンツストリームの中に含まれる追加コンテンツ(例えば、広告、免責条項、クレジット等)を制御することに関して示されているが、本開示の実施形態は、任意のコンテンツがどのようにしてコンテンツストリームの中に含められるのかを制御するために利用されてよい。例えば、いくらかのコンテンツは、(例えば、視聴が特定の期間または地理的な位置に限定されるように)誰がコンテンツを見てよいのか、またはコンテンツがどのようにして見られてよいのかを限定する制限と関連付けられてよい。本開示の実施形態は、クライアントが見ることができるが、識別子が難読化されているため、クライアントが(例えば、制限されているコンテンツのファイル名を認識することによって)制限と関連付けられた特定のコンテンツを識別するのを妨げる隠しマニフェストを利用してよく、さらに(例えば、モニタ情報または他のデータを含む)クライアントに関して収集された情報に基づいて(例えば、制限されているコンテンツを含めるまたは除外するために)クライアントのためのカスタムマニフェストを生成してよい。このように、本明細書に示される例は、本来、網羅的ではなく例示的となることを目的としている。
上記説明を鑑みて当業者によって理解されるように、本明細書に開示される実施形態は、クライアントデバイスが1つ以上の保護部分の出力を修正することを阻止される、または妨げられるように、保護された方法でユーザーにコンテンツを配信する、例えばストリーミングコンテンツ配信システム等のコンピューティングシステムの能力を実質的に高める。このように、本開示実施形態は、ストリーミングコンテンツ配信システムまたは他のネットワーク化されたデバイスが、例えばテレビネットワーク及びラジオネットワーク等の従来の配信ネットワークによって提供される機能性を複製し、再現できるようにすることによって係るコンピューティングシステムの機能の改善を表す。さらに、本開示実施形態は、コンピューティングシステムの中で固有の技術的な問題、具体的には、ネットワーク伝送システムが有する、クライアントコンピューティングデバイスへの送信後のデータの限られた制御、及びクライアントデバイスが望ましくない方法でそのコンテンツを修正する高い可能性に対処する。これらの技術的な問題は、種々のコンテンツ部分の中のコンテンツタイプを隠す隠しマニフェストファイルの使用、及びそのコンテンツをクライアントの挙動に基づいて変えることができる適応マニフェストファイルの使用を含んだ、本明細書に説明する種々の技術的な解決策により対処される。このように、本開示は、既存のネットワークシステム及び一般的なコンピューティングシステムに対する多大な改善に相当する。
本開示の上述の態様及び多くの付随する利点は、添付の図面と併せ解釈されるとき、以下に対する参照により良好に理解されるので、より容易に認識される。
図1は、ネットワーク106を介してストリーミングコンテンツ配信システム110と通信する、複数のクライアントコンピューティングデバイス102、コンテンツプロバイダ104、及び広告システム130を含んだ例示的な論理ネットワーク環境100を示すブロック図である。コンテンツコンピューティングデバイス102、コンテンツプロバイダ104、及び広告システム130は、図1の中でグループ分けされて示されているが、クライアントコンピューティングデバイス102、コンテンツプロバイダ104、及び広告システム130は、地理的に遠く、独立して所有されてよい、または運用されてよい。例えば、クライアントコンピューティングデバイス102は、ストリーミングコンテンツ配信システム110にアクセスする種々の世界的な位置、大陸上の位置、または地域的な位置の多数のユーザーを表すことがあるであろう。さらに、コンテンツプロバイダ104は、クライアントコンピューティングデバイス102に、例えば、ウェブサイト、マルチメディア、または他のネットワーク配信可能なデジタルコンテンツ等のコンテンツを提供するためにストリーミングコンテンツ配信システム110と関連している多数の関連当事者または別々の関係者を表すことがあるであろう。さらに、広告システム130は、コンテンツプロバイダと関連付けられたコンテンツの中に含まれる広告コンテンツを提供される(及び、例えば、コンテンツプロバイダに収益を提供する)多数の関連当事者または別々の関係者を表すことがあるであろう。別々として示されているが、クライアントコンピューティングデバイス、コンテンツプロバイダ104、または広告システム130は、共通のエンティティによってまたは共通のコンピューティングデバイスによって運用されてよい。したがって、図1の中のクライアントコンピューティングデバイス102、コンテンツプロバイダ104、及び広告システム130のグループ分けは、物理的よりむしろ論理的なグループ分けを表すことを目的とする。同様に、ストリーミングコンテンツ配信システム110の構成要素のそれぞれは、地理的に多様な領域に位置してよい。例えば、ストリーミングコンテンツ配信システム110は、ストリーミングコンテンツ配信システム110に幅広い地理的プレゼンスを提供するために、世界的に、大陸的に、または地域的に別個のさまざまな位置にPOP112を含む場合がある。
ネットワーク106は、任意の有線ネットワーク、無線ネットワーク、またはその組み合わせであってよい。さらに、ネットワーク106は、パーソナルエリアネットワーク、ローカルエリアネットワーク、広域ネットワーク、ケーブルネットワーク、衛星ネットワーク、携帯電話ネットワーク、またはその組み合わせであってよい。図1の例の環境では、ネットワーク106は、インターネット等のグローバルエリアネットワーク(GAN)である。他の上述の種類の通信ネットワークを介して通信するためのプロトコル及び構成要素は、コンピュータ通信の当業者に周知であり、したがって、本明細書により詳細に説明する必要はない。クライアントコンピューティングデバイス102、コンテンツプロバイダ104、広告システム130、及びストリーミングコンテンツ配信システム110のそれぞれは、ネットワーク106に対する単一の接続を有するとして示されているが、クライアントコンピューティングデバイス102、コンテンツプロバイダ104、広告システム130、及びストリーミングコンテンツ配信システム110の個々の構成要素は、異なる点でネットワーク106に接続されてよい。したがって、通信時間及び機能は、図1の構成要素間で変わる場合がある。
クライアントコンピューティングデバイス102は、ストリーミングコンテンツ配信システム110と通信できる任意の数の異なるコンピューティングデバイスを含んでよい。例えば、個々のクライアントコンピューティングデバイス102は、ラップトップコンピュータまたはタブレットコンピュータ、パーソナルコンピュータ、ウェアラブルコンピュータ、サーバ、パーソナルデジタルアシスタント(PDA)、ハイブリッドPDA/携帯電話、携帯電話、電子書籍リーダー、セットトップボックス、カメラ、デジタルメディアプレーヤ等に相当してよい。各クライアントコンピューティングデバイス102は、専用のプレイバックハードウェア、専用のソフトウェア(例えば、特別にプログラムされたアプリケーション)、及び(例えば、コンテンツを直接的にダウンロードする、コンテンツを含んだウェブページをダウンロードすること等によって)ストリーミングコンテンツを出力可能な汎用ソフトウェア(例えば、ウェブブラウザ)を含んだ、ストリーミングコンテンツの受信及び出力を可能にするハードウェア及び/またはソフトウェアを含んでよい。いくつかの例では、クライアントコンピューティングデバイス102は、さらに、例えばコンテンツの特定の部分がクライアントコンピューティングデバイスによって出力されたかどうか等、ストリーミングコンテンツ配信システム110に対するコンテンツの出力に関する情報を報告するように構成されてよい。個々のクライアントコンピューティングデバイス102の特定の構成は、変わる場合がある。例えば、大部分のクライアントコンピューティングデバイス102は、修正なしでストリーミングコンテンツを取り出し、出力してよい。しかしながら、いくつかのクライアントコンピューティングデバイス102は、特定の部分(例えば、法律上の警告、クレジット、献辞、広告等)を削除するためにストリーミングコンテンツを修正するように構成されたハードウェアまたはソフトウェアを含む場合がある。
コンテンツプロバイダ104は、(1つ以上のクライアントコンピューティングデバイス102を含んでよい)クライアントコンピューティングデバイスに対する後続の送信のためにストリーミングコンテンツ配信システム110にコンテンツを提供するエンティティによって所有されるまたは運用される任意のコンピューティングデバイスを含んでよい。例えば、コンテンツプロバイダ104は、ストリーミング音声サービス、ビデオサービス、テキストサービス、マルチメディアサービス、または対話型サービス(例えば、ビデオゲーム、仮想現実コンテンツもしくは拡張現実コンテンツ、または他の没入型コンテンツ)をホストするサーバを含んでよい。コンテンツプロバイダ104は、図1にネットワーク接続コンピューティングデバイスとして例示的に示されているが、さらにまたは代わりにネットワーク化されていない通信チャネルを介して(例えば、データの物理的な送達によって)ストリーミングコンテンツ配信システム110にコンテンツを提供してよい。
広告システム130は、他のコンテンツ(例えば、ストリーミングビデオ)の中に含めるためにストリーミングコンテンツ配信システム110に広告コンテンツを提供するエンティティによって所有される、または運用される任意のコンピューティングデバイスを含む場合がある。広告は、ストリーミングコンテンツ配信システム110によって提供される他のコンテンツタイプの中に挿入される写真、テキスト、音声、ビデオ、または任意の他のコンテンツを含んでよい。例示的には、広告は、例えばハードドライブ(HDD)、ソリッドステートドライブ(SDD)、ネットワーク接続ストレージ(NAS)、テープドライブ、またはその任意の組み合わせ等の任意の永続的なまたは実質的に永続的なデータストレージに相当してよい広告コンテンツデータストア134の中に広告システム130によって記憶されてよい。いくつかの例では、広告システム130は、(例えば、クライアントコンピューティングデバイスの属性に基づいて)ストリーミングコンテンツ配信システム110によって提供されるストリーミングコンテンツの中に含められる特定の広告を選択するように構成されてよい。したがって、広告システム130は、(例えば、クライアントコンピューティングデバイスの属性を含んだ)クライアントコンピューティングデバイスにストリーミング配信されるコンテンツに関する情報を受け取り、ストリーミングコンテンツの中に含められる広告の選択を返すように構成された広告選択サービス132を含んでよい。一実施形態では、ストリーミングコンテンツ配信システム110及び広告選択サービス132は、ストリーミングコンテンツサービスが、ストリーミングコンテンツに関する情報を送信する、ならびに広告システム130から、どの広告が再生されるべきか、広告がどのように再生されるべきか、及びどの情報が追跡されるべきかに関する情報を受信することを可能にする、標準的なプロトコル、または例えばINTERACTIVE ADVERTISING BUREAU(商標)(「IAB」)によって提供されるビデオアドサービングテンプレート(VAST)仕様等の仕様を用いて通信してよい。広告選択サービス132を含んだ広告システム130の動作は、概して技術で既知であるため、本明細書では詳細に説明しない。コンテンツストリームに含むための広告を選択する別個の広告システム130に関して例示的な実施形態が説明されているが、ストリーミングコンテンツ配信システム110は、(例えば、ストリーミングコンテンツ配信システム110の中に広告選択サービス132を統合することによって、一連の規則に基づいて広告を選択することによって、静止した広告を提供することによって、保護コンテンツとして非広告コンテンツを統合することによって等)広告システム130との対話なくさらにまたは代わりに動作してよい。
ストリーミングコンテンツ配信システム110は、クライアントコンピューティングデバイス102が、コンテンツプロバイダ104及び広告システム130によってストリーミングコンテンツ配信システム110に提供されるストリーミングコンテンツにアクセスできるように構成されたさまざまな構成要素及びデバイスを含む場合がある。具体的には、ストリーミングコンテンツ配信システム110は、ストリーミングコンテンツのホストをする、またはストリーミングコンテンツ配信システム110、コンテンツプロバイダ104、及び/または広告システム130によってホストされるストリーミングコンテンツのためのキャッシング点として機能するように構成された、いくつかのPOP112を含む場合がある。各POP112は、クライアントコンピューティングデバイス102にコンテンツを供給するように構成されたさまざまなコンピューティングデバイスを含んでよい。したがって、各POP112は、図1に図示されていないが、ストリーミングコンテンツの取り出し及びクライアントコンピューティングデバイスへの配信を容易にするために連動して動作する任意の数のプロセッサ、データストア、及びネットワーキング構成要素を含んでよい。任意の有線ネットワーク、無線ネットワーク、またはそれらの組み合わせを含んでよく、パーソナルエリアネットワーク、ローカルエリアネットワーク、広域ネットワーク、ケーブルネットワーク、衛星ネットワーク、移動電話ネットワーク、またはその組み合わせであってよい、そのシステム110の内部ネットワークを介して、POP112は、ストリーミングコンテンツ配信システム110の他の構成要素と通信してよい。いくつかの例では、内部ネットワークは、(例えば、仮想プライベートネットワーク、つまり「VPN」として)少なくとも部分的にネットワーク106によって実装されてよい。例示的には、各POP112は、ローカルキャッシュデータストアの中のコンテンツ部分(例えば、最も最近に要求されたn個のコンテンツ部分)の限られた選択を保持するために機能してよく、これによりこれらのコンテンツ部分は、クライアントコンピューティングデバイス102に迅速に送信できる。ローカルキャッシュデータストアが要求されたコンテンツ部分を含んでいないとき、POP112は、例えば、ストリーミングコンテンツ配信システム110のコンテンツデータストア119、広告コンテンツデータストア134、または(図1に図示されていない)コンテンツプロバイダ104のシステムの中のデータストア等のリモートデータストアからコンテンツ部分を取り出し、要求側のクライアントコンピューティングデバイス102にコンテンツ部分を返すように構成できる。
本開示の実施形態によれば、ストリーミングコンテンツ配信システム110は、ストリーミングコンテンツに対するクライアント要求に応え、隠し識別子を介して要求側クライアントコンピューティングデバイス102に提供されるいくつかのコンテンツ部分を識別する隠しマニフェストを生成するように構成されたマニフェスト生成サービス114を含む場合がある。隠しマニフェストは、コンテンツ部分のための隠し識別子を利用するため、クライアントコンピューティングデバイス102が各部分の中のコンテンツのタイプを区別するのを妨げ、したがって特定のタイプのコンテンツを自動的にブロックすることを阻止するまたは妨げることができる。以下により詳細に説明するように、マニフェスト生成サービス114は、マニフェストの中で識別される特定のコンテンツ部分を選択するために、例えば広告システム130等の外部構成要素だけではなくストリーミングコンテンツ配信システム110の他の構成要素とも対話してよい。マニフェスト生成サービス114は、さらに、マニフェストの中で識別された任意のカスタムコンテンツ部分がストリーミングコンテンツ配信システム110で利用できることを確実にするために、コンテンツ生成サービス116と通信できる。いくつかの例では、マニフェスト生成サービス114は、例えば広告システム130によって提供される広告等の保護コンテンツの手動読み飛ばしを阻止する、または妨げるためにクライアントコンピューティングデバイス102の活動に基づいてマニフェストの中に含まれるコンテンツ部分を変えてよい。さらに、マニフェスト生成サービス114は、係る構成要素が、隠しマニフェストの中に含まれる隠し識別子をコンテンツ部分のための実際の識別子に変換できるようにし、したがってそれらの構成要素がコンテンツ部分を取り出し、クライアントコンピューティングデバイス102に提供できるようにする例えばPOP112等のストリーミングコンテンツ配信システム110の他の構成要素に情報を通信できる。
ストリーミングコンテンツ配信システム110は、さらに、隠しマニフェストの中で識別されるコンテンツ部分を生成する、または隠しマニフェストの中のすべてのコンテンツ部分が、同じまたは類似した属性(例えば、同じ長さ、解像度、ビットレート、フレームレート等)を共用するように既存のコンテンツ部分を接合する、分割する、または修正するように構成されたコンテンツ生成サービス116を含む場合がある。例示的に、コンテンツ生成サービス116は、マニフェスト生成サービス114から、隠しマニフェストの中で識別される1つ以上のコンテンツ部分及びそれらのコンテンツ部分の所望されるパラメータを示す通知を受け取り、次いでそれらの所望されるパラメータに適合するために既存のコンテンツ(例えば、既存のメインコンテンツ、広告等)を再符号化するように構成されてよい。コンテンツ生成サービス116は、次いで(例えば、コンテンツデータストア119の中に)生成された部分を記憶して、隠しマニフェストを受け取ったクライアントコンピューティングデバイス102、POP112、またはストリーミングコンテンツ配信システム110の他の構成要素がそれらの部分を利用できるようにしてよい。いくつかの例では、コンテンツ生成サービス116は、コンテンツ部分が、クライアントコンピューティングデバイス102への隠しマニフェストの配信と同時にまたは配信後に生成されるように、「ジャストインタイム」に機能できる。
(例えば、コンテンツプロバイダ104、広告システム130等によって提供される)他のコンテンツだけではなく生成されたコンテンツ部分も記憶するために利用されてよいコンテンツデータストア119は、例えばハードドライブ(HDD)、ソリッドステートドライブ(SDD)、ネットワーク接続ストレージ(NAS)、テープドライブ、またはその任意の組み合わせ等の任意の永続的なまたは実質的に永続的なデータストレージに相当する場合がある。
ストリーミングコンテンツ配信システム110は、さらに、クライアントコンピューティングデバイス102に対するコンテンツ部分の送信またはクライアントコンピューティングデバイス102上でのそれらのコンテンツ部分の出力に関する情報を受け取るように構成されたモニタリングサービスを含む場合がある。いくつかの例では、POP112は、特定のコンテンツ部分が要求され、クライアントコンピューティングデバイス102に配信されたことを示す情報をモニタリングサービス118に送信してよく、これはクライアントコンピューティングデバイス102が、コンテンツ部分を見た(または少なくとも見た可能性がある)ことを示してよい。さらに、クライアントコンピューティングデバイス102自体が、モニタリングサービス118に、特定のコンテンツ部分が受け取られたまたはユーザーに出力されたことを示す情報を送信してよい。いくつかの例では、クライアントコンピューティングデバイス102は、例えば、ストリーミングコンテンツを出力するウェブページの中に含まれるJAVASCRIPT(登録商標)等の、ストリーミングコンテンツ配信システム110によって提供されるコードを実行することによってモニタリング情報を提供してよい。以下により詳細に説明するように、モニタリングサービス118で収集されたモニタリング情報は、いくつかの例では、隠しマニフェストの中で識別されるコンテンツ部分を生成または適応するためにマニフェスト生成サービス114によって利用されてよい。
ストリーミングコンテンツ配信システム110が、図1に示すよりもより少ないまたはより多い構成要素を有してよいことが、当業者によって理解される。さらに、ストリーミングコンテンツ配信システム110は、種々のウェブサービス及び/またはピアツーピアネットワーク構成を含む場合があるであろう。したがって、図1のストリーミングコンテンツ配信システム110は、例示的と解釈されるべきである。例えば、いくつかの実施形態では、マニフェスト生成サービス114またはコンテンツ生成サービス116等のストリーミングコンテンツ配信システム110の構成要素は、ホストされたコンピューティング環境において実装されるもう1つの仮想マシンによって実行されてよい。ホストされたコンピューティング環境は、1つ以上の急速にプロビジョニングされ、リリースされるコンピューティングリソースを含んでよく、コンピューティングリソースは、コンピューティングデバイス、ネットワーキングデバイス、及び/またはストレージデバイスを含んでよい。ホスト型コンピューティング環境は、さらに、クラウド型コンピューティング環境と呼ばれる場合がある。
図2は、本明細書に説明するマニフェスト生成サービス114を実装してよいサーバ200のアーキテクチャの一実施形態を示す。図2に示されるサーバ200の一般的アーキテクチャは、本開示の態様を実施するために使用されてよいコンピュータハードウェア及びソフトウェア構成要素の配置構成を含む。示されるように、サーバ200は、処理ユニット204、ネットワークインタフェース206、コンピュータ可読媒体ドライブ207、入出力装置インタフェース220、ディスプレイ202、及び入力装置224を含み、それらのすべては、通信バスを経由して互いと通信してよい。ネットワークインタフェース206は、例えば図1のネットワーク106等の1つ以上のネットワークまたはコンピューティングシステムへの接続性を提供してよい。したがって、処理ユニット204は、ネットワークを介して他のコンピューティングシステムまたはサービスから情報及び命令を受信してよい。また、処理ユニット204は、メモリ210と往復するように通信し、さらに、入出力装置インタフェース220を介して、選択式ディスプレイ202に出力情報を提供してよい。また、入出力装置インタフェース220は、例えばキーボード、マウス、デジタルペン等の選択式入力装置224から入力を受け入れてもよい。いくつかの実施形態では、サーバ200は、図2に示すよりもより多くの(より少ない)構成要素を含んでよい。例えば、サーバ200のいくつかの実施形態は、1つ以上の代替通信チャネルを通して(例えば、ネットワークインタフェース206を介して)入出力機能を提供する一方で、ディスプレイ202及び入力装置224を省略してよい。
メモリ210は、処理ユニット204が1つ以上の態様を実施するために実行するコンピュータプログラム命令を含んでよい。メモリ210は、概して、RAM、ROM、及び/または他の永続メモリまたは非一過性のメモリを含む。メモリ210は、サーバ200の一般管理及び動作における処理ユニット204による使用のためにコンピュータプログラム命令を提供するオペレーティングシステム214を記憶してよい。メモリ210は、さらに、コンピュータプログラム命令、及び本開示の態様を実施するための他の情報を含んでよい。例えば、一実施形態では、メモリ210は、例えばコンピューティングデバイスにインストールされたウェブブラウザ等のナビゲーションインタフェースを介して、コンピューティングデバイスでの表示のためにユーザーインタフェース(及び/または、そのための命令)を生成するユーザインタフェースソフトウェア212を含む。さらに、メモリ210は、例えばハードドライブ(HDD)、ソリッドステートドライブ(SDD)、ネットワーク接続ストレージ(NAS)、テープドライブ、またはその任意の組み合わせ等の任意の永続的なまたは実質的に永続的なデータストレージに相当する場合がある、例えばデータストア120等の1つ以上の補助データストアを含んでよい、または1つ以上の補助データストアと通信してよい。
ユーザーインタフェースモジュール212に加えて、メモリ210は、処理ユニット204によって実行されてよいマニフェスト生成ソフトウェア216を含んでよい。一実施形態では、マニフェスト生成ソフトウェア216は、例えば、保護コンテンツ部分を自動的にまたは手動でブロックする、読み飛ばす、または改変するためにクライアントを妨げるまたは阻止する、クライアントコンピューティングデバイス116のための隠しマニフェストを生成する等、本開示の種々の態様を実施する。マニフェスト生成ソフトウェア216は、サーバ200の部分として図2に示されているが、他の実施形態では、ソフトウェアのすべてまたは一部分は、例えばホストされているコンピューティング環境の中のコンピューティングデバイス、コンピューティングデバイス204の一部等、ストリーミングコンテンツ配信システム110の中の代替コンピューティングデバイスによって実装されてよい。
図3A及び図3Bは、デバイス102が、そのコンテンツの部分(「保護」部分)を削除する、修正する、またはブロックするのを妨げるまたは阻止する一方、ストリーミングコンテンツ配信システム110からコンテンツを配信できるようにするためにクライアントコンピューティングデバイス102に隠しマニフェストを提供するための例示的な一連の対話を示す。2つの図として示されているが、図3Aと図3Bの間の対話の数は整合性のために維持される。
クライアントコンピューティングデバイス102が、ストリーミングコンテンツ配信システム110のPOP112からコンテンツを要求する図3Aの(1)で、対話が開始する。要求は、ストリーミングコンテンツ、ウェブブラウザアプリケーション等を見るためのアプリケーションを起動するまたはアプリケーションと対話することによってクライアントがクライアントコンピューティングデバイス102を使用することにより生成されてよい。要求は、例えばテレビ番組、映画、ビデオ、音声プログラム等のクライアントが所望する少なくとも1つのメインコンテンツを示す場合がある。いくつかの例では、要求は、さらに、例えば、デバイス102の構成、デバイス102の位置、デバイス102またはストリーミングコンテンツ配信システム110上のクライアントのアカウント等の、クライアントコンピューティングデバイス102またはクライアントコンピューティングデバイス102を利用するクライアントに関する情報を示す場合がある。以下に説明するように、この情報は、そのいずれもストリーミングコンテンツ配信システム110が、クライアントコンピューティングデバイス102による自動的な削除もしくは修正、またはデバイス102のクライアントによる手動読み飛ばしから保護することを希望する、例えば法律上の警告、クレジット、献辞、または広告等の、クライアントコンピューティングデバイス102に提供される追加コンテンツを決定するために、ストリーミングコンテンツ配信システム110及び/または広告システム130によって利用されてよい。
(2)で、受信側POP112は、マニフェスト生成サービス114からマニフェストを要求する。マニフェストは、概して順番に再生されるとコンテンツストリームを形成するコンテンツ部分のリストだけではなく、ストリームのフォーマット等の、コンテンツストリームに関するメタデータのレコードに相当する場合がある。したがって、POP112によって送信される要求は、ストリーム配信されることが要求されるメインコンテンツ等のクライアントコンピューティングデバイス102から受け取られる情報、クライアントコンピューティングデバイス102に関する情報、またはデバイス102のクライアントに関する情報を含んでよい。POP112によって送信される要求は、さらに、例えば要求の時刻、デバイス102のクライアントのアカウントと関連付けられた情報等のPOP112によって入手される追加の情報を含んでよい。
上述するように、クライアントコンピューティングデバイス102によって要求されるメインコンテンツに加えて、ストリーミングコンテンツは、例えば法律上の警告、クレジット、献辞、または広告等の1つ以上の他のタイプのコンテンツを含む場合もある。このコンテンツは、概して本明細書では「追加コンテンツ」として説明する。いくつかの例では、マニフェスト生成サービス114自体が、コンテンツストリームの中にどの追加コンテンツを含めるのかを決定してよい。例えば、マニフェスト生成サービス114は、すべてのコンテンツストリームの中に特定の法律上の警告を含むこともあれば、(例えば、要求されるメインコンテンツ、要求の属性、クライアントコンピューティングデバイス102の属性等の基準に基づいて)ストリームの中でどの追加コンテンツを提供すべきかを決定する一連の規則を維持する場合もある。他の例では、マニフェスト生成サービス114は、コンテンツストリームにどの追加コンテンツを含むのかを決定するために、例えば広告システム130等の他の構成要素と対話してよい。追加コンテンツは、マニフェストファイルが生成されるときに決定できるため、追加コンテンツは、明確にクライアントコンピューティングデバイス102またはそのデバイス102のクライアント向けにすることができる。例えば、クライアントに関連性がある可能性があるコンテンツストリームの中に特定の広告を含めることができる。図3Aの説明のために、マニフェスト生成サービス114が、追加コンテンツとしてコンテンツストリームの中に含める少なくとも1つの広告を決定するために、広告システム130Aと対話するように構成されると仮定される。
したがって、(3)で、マニフェスト生成サービス114は広告システム130Aに、コンテンツストリームの中に含められ、したがってクライアントコンピューティングデバイス102に配信されるマニフェストファイルの中で識別される広告の選択の要求を送信する。一実施形態では、要求は、VAST仕様に従ってフォーマットされてよく、例えば、要求されたメインコンテンツ、クライアントコンピューティングデバイス102の属性、そのデバイス102のクライアントの属性等に関する情報等の要求に関する任意の情報を含んでよい。それに応じて、(4)で、広告システム130Aは、広告がどのようにしてメインコンテンツに挿入されるのか(例えば、どのようなときに)、広告の出力に関して追跡される情報等を示してもよい、追加コンテンツとしてコンテンツストリームに含められる広告の表示を返す。広告を選択するための具体的な対話は、本開示の範囲外であるため、詳細に説明しない。
(5)で、マニフェスト生成サービスは、要求されたメインコンテンツと任意の追加コンテンツ(例えば、広告システム130Aによって選択される広告)の両方に相当するコンテンツ部分を識別する隠しマニフェストを生成する。例示的に、隠しマニフェストを生成するために、マニフェスト生成サービス114は、最初に、クライアントコンピューティングデバイスにどのコンテンツをストリーム配信するのか(例えば、メインコンテンツ及び追加コンテンツ)及び(例えば、広告システム130Aによって提供される情報またはマニフェスト生成サービス114で維持される他の情報によって決定される)そのコンテンツの相対的な順序を識別してよい。マニフェスト生成サービス114は、次いで、順番に再生されると所望されるコンテンツストリームを形成するコンテンツ部分を決定できる。例えば、マニフェスト生成サービス114が、次に30分のテレビ番組をストリーム配信する前に3分の広告をストリーム配信すべきであると判断する場合、マニフェスト生成サービス114は、30分のテレビ番組を形成するコンテンツ部分だけではなく3分の広告を形成するコンテンツ部分も識別するマニフェストを生成してよい。マニフェストは、例えば、コンテンツ部分のフォーマット、各部分の長さ、ストリームの全体的な持続時間等のストリームに関するメタデータを含んでもよい。一実施形態では、マニフェストは、HTTP(ハイパーテキスト転送プロトコル)ライブストリーミングプロトコル、つまり「HLS」に従ってフォーマットされる。通常、このプロトコルに従って生成されたマニフェストは、ネットワークベースのシステム上の実際のファイルに対応するコンテンツ部分ごとに識別子を含む。例えば、マニフェストは、ネットワークベースのストレージデバイス上に記憶されるビデオファイルに対応するコンテンツ部分ごとにURIを示してよい。したがって、クライアントは、これらのビデオファイルをダウンロードし、出力することによってマニフェストで識別されたコンテンツをストリーム配信できる。しかしながら、マニフェストの中に実際の識別子を直接的に配置することは、クライアントデバイスに、マニフェストを選択的に修正する、または特定のコンテンツ部分のダウンロードもしくは出力をブロックする機会も与える。
したがって、本開示の実施形態によれば、マニフェスト生成サービスによって生成されるマニフェストは、ストリーミングコンテンツ配信システム110の中で直接的にファイルを識別しない場合があり、各コンテンツ部分のコンテンツをマスキングする場合がある一連の隠し識別子を含む場合があり、これによりクライアントコンピューティングデバイス102が、隠し識別子に基づいてコンテンツ部分のコンテンツを決定することはありそうにない、または不可能である。コンテンツ部分のための隠し識別子を利用するマニフェストは、概して本明細書で隠しマニフェストと呼ばれてよい。例えば、マニフェスト生成サービス114は、各コンテンツ部分の実際の識別子を提供するよりむしろ、隠し識別子を生成するために暗号鍵を使用し、識別子を暗号化してよい。クライアントがコンテンツ部分ごとの実際の識別子を決定できないように、暗号鍵は、クライアントコンピューティングデバイス102から離しておくことができる。しかしながら、暗号鍵は、ストリーミングコンテンツ配信システム110の構成要素と共用されてよく、これによりそれらの構成要素は、隠し識別子によって識別されたコンテンツ部分に対する要求を受け取ると、隠し識別子に対応する実際のコンテンツ部分を決定し得る。コンテンツ識別子の暗号化が、(例えば、デジタル著作権管理[「DRM」]方式の下で起こる場合がある)コンテンツ部分自体の暗号化とは異なることに留意されたい。コンテンツ識別子の暗号化は、コンテンツ部分のリソースロケータ(例えば、ファイル名または経路)の暗号化を指すことを目的とし、したがってクライアントコンピューティングデバイス102が、ストリーミングコンテンツ配信システム110への要求の中でコンテンツ部分をどのようにして識別するのかを改変してよい。対照的に、コンテンツ部分自体の暗号化は、概して特定のファイルの暗号化を指し、したがって(いったん受け取られた)コンテンツ部分がクライアントコンピューティングデバイス102によってどのようにして読み取られるのかまたは出力されるのかを改変してよい。暗号化されたコンテンツ識別子は、個々のコンテンツ部分自体の暗号化とともに、または暗号化なしで利用されてよい。上述したように、(暗号化に加えてまたは暗号化の代わりに)他の機構が、隠し識別子を生成するために利用されてよい。例えば、所与のコンテンツ部分のための隠し識別子は、いくつかの例では、無作為な選択によって、または一方向性ハッシュアルゴリズムに実際の識別子を通すことによって決定されてよい。
実例として、図5は、本開示に従って利用されてよい隠しマニフェスト502の視覚化を含む。図5に示すように、隠しマニフェスト502は、見られるとストリーミングコンテンツを形成する(隠し識別子504A−Zによって識別される)一連のコンテンツ部分を識別する。各隠し識別子504は、(例えば、コンテンツ部分の実際の識別子を暗号化することによって)マニフェスト生成サービス114によって生成される一連の英数字(またはクライアントコンピューティングデバイス102が使用可能な任意の他の文字)を反映できる。マニフェスト502は、クライアントコンピューティングデバイス102によって見ることができるため、隠し識別子は、クライアントコンピューティングデバイス102が種々のタイプのコンテンツ(例えば、メインコンテンツ対広告等)を区別するのを妨げるまたは阻止するために形成される。したがって、種々の隠し識別子は、同じアルゴリズムに従って(例えば、同じ暗号化方式に従って等)形成されてよく、類似する属性または同一の属性(例えば、長さ、フォーマット、ビットレート等)を共用するコンテンツ部分を指してよい。
図5に示すように、各隠し識別子504は、コンテンツ部分のための実際の識別子508に対応する。これらの実際の識別子は、コンテンツ部分に対応する(ストリーミングコンテンツ配信システム110、または例えば広告システム130等の別のネットワークリソース上の)ファイルの名前または場所を反映してよい。隠し識別子及び/または実際の識別子は、図5では単にファイル名として示されているが、いくつかの例では、コンテンツ部分のURIのいずれかまたはすべてを含む。各コンテンツ部分の実際の識別子は、そのコンテンツ部分に関する情報(例えば、コンテンツ部分の中のコンテンツのタイプ)を明らかにし得るため、実際の識別子は概してクライアントコンピューティングデバイス102から伏せられる。
いくつかの例では、隠しマニフェスト502が、隠し識別子504の基礎となるコンテンツのタイプについての情報を提供しないことを確実にするために、コンテンツ部分のうちの1つ以上は、ストリーミングコンテンツ配信サービス110によってカスタム生成されてよい。例えば、実際の識別子508Bは、保護コンテンツ(例えば、広告または免責事項)及びメインコンテンツ(例えば、テレビ番組)の組み合わせとして生成されてよい「custom−content1.ts」を指す。例示的に、カスタムコンテンツは、コンテンツタイプ間の遷移時に、または既存のコンテンツ部分が隠しマニフェスト502の中の他のコンテンツ部分に適合しないであろう任意の他の例で生成されてよい。例えば、広告の最終部分が5秒しか消費しないであろうが、マニフェスト内の他のコンテンツ部分が概して10秒を消費するであろう場合、カスタムコンテンツ部分は、広告の最後の5秒をメインコンテンツ(または他の追加コンテンツ)の最初の5秒と結合するストリーミングコンテンツ配信システム110によって生成できる。
図3A及び図3Bの対話に戻ると、(例えば、図5の例のマニフェスト502に対応する)隠しマニフェストを生成後、マニフェスト生成サービス114は、マニフェストの中で(例えば、隠し識別子を介して)識別された任意のコンテンツ部分が、クライアントコンピューティングデバイス102への送信に利用できることを確実にするために、コンテンツ生成サービス116と対話できる。具体的には、(6)で、マニフェスト生成サービス114は、コンテンツ生成サービス116が隠しマニフェストで識別されたが、まだコンテンツデータストア119(または他のネットワークデータストア)の中に記憶されていない任意のカスタムコンテンツ部分を作成することを要求できる。要求は、例えば、カスタムコンテンツ部分のパラメータ(例えば、ビットレート、暗号化種類、解像度等)だけではなく、カスタムコンテンツ部分(例えば、5秒の特定の広告、5秒の特定のメインコンテンツ)を作成する上で使用するための所望されるコンテンツを含んでよい。(7)で、コンテンツ生成サービス116は、カスタムコンテンツ部分を生成するために要求の情報を利用してよい。例示的には、コンテンツ生成サービス116は、所望される各コンテンツ(例えば、広告コンテンツ等)を取り出し、その所望されるコンテンツを再符号化して、要求されたカスタムコンテンツ部分を形成してよい。その後、(8)で、コンテンツ生成サービス116は、図4に関して以下にさらに詳細に説明するように、POP112による後の取り出し、及びクライアントコンピューティングデバイス102への送信のためにコンテンツデータストア119の中にカスタムコンテンツ部分を記憶する。
さらに、(9)で、マニフェスト生成サービス114は、POP112に隠しマニフェストを返す。いくつかの例では、マニフェスト生成サービス114は、さらに、例えば、マニフェストの中で隠し識別子を生成するために使用される暗号化またはその暗号化のための鍵等、隠しマニフェストに関する情報を返してよい。例えば標準的な暗号化及び鍵が使用される他の例では、その情報は、対話(9)から省略されてよい。どちらかの例では、(10)で、POP112は、クライアントコンピューティングデバイス102に隠しマニフェストを返し、クライアントコンピューティングデバイス102が、マニフェストの中で識別された異なるタイプのコンテンツを、その中に提供される識別子に基づいて識別するのを阻止するまたは妨げる一方、マニフェストの中で識別されたコンテンツをストリーム配信できるようにする。
図3A及び図3Bの対話は順々に上述されているが、対話のうちのいくつかまたはすべてが繰り返し発生してよいこと、及びこれらの対話が少なくとも部分的に並行して発生してよいことが意図される。例えば、マニフェスト生成サービス114は、POP112に隠しマニフェストを並行してまたは同時に送信し、隠しマニフェストの中のカスタムコンテンツ部分が作成されることを要求してよい。追加の例として、ストリーミングコンテンツ配信システム110は、ストリーミングコンテンツの所与の項目のための複数のマニフェストを配信するように構成される場合もあれば、経時的に複数の送信として単一のマニフェストを配信するように構成される場合もある。したがって、新しいマニフェストまたはマニフェストの新しいセクションがクライアントコンピューティングデバイス102に送信される各点の前に、マニフェスト生成サービス114は、新しいマニフェストまたはセクションの中で識別されるコンテンツ部分の新しいセットを決定してよい。いくつかの例では、部分の新しいセットは、(例えば、モニタリングサービス118から入手される)ストリーミングコンテンツに関するモニタリングされた情報に基づいて変わってよい。例えば、モニタリング情報が、クライアントコンピューティングデバイス102が保護部分を出力しなかった(または、もしかすると、保護部分がクライアントコンピューティングデバイス102によって一度も要求されなかった)ことを示す場合、マニフェスト生成サービス114は、新しいマニフェストまたはマニフェストセクション内の保護部分(または別の追加コンテンツ部分)を識別してよい。したがって、ユーザーが保護部分(例えば、広告)を見ないように努力して該部分を「読み飛ばす」場合、新しい広告または保護部分はマニフェストで識別される場合がある。いくつかの例では、クライアントコンピューティングデバイス102が保護コンテンツを出力するまで、新しいマニフェストは、(例えば、メインコンテンツ等の他のコンテンツではなく)保護部分だけを識別してよく、その時点で追加マニフェスト(またはマニフェストセクション)が無保護コンテンツに含まれて提供できる。
図3A及び図3Bの説明は、概してコンテンツ部分の実際の識別子を隠し識別子に変換するための暗号化の使用を参照しているが、マニフェスト生成サービス114は、いくつかの例では、隠し識別子を決定するために他のプロセスを利用してよい。例えば、マニフェスト生成サービス114は、実際の識別子を隠し識別子に変換するためにさまざまな難読化技法、コーディング、または暗号のいずれかを利用してよい。いくつかの例では、マニフェスト生成サービス114は、コンテンツ部分に隠し識別子として無作為な識別子を割り当ててよい。マニフェスト生成サービス114は、次いで実際の識別子の割り当てられた隠し識別子へのマッピングを、必要に応じてストリーミングコンテンツ配信システム110の構成要素に送信してよい。いくつかの例では、割り当てられた隠し識別子は、大局的に一意であってよく、これにより構成要素(例えば、POP112)は、隠し識別子だけに基づいて実際の識別子を決定してよい。他の例では、隠し識別子は、クライアント特有またはセッション特有であってよく、これにより同じ隠し識別子(例えば、「ID1.ts」)を複数のクライアントに対して利用することができ、要求されたコンテンツ項目のための実際の識別子は、要求のソースに基づいて(例えば、セッション識別子、クライアントネットワークアドレス等に基づいて)変化する。隠し識別子を実際の識別子に変換できるようにするために、それらのアルゴリズム及び鍵だけをストリーミングコンテンツ配信システム110の構成要素間で伝搬する必要があるので、概して、すべての隠し識別子を生成するための1つ以上の特有の暗号化アルゴリズム及び鍵の使用が好ましい場合がある。
さらに、図3A及び図3Bの対話は、コンテンツ部分の単一のシリーズに関して説明されているが、本開示の実施形態は、それぞれがストリーミングコンテンツの異なるバージョンを形成するコンテンツ部分の代替のシリーズの使用を可能にしてよい。例えば、コンテンツ部分の第1のシリーズは、第1の品質レベルでストリーミングコンテンツを、第2の品質レベルで第2のシリーズを提示してよい等である。種々のシリーズは、クライアントコンピューティングデバイス102に提供される単一のマニフェストまたは複数のマニフェストで識別されてよい。いくつかの例では、クライアントコンピューティングデバイス102は、デバイス102の状態を説明するために(例えば、デバイス102とストリーミングコンテンツ配信システム110との間のゆっくりとした通信を説明するために)異なるシリーズのコンテンツ部分の出力の間で切り替わってよい。
図4は、クライアントコンピューティングデバイス102でそのコンテンツストリームを出力するために、コンテンツストリームを形成するコンテンツ項目のための隠し識別子を含んだ隠しマニフェストファイルを利用するための一連の例示的な対話を示す。対話は、クライアントコンピューティングデバイス102が、ストリーミングコンテンツ配信システム110のPOP112からコンテンツ部分を、該部分のための隠し識別子を使用し、要求する(1)で開始する。要求は、ストリーミングコンテンツ配信システム110から以前に入手されたマニフェストを処理することに基づいて、クライアントコンピューティングデバイス102によって(例えば、ウェブブラウザまたは他のアプリケーションによって)自動的に生成されてよい。POP112は、要求を受け取ると、隠し識別子に基づいて要求された部分の実際の識別子を決定する。例示的に、隠し識別子が、暗号鍵で実際の識別子を暗号化することによって生成される場合、POP112は、その鍵を利用して隠し識別子を復号し、このようにして要求された部分の実際の識別子を決定してよい。隠し識別子が、他の変換(例えば、無作為な割り当て)を使用し、生成される場合、POP112は、例えば隠し識別子の実際の識別子へのマッピング等、マニフェスト生成システム114によって提供される情報を利用して、どの実際の識別子が要求された部分に対応するのかを決定してよい。
(3)で、POP112は、必要とされる場合、コンテンツデータストア119から要求された部分を取り出す。例示的に、コンテンツ部分の取り出しは、コンテンツ部分がPOP112のキャッシュに前に記憶されていない場合にだけ必要とされる場合がある。コンテンツ部分がPOP112に記憶される例では、対話(3)は必要とされない場合がある。コンテンツ部分の取り出しは、コンテンツデータストア119に関して示されているが、POP112は、さらにまたは代わりに、例えば広告システム130(図4では不図示)等の他のデータソースからコンテンツを取り出してよい。有利なことに、取り出しは、(隠し識別子よりむしろ)コンテンツ部分の実際の識別子に基づいて起こる場合があるため、各クライアントコンピューティングデバイス102に提供される隠し識別子が同じであるかどうかに関わりなく、同じデータは、多くの異なるクライアントコンピューティングデバイス102からのコンテンツ部分に対する要求にサービスを提供するために利用できる。したがって、ストリーミングコンテンツ配信システム110は、コンテンツ部分自体の再作成を必要とせずに、隠し識別子が作成されるプロセスを任意に変更することを可能にされる。さらに、各POP112は、隠し識別子に基づいてコンテンツ部分のための実際の識別子を決定することを可能にされるため、クライアントコンピューティングデバイス102は、コンテンツ部分を得るために任意のPOP112と、または複数のPOP112と対話してよい。
要求されたコンテンツ部分を得た後、(4)で、POP112は、(5)でコンテンツ部分を出力してよい、クライアントコンピューティングデバイス102にコンテンツ部分を返す。クライアントは、さらに(6)でモニタリングサービス118へのコンテンツ部分の出力に関するモニタリング情報を報告してよい。POP112またはストリーミングコンテンツ配信システム110の他の構成要素は、図4に示されていないが、さらにまたは代わりにモニタリングサービス118にモニタリング情報を報告してよい。図4の対話は、クライアントコンピューティングデバイスがマニフェストの中で隠し識別子を用いて識別されたコンテンツ部分を出力し、このようにしてコンテンツストリームの部分を修正する、削除する、もしくはブロックすることから阻止されるまたは妨げられる一方で、コンテンツストリームを出力できるようにするために、並行して繰り返されてよい、または実施されてよい。
図6を参照すると、保護コンテンツ部分を含んだストリーミングコンテンツを提供するための1つの例示的なルーチン600が示されている。ルーチン600は、例えば図1のコンテンツ配信システム110によって実施されてよい。ルーチン600は、ストリーミングコンテンツ配信システム110が、クライアントコンピューティングデバイス102からストリーミングコンテンツに対する要求を入手するブロック602で開始する。要求は、ストリーミングコンテンツ、ウェブブラウザアプリケーション等を見るためのアプリケーションを起動するまたはアプリケーションと対話すること等によってクライアントがクライアントコンピューティングデバイス102を使用することにより生成されてよい。要求は、例えばテレビ番組、映画、ビデオ、音声プログラム等のクライアントが所望する少なくとも1つのメインコンテンツを示す場合がある。いくつかの例では、要求は、さらに、例えば、デバイス102の構成、デバイス102の位置、デバイス102またはストリーミングコンテンツ配信システム110上のクライアントのアカウント等の、クライアントコンピューティングデバイス102またはクライアントコンピューティングデバイス102を利用するクライアントに関する情報を示す場合がある。
ブロック604で、ストリーミングコンテンツ配信システム110は、コンテンツストリームに含めるコンテンツを選択する。例示的に、選択したコンテンツは、追加コンテンツ(例えば、法律上の免責事項、広告等)だけではなく、メインコンテンツ(例えば、クライアントコンピューティングデバイス102が要求するメインコンテンツ)も含む場合がある。いくつかの例では、ストリーミングコンテンツ配信システム110は、第三者または例えば広告システム130等の外部システムとの対話によって追加コンテンツを決定してよい。さらに、ストリーミングコンテンツ配信システム110は、クライアントコンピューティングデバイス102に関する情報に基づいて包含のためのコンテンツを決定してよい。以下に説明するように、いくつかの例では、ブロック604は、繰り返し実施されてよく、ストリームでの包含のために選択されるコンテンツは、クライアントコンピューティングデバイス102が(例えば、保護コンテンツが読み飛ばされている場合に、それがコンテンツストリームに再度含まれるように)保護コンテンツをすでに出力しているかどうかに基づいて変わる場合がある。
ブロック606で、ストリーミングコンテンツ配信システム110は、コンテンツストリームを形成するコンテンツ部分のセットの隠し識別子を含んだ、コンテンツストリームのために隠しマニフェストを生成する。例示的には、コンテンツ部分は、(保護コンテンツであってよい)任意の追加コンテンツの部分だけではなく、メインコンテンツの部分に相当する場合がある。追加コンテンツの一部分が、マニフェストの他の部分に似ていない長さとなるであろういくつかの例では、コンテンツ部分は、メインコンテンツと追加コンテンツとの間の組み合わせに相当してよい。部分がストリーミングコンテンツ配信システム110でまだ利用できない場合、ストリーミングコンテンツ配信システム110を用いて(例えば、コンテンツ生成サービス116を使用することにより)該部分を生成させてよい。ブロック606の実施態様は、さらに、コンテンツ部分ごとの隠し識別子のセットの生成を含んでよい。例示的には、ストリーミングコンテンツ配信システム110は、隠し識別子として機能する暗号化された識別子を生成するために各部分の実際の識別子を暗号化アルゴリズムに通す場合がある。各隠し識別子は、次いで隠しマニフェストの一部として含まれてよい。
ブロック607で、ストリーミング配信システム110は、隠し識別子によって識別された複数のコンテンツ部分を含んだ隠しマニフェストをクライアントコンピューティングデバイス102に送信する。クライアントコンピューティングデバイス102は、次いでその中で隠し識別子を使用し、(例えば、ストリーミングコンテンツ配信システム110で実行中のウェブページまたはアプリケーションの一部として提供される実行可能なコードを利用し)コンテンツ部分を要求するために隠しマニフェストを利用してよい。したがって、ブロック608で、ストリーミングコンテンツ配信システム110は、隠し識別子を用いて隠しマニフェストの中で識別されたコンテンツ部分(または一部分)に対する要求(または1つの要求)を受け取る。
ブロック610で、ストリーミングコンテンツ配信システム110は、要求で受け取られた隠し識別子を実際の識別子に変換し、クライアントコンピューティングデバイス102に識別されたコンテンツ部分を返す。例示的には、隠し識別子が、コンテンツ部分を実際の識別子を暗号化することによってブロック606で生成された場合、ブロック610は、コンテンツ部分の隠し識別子を復号して、実際の識別子を生じさせることを含んでよい。実際の識別子は、次いでコンテンツ部分を入手し、出力のためにクライアントコンピューティングデバイス102にコンテンツ部分を返すために利用されてよい。
ブロック612で、ルーチン612の実施態様は、追加マニフェストコンテンツがクライアントに送信されるかどうかに基づいて変わる場合がある。例示的には、すべてのコンテンツ部分を識別するマニフェストがクライアントコンピューティングデバイス102に送信された場合、ルーチン600はブロック616で終了してよい。クライアントコンピューティングデバイス102に提供されるコンテンツストリームが、クライアントコンピューティングデバイス102に対するマニフェストの中でまだ識別されていない追加コンテンツ部分を含む場合、ルーチン600は、ストリーミングコンテンツ配信システム110が、再びストリームに含められるコンテンツ部分を決定してよいブロック604に続行する。上述したように、これらの部分は、クライアントコンピューティングデバイス102に関するモニタリング情報に基づいてブロック604の実施態様間で変わる場合がある。例えば、モニタリング情報が、(例えば、クライアントがそのコンテンツを「読み飛ばした」ために)クライアントコンピューティングデバイス102が保護部分を出力していないことを示す場合、ストリーミングコンテンツ配信システム110は、マニフェストの後の位置で保護コンテンツを挿入し直す場合もあれば、モニタリング情報が保護コンテンツが見られたことを示すまでマニフェストから他のコンテンツ(例えば、メインコンテンツ)を除外する場合もある。ルーチン600は、次いで、すべてのコンテンツ部分がクライアントコンピューティングデバイス102に識別されるまで続行し、その時点でルーチン600はブロック616で終了する。
ルーチン600は順々に説明されるが、ルーチン600の種々のブロックの実施態様は、少なくとも部分的に並行して発生してよく、ストリーミングコンテンツ配信システム110の中の異なる構成要素によって達成されてよい。例えば、マニフェスト生成サービス114は、ブロック602から607を実施してよい。一方、POP112はブロック608及び610を実施してよい。有利なことに、各構成要素が、コンテンツ部分の実際の識別子を隠し識別子に変換するために利用されるプロセスを認識している場合、分散したやり方でルーチン600を実施するためには構成要素間で情報を交換する必要はほとんどない、またはまったくない。
本開示の実施形態の例は、以下の条項を鑑みて説明できる。
1.ストリーミングコンテンツを、前記ストリーミングコンテンツの部分がブロックされるまたは削除されるのを妨げるように提供するためのシステムであって、
メインコンテンツに相当するコンテンツ部分の第1のセットであって、第1の命名方式に係るファイル名で識別されたコンテンツ部分の前記第1のセットと、
追加コンテンツに相当するコンテンツ部分の第2のセットであって、第2の命名方式に係るファイル名で識別されたコンテンツ部分の前記第2のセットと、
を含むデータストアと、
コンピュータ実行可能命令で構成された1つ以上のコンピューティングデバイスであって、前記コンピュータ実行可能命令が、実行時に、前記コンピューティングデバイスに、
クライアントコンピューティングデバイスから、前記メインコンテンツを含んだストリーミングコンテンツを提供するようにという要求を入手することと、
前記追加コンテンツが、前記ストリーミングコンテンツに含められると判断することと、
前記隠しマニフェストファイルが、前記ストリーミングコンテンツを形成する複数のコンテンツ部分であって、暗号化された命名方式で識別される前記複数のコンテンツ部分を含む、隠しマニフェストを前記ストリーミングコンテンツのために生成することであって、前記隠しマニフェストファイルを生成することが、
コンテンツの前記第1のセットの前記ファイル名を暗号化して、暗号化されたファイル名の第1のセットを生じさせることと、
コンテンツの前記第2のセットの前記ファイル名を暗号化して、暗号化されたファイル名の第2のセットを生じさせることと、
前記隠しマニフェストファイルに暗号化ファイル名の前記第1のセット及び前記第2のセットを含めることと
を含む、前記生成することと、
前記クライアントコンピューティングデバイスに前記隠しマニフェストを送信させることであって、前記クライアントコンピューティングデバイスが、前記隠しマニフェストの中で識別されたコンテンツ部分を取り出し、出力することによって前記ストリーミングコンテンツを出力するように構成される、前記送信することと、
を行わせる、前記1つ以上のコンピューティングデバイスと
を備える、前記システム。
2.前記1つ以上のコンピューティングデバイスが、さらに
前記クライアントコンピューティングデバイスから、暗号化されたファイル名に従って識別されたコンテンツ部分に対する要求を受け取ることと、
前記暗号化ファイル名を復号して、復号されたファイル名を生じさせることと、
前記復号されたファイル名が、コンテンツ部分の前記第1のセットからコンテンツ部分を識別すると判断することと、
前記要求に応えて前記クライアントコンピューティングデバイスに前記コンテンツ部分を送信することと、
のために前記コンピュータ実行可能命令で構成される、条項1に記載のシステム。
3.前記メインコンテンツが、音声コンテンツ、ビデオコンテンツ、またはテキストコンテンツのうちの少なくとも1つである、条項1に記載のシステム。
4.前記追加コンテンツが、免責事項、警告、クレジット、献辞、または広告のうちの少なくとも1つである、条項1に記載のシステム。
5.コンピュータによって実装される方法であって、
クライアントコンピューティングデバイスからストリーミングコンテンツを提供するようにという要求を受け取ることと、
前記ストリーミングコンテンツに含められる複数のコンテンツ部分を決定することであって、前記複数のコンテンツ部分が、第1の識別方式を利用するコンテンツ部分の第1のセットと、第2の識別方式を利用するコンテンツ部分の第2のセットの両方を含む、前記決定することと、
前記ストリームコンテンツのための隠しマニフェストを生成することであって、前記隠しマニフェストを生成することが、共通の識別方式を利用し、前記複数のコンテンツ部分のための識別子を生成することと、前記隠しマニフェストの中に前記識別子を含めることとを含む、前記生成することと、
前記クライアントコンピューティングデバイスでの、前記隠しマニフェストの中で識別された前記複数のコンテンツ部分の取り出し及び出力によって、前記ストリーミングコンテンツの出力を容易にするために前記クライアントコンピューティングデバイスに前記隠しマニフェストを送信することと
を含む、前記コンピュータによって実装される方法。
6.共通の識別方式を利用し、前記複数のコンテンツ部分のための識別子を生成することが、コンテンツ部分の前記第1のセット及び前記第2のセットの識別子を暗号化して、前記複数のコンテンツ部分のための暗号化された識別子のセットを生じさせることを含む、条項3に記載のコンピュータによって実装される方法。
7.共通の識別方式を利用し、前記複数のコンテンツ部分のための識別子を生成することが、コンテンツ部分の前記第1のセット及び前記第2のセットと、前記隠しマニフェストの中に含まれる前記複数のコンテンツ部分との間のマッピングを生成することを含む、条項3に記載のコンピュータによって実装される方法。
8.さらに、前記隠しマニフェストの中に含まれる前記複数のコンテンツ部分のための前記識別子を無作為に生成することを含む、条項5に記載のコンピュータによって実装される方法。
9.さらに、
前記クライアントコンピューティングデバイスから、前記共通の識別方式の識別子に従って識別されたコンテンツ部分に対する要求を受け取ることと、
前記共通の識別方式の前記識別子を、前記第1の識別方式の識別子に変換することと、
前記第1の識別方式の前記識別子に対応するコンテンツ部分の前記第1のセットのコンテンツ部分を決定することと、
前記要求に応えて前記クライアントコンピューティングデバイスに前記コンテンツ部分を送信することと
を含む、条項3に記載のコンピュータによって実装される方法。
10.さらに
前記第1の識別方式の前記識別子に対応する前記コンテンツ部分が、ローカルキャッシュの中に存在すると判断し、前記ローカルキャッシュから前記コンテンツ部分を取り出すこと、または
前記第1の識別方式の前記識別子に対応する前記コンテンツ部分がローカルキャッシュの中に存在しないと判断し、リモートデータストアから前記コンテンツ部分を取り出すことと
のうちの少なくとも1つを含む、条項9に記載のコンピュータによって実装される方法。
11.さらに、
前記クライアントコンピューティングデバイスでの前記ストリーミングコンテンツの出力に関するモニタリング情報を受け取ることと、
少なくとも部分的に前記モニタリング情報に基づいて前記ストリーミングコンテンツに含められる第2の複数のコンテンツ部分を決定することと、
少なくとも部分的に、前記共通の識別方式を利用し、前記第2の複数のコンテンツ部分のための識別子を生成することによって、前記隠しマニフェストの追加セクションを生成することと、
前記クライアントコンピューティングデバイスに前記隠しマニフェストの前記追加セクションを送信することと
を含む、条項3に記載のコンピュータによって実装される方法。
12.前記第2の複数のコンテンツ部分が、メインコンテンツに相当し、
少なくとも部分的に前記モニタリング情報に基づいて、前記ストリーミングコンテンツに含められる第2の複数のコンテンツ部分を決定することが、前記モニタリング情報が、前記クライアントコンピューティングデバイスが、コンテンツ部分の前記第2のセットによって形成される少なくとも1つの広告を出力したことを示すと判断することを含む、条項8に記載のコンピュータによって実装される方法。
13.前記第2の複数のコンテンツ部分及びコンテンツ部分の前記第2のセットが同じであり、
少なくとも部分的に前記モニタリング情報に基づいて前記ストリーミングコンテンツに含められる第2の複数のコンテンツ部分を決定することが、前記モニタリング情報が、前記クライアントコンピューティングデバイスが、コンテンツ部分の前記第2のセットによって形成される少なくとも1つの広告を出力していないことを示すと判断することを含む、条項8に記載のコンピュータによって実装される方法。
14.システムであって、
複数のコンテンツ部分を含んだデータストアであって、前記複数のコンテンツ部分が、少なくとも2つの識別方式に係る識別子によって識別される、前記データストアと、
コンピュータ実行可能命令で構成された1つ以上のコンピューティングデバイスであって、前記コンピュータ実行可能命令が、実行時に、前記コンピューティングデバイスに、
クライアントコンピューティングデバイスから、ストリーミングコンテンツを提供するようにという要求を入手することと、
前記ストリーミングコンテンツのための隠しマニフェストを生成することであって、前記隠しマニフェストは、前記複数のコンテンツ部分のために共通の識別方式を利用する識別子のセットを含む、前記生成することと、
前記隠しマニフェストを前記クライアントコンピューティングデバイスに送信することと
を行わせる、前記1つ以上のコンピューティングデバイスと
を備える、前記システム。
15.前記コンピュータ実行可能命令が、前記コンピューティングデバイスに、少なくとも部分的に前記複数のコンテンツ部分の識別子を暗号化して、前記共通の識別方式を利用し、暗号化された識別子のセットを生じさせることによって、前記共通の識別方式を利用し、前記複数のコンテンツ部分のための識別子を生成させる、条項11に記載のシステム。
16.前記コンピュータ実行可能命令が、前記コンピューティングデバイスに、少なくとも部分的に前記複数のコンテンツ部分の識別子と、前記隠しマニフェストの中に含まれる識別子との間のマッピングを生成することによって、前記共通の識別方式を利用し、前記複数のコンテンツ部分のための識別子を生成させる、条項11に記載のシステム。
17.前記コンピュータ実行可能命令が、さらに、前記コンピューティングデバイスに、少なくとも2つのタイプのコンテンツを再符号化して、前記複数のコンテンツ部分の残りのコンテンツ部分と属性を共用することによって前記複数のコンテンツ部分のうちの少なくとも1つを生成させる、条項11に記載のシステム。
18.前記属性が、持続時間、ビットレート、解像度、またはフレームレート、コーデック、コーデックプロファイル、コーデックレベル、サンプルレート、またはチャネルカウントのうちの少なくとも1つである、条項14に記載のシステム。
19.前記コンピュータ実行可能命令が、さらに、前記コンピューティングデバイスに、1つ以上の追加コンテンツ部分が共通属性を共用するように前記複数のコンテンツ部分と関連付けられた前記1つ以上の追加コンテンツ部分を再符号化させる、条項14に記載のシステム。
20.前記1つ以上の追加コンテンツ部分が、前記複数のコンテンツ部分と関連付けられた音声ストリームまたは字幕のうちの少なくとも1つを含む、条項19に記載のシステム。
21.前記コンピュータ実行可能命令が、前記コンピューティングデバイスに、
前記クライアントコンピューティングデバイスから、前記共通の識別方式の識別子に従って識別されたコンテンツ部分に対する要求を受け取ることと、
前記共通の識別方式の前記識別子を、前記少なくとも2つの識別方式から第1の識別方式の識別子に変換することと、
第1の識別方式の前記識別子に対応する前記複数のコンテンツ部分のうちの1つのコンテンツ部分を決定することと、
前記要求に応えて前記クライアントコンピューティングデバイスに前記コンテンツ部分を送信することと、
を行わせる、条項11に記載のシステム。
22.前記コンピュータ実行可能命令が、前記コンピューティングデバイスに、
前記クライアントコンピューティングデバイスでの前記ストリーミングコンテンツの出力に関するモニタリング情報を受け取ることと、
少なくとも部分的に前記モニタリング情報に基づいて、前記ストリーミングコンテンツに含められる第2の複数のコンテンツ部分を決定することと、
少なくとも部分的に、前記共通の識別方式を利用し、前記第2の複数のコンテンツ部分のための識別子を生成することによって前記隠しマニフェストの追加セクションを生成することと、
前記クライアントコンピューティングデバイスに前記隠しマニフェストの前記追加セクションを送信することと、
を行わせる、条項11に記載のシステム。
23.前記第2の複数のコンテンツ部分がメインコンテンツに相当し、
少なくとも部分的に前記モニタリング情報に基づいて前記ストリーミングコンテンツに含められる第2の複数のコンテンツ部分を決定することが、前記モニタリング情報が、前記クライアントコンピューティングデバイスが、前記複数のコンテンツ部分の中の少なくとも1つの広告を出力したことを示すと判断することを含む、条項22に記載のシステム。
本明細書に説明する実施形態は概して、マニフェスト(またはマニフェストのセクション)が作成されるときにクライアントコンピューティングデバイス102に送信されるコンテンツ部分を決定するが、他の実施形態が本開示の範囲内で意図される。その結果、いくつかの例では、ストリーミングコンテンツ配信システム110は、個々のコンテンツ部分が要求されるときに隠し識別子の実際の識別子へのマッピングを修正してよい。例えば、クライアントコンピューティングデバイス102が第1のコンテンツ部分(例えば、メインコンテンツ)を要求するために隠し識別子を使用するが、モニタリング情報が、クライアントコンピューティングデバイス102が第2のコンテンツ部分(例えば、広告)をまだ見ていないことを示す場合、ストリーミングコンテンツ配信システム110は、たとえ隠し識別子が概して第1のコンテンツのための実際の識別子に変換されるであろうとしても、第2のコンテンツ部分を提供することによって該要求に応えてよい。いくつかの例では、ストリーミングコンテンツ配信システム110は、隠し識別子を実際の識別子にマッピングする任意の情報を維持しない場合があるが、隠し識別子で識別されたコンテンツ部分に対する要求が受け取られるので、代わりに臨時に係る決定を下してよい。例えば、ストリーミングコンテンツ配信システム110は、あらゆるクライアントコンピューティングデバイスに隠し識別子の同じセットを返すが、個々の要求に応えて、各クライアントコンピューティングデバイスにどのコンテンツ部分が返されるのかを修正してよい。このように隠し識別子をコンテンツ部分に臨時に一致させることは、高い柔軟性を提供するため及びマニフェストを生成する複雑さを制限するためにより小さいシステムでは有益である場合がある。
上述の方法及びプロセスのすべては、1つ以上のコンピュータまたはプロセッサで実施されてよく、1つ以上のコンピュータまたはプロセッサによって実行されるソフトウェアコードモジュールを介して完全に自動化されてよい。コードモジュールは、任意の種類の非一過性のコンピュータ可読媒体または他のコンピュータ記憶装置内に記憶されてよい。方法のいくつかまたはすべては、代わりに専用コンピュータハードウェアで実施されてもよい。
特に明記しない限り、とりわけ、「できる(can)」、「できるであろう(could」」、「可能性がある(might)」、または「してよい(may」」等の条件的言語は、そうでなければいくつかの実施形態がある特定の特徴、要素、及び/またはステップを含み、一方で他の実施形態が含まないことを示すために概して使用されるとして文脈内で理解される。したがって、そのような条件的言語は、概して、特徴、要素、及び/またはステップが、1つ以上の実施形態に任意の方法で要求されるか、または1つ以上の実施形態が、ユーザー入力もしくはプロンプトを用いて、もしくは用いずに、これらの特徴、要素、及び/またはステップが含まれるのか、それとも任意の特定の実施形態で行われるべきであるかを決定するための論理を必ず含むことを含意することは意図していない。
特に明記しない限り、句「X、YまたはZのうちの少なくとも1つ」などの選言的な言葉は、そうでなければ項目、用語等がX、YもしくはZまたはそのいずれかの組み合わせ(例えば、X、Y及び/またはZ)であってよいことを示すために一般的に用いられるとして文脈の中で理解される。ゆえに、係る選言的言語は、特定の実施形態がXの少なくとも1つ、Yの少なくとも1つまたはZの少なくとも1つがそれぞれ存在することを必要とすることを暗示することを一般的に意図しておらず、意味するべきではない。
特に明記しない限り、『a』または『an』等の冠詞は、概して、1つ以上の記載された項目を含むと解釈すべきである。したがって、「するように構成された装置」等の語句は、1つ以上の列挙された装置を含むことを目的とする。係る1つ以上の列挙された装置は、記載された列挙を実行するように集合的に構成することもできる。例えば、記述「A、B及びCを実行するように構成されたプロセッサ」は、列挙B及びCを実行するように構成された第2のプロセッサと連動して機能し、列挙Aを実行するように構成された第1のプロセッサを含む場合がある。
本明細書に説明する、及び/または添付の図面に図示するフロー図のいずれのルーチンの記述、要素、またはブロックも、ルーチンにおける特定の論理的機能または要素を実装するための1つまたは複数の実行可能な命令を含む、モジュール、セグメント、またはコードの部分を潜在的に表すものとして理解されるべきである。代替の実施態様は、本明細書に説明する実施形態の範囲内に含まれ、その中で要素または機能は、当業者によって理解されるであろうように、関係する機能性に応じて、実質的に同時または逆の順序を含む、示され、説明されるものとは異なる順序で削除または実行され得る。
多くの変形形態及び変更形態が上記の実施形態に対して行われ得、それらの要素が他の許容される実施例中にあるものとして理解されることが強調されるべきである。すべての係る変更形態及び変形形態が、本開示の範囲内で本明細書に含有され、以下の請求項によって保護されることが意図される。

Claims (15)

  1. ストリーミングコンテンツを、前記ストリーミングコンテンツの部分がブロックされるまたは削除されるのを妨げるように提供するためのシステムであって、
    メインコンテンツに相当するコンテンツ部分の第1のセットであって、第1の命名方式に係るファイル名で識別されたコンテンツ部分の前記第1のセットと、
    追加コンテンツに相当するコンテンツ部分の第2のセットであって、第2の命名方式に係るファイル名で識別されたコンテンツ部分の前記第2のセットと、
    を含むデータストアと、
    コンピュータ実行可能命令で構成された1つ以上のコンピューティングデバイスであって、前記コンピュータ実行可能命令が、実行時に、前記コンピューティングデバイスに、
    クライアントコンピューティングデバイスから、前記メインコンテンツを含んだストリーミングコンテンツを提供するようにという要求を入手することと、
    前記追加コンテンツが、前記ストリーミングコンテンツに含められると判断することと、
    前記隠しマニフェストファイルが、前記ストリーミングコンテンツを形成する複数のコンテンツ部分であって、暗号化された命名方式で識別される前記複数のコンテンツ部分を含む、隠しマニフェストを前記ストリーミングコンテンツのために生成することであって、前記隠しマニフェストファイルを生成することが、
    コンテンツの前記第1のセットの前記ファイル名を暗号化して、暗号化されたファイル名の第1のセットを生じさせることと、
    コンテンツの前記第2のセットの前記ファイル名を暗号化して、暗号化されたファイル名の第2のセットを生じさせることと、
    前記隠しマニフェストファイルに暗号化ファイル名の前記第1のセット及び前記第2のセットを含めることと
    を含む、前記生成することと、
    前記クライアントコンピューティングデバイスに前記隠しマニフェストを送信させることであって、前記クライアントコンピューティングデバイスが、前記隠しマニフェストの中で識別されたコンテンツ部分を取り出し、出力することによって前記ストリーミングコンテンツを出力するように構成される、前記送信することと、
    を行わせる、前記1つ以上のコンピューティングデバイスと
    を備える、前記システム。
  2. 前記1つ以上のコンピューティングデバイスが、さらに
    前記クライアントコンピューティングデバイスから、暗号化されたファイル名に従って識別されたコンテンツ部分に対する要求を受け取ることと、
    前記暗号化ファイル名を復号して、復号されたファイル名を生じさせることと、
    前記復号されたファイル名が、コンテンツ部分の前記第1のセットからコンテンツ部分を識別すると判断することと、
    前記要求に応えて前記クライアントコンピューティングデバイスに前記コンテンツ部分を送信することと、
    のために前記コンピュータ実行可能命令で構成される、請求項1に記載のシステム。
  3. コンピュータによって実装される方法であって、
    クライアントコンピューティングデバイスからストリーミングコンテンツを提供するようにという要求を受け取ることと、
    前記ストリーミングコンテンツに含められる複数のコンテンツ部分を決定することであって、前記複数のコンテンツ部分が、第1の識別方式を利用するコンテンツ部分の第1のセットと、第2の識別方式を利用するコンテンツ部分の第2のセットの両方を含む、前記決定することと、
    前記ストリームコンテンツのための隠しマニフェストを生成することであって、前記隠しマニフェストを生成することが、共通の識別方式を利用し、前記複数のコンテンツ部分のための識別子を生成することと、前記隠しマニフェストの中に前記識別子を含めることとを含む、前記生成することと、
    前記クライアントコンピューティングデバイスでの、前記隠しマニフェストの中で識別された前記複数のコンテンツ部分の取り出し及び出力によって、前記ストリーミングコンテンツの出力を容易にするために前記クライアントコンピューティングデバイスに前記隠しマニフェストを送信することと
    を含む、前記コンピュータによって実装される方法。
  4. 共通の識別方式を利用し、前記複数のコンテンツ部分のための識別子を生成することが、コンテンツ部分の前記第1のセット及び前記第2のセットの識別子を暗号化して、前記複数のコンテンツ部分のために暗号化された識別子のセットを生じさせることを含む、請求項3に記載のコンピュータによって実装される方法。
  5. 共通の識別方式を利用し、前記複数のコンテンツ部分のための識別子を生成することが、コンテンツ部分の前記第1のセット及び前記第2のセットの識別子と、前記隠しマニフェストの中に含まれる前記複数のコンテンツ部分のための識別子との間のマッピングを生成することを含む、請求項3に記載のコンピュータによって実装される方法。
  6. さらに、
    前記クライアントコンピューティングデバイスから、前記共通の識別方式の識別子に従って識別されたコンテンツ部分に対する要求を受け取ることと、
    前記共通の識別方式の前記識別子を、前記第1の識別方式の識別子に変換することと、
    前記第1の識別方式の前記識別子に対応するコンテンツ部分の前記第1のセットのコンテンツ部分を決定することと、
    前記要求に応えて前記クライアントコンピューティングデバイスに前記コンテンツ部分を送信することと
    を含む、請求項3に記載のコンピュータによって実装される方法。
  7. さらに、
    前記第1の識別方式の前記識別子に対応する前記コンテンツ部分が、ローカルキャッシュの中に存在すると判断し、前記ローカルキャッシュから前記コンテンツ部分を取り出すこと、または
    前記第1の識別方式の前記識別子に対応する前記コンテンツ部分がローカルキャッシュの中に存在しないと判断し、リモートデータストアから前記コンテンツ部分を取り出
    すことと
    のうちの少なくとも1つを含む、請求項6に記載のコンピュータによって実装される方法。
  8. さらに、
    前記クライアントコンピューティングデバイスでの前記ストリーミングコンテンツの出力に関するモニタリング情報を受け取ることと、
    少なくとも部分的に前記モニタリング情報に基づいて前記ストリーミングコンテンツに含められる第2の複数のコンテンツ部分を決定することと、
    少なくとも部分的に、前記共通の識別方式を利用し、前記第2の複数のコンテンツ部分のための識別子を生成することによって、前記隠しマニフェストの追加セクションを生成することと、
    前記クライアントコンピューティングデバイスに前記隠しマニフェストの前記追加セ
    クションを送信することと
    を含む、請求項3に記載のコンピュータによって実装される方法。
  9. 前記第2の複数のコンテンツ部分がメインコンテンツに相当し、
    少なくとも部分的に前記モニタリング情報に基づいて、前記ストリーミングコンテンツに含められる第2の複数のコンテンツ部分を決定することが、前記モニタリング情報が、前記クライアントコンピューティングデバイスが、コンテンツ部分の前記第2のセットによって形成された少なくとも1つの広告を出力したことを示すと判断することを含む、請求項8に記載のコンピュータによって実装される方法。
  10. 前記第2の複数のコンテンツ部分及びコンテンツ部分の前記第2のセットが同じであり、
    少なくとも部分的に前記モニタリング情報に基づいて前記ストリーミングコンテンツに含められる第2の複数のコンテンツ部分を決定することが、前記モニタリング情報が、前記クライアントコンピューティングデバイスが、コンテンツ部分の前記第2のセットによって形成された少なくとも1つの広告を出力していないことを示すと判断することを含む、請求項8に記載のコンピュータによって実装される方法。
  11. システムであって、
    複数のコンテンツ部分を含んだデータストアであって、前記複数のコンテンツ部分が、少なくとも2つの識別方式に係る識別子によって識別される、前記データストアと、
    コンピュータ実行可能命令で構成された1つ以上のコンピューティングデバイスであって、前記コンピュータ実行可能命令が、実行時に、前記コンピューティングデバイスに、
    クライアントコンピューティングデバイスから、ストリーミングコンテンツを提供するようにという要求を入手することと、
    前記ストリーミングコンテンツのための隠しマニフェストを生成することであって、前記隠しマニフェストは、前記複数のコンテンツ部分のために共通の識別方式を利用する識別子のセットを含む、前記生成することと、
    前記隠しマニフェストを前記クライアントコンピューティングデバイスに送信することと
    を行わせる、前記1つ以上のコンピューティングデバイスと
    を備える、前記システム。
  12. 前記コンピュータ実行可能命令が、前記コンピューティングデバイスに、少なくとも
    部分的に前記複数のコンテンツ部分の識別子を暗号化して、前記共通の識別方式を利用する暗号化された識別子のセットを生じさせることによって、前記共通の識別方式を利用し、前記複数のコンテンツ部分を生成させる、請求項11に記載のシステム。
  13. 前記コンピュータ実行可能命令が、前記コンピューティングデバイスに、少なくとも部分的に前記複数のコンテンツ部分の識別子と前記隠しマニフェストの中に含まれる識別子との間のマッピングを生成することによって、前記共通の識別方式を利用し、前記複数のコンテンツ部分のための識別子を生成させる、請求項11に記載のシステム。
  14. 前記コンピュータ実行可能命令が、さらに、前記コンピューティングデバイスに、少なくとも2つのタイプのコンテンツを再符号化して前記複数のコンテンツ部分の残りのコンテンツ部分と属性を共用することによって、前記複数のコンテンツ部分のうちの少なくとも1つを生成させる、請求項11に記載のシステム。
  15. 前記コンピュータ実行可能命令が、さらに、前記コンピューティングデバイスに、1つ以上の追加コンテンツ部分が共通の属性を共用するように前記複数のコンテンツ部分と関連付けられた前記1つ以上の追加コンテンツを再符号化させる、請求項14に記載のシステム。
JP2019510587A 2016-05-23 2017-05-18 コンテンツストリーム部分を修正または削除から保護すること Active JP6666520B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US15/162,423 2016-05-23
US15/162,423 US10701040B2 (en) 2016-05-23 2016-05-23 Protecting content-stream portions from modification or removal
PCT/US2017/033380 WO2017205185A1 (en) 2016-05-23 2017-05-18 Protecting content-stream portions from modification or removal

Publications (2)

Publication Number Publication Date
JP2019521625A true JP2019521625A (ja) 2019-07-25
JP6666520B2 JP6666520B2 (ja) 2020-03-13

Family

ID=60331044

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2019510587A Active JP6666520B2 (ja) 2016-05-23 2017-05-18 コンテンツストリーム部分を修正または削除から保護すること

Country Status (5)

Country Link
US (2) US10701040B2 (ja)
JP (1) JP6666520B2 (ja)
CN (1) CN109417544B (ja)
DE (1) DE112017002625T5 (ja)
WO (1) WO2017205185A1 (ja)

Families Citing this family (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10743084B2 (en) * 2014-12-12 2020-08-11 Piksel, Inc. Forwarding video content
US11265299B2 (en) * 2016-05-23 2022-03-01 Telefonaktiebolaget Lm Ericsson (Publ) Obscured retrieval sequence for information centric networking (ICN) encoded video streams
US10701040B2 (en) 2016-05-23 2020-06-30 Amazon Technologies, Inc. Protecting content-stream portions from modification or removal
EP3449380A4 (en) * 2016-06-01 2020-01-15 Archive360, Inc. METHODS AND SYSTEMS FOR ARCHIVING AND RETRIEVING DATA
US10838924B2 (en) * 2017-10-02 2020-11-17 Comcast Cable Communications Management, Llc Multi-component content asset transfer
CN110290161A (zh) * 2018-03-19 2019-09-27 中国移动通信有限公司研究院 一种拓扑隐藏方法、节点、功能实体和计算机存储介质
US10595055B2 (en) * 2018-04-23 2020-03-17 Amazon Technologies, Inc. Server-side insertion of media fragments
US10419786B1 (en) 2018-07-20 2019-09-17 Fubotv Inc. Systems and methods for securely generating live previews
US10951932B1 (en) 2018-09-04 2021-03-16 Amazon Technologies, Inc. Characterizing attributes of user devices requesting encoded content streaming
US11064237B1 (en) 2018-09-04 2021-07-13 Amazon Technologies, Inc. Automatically generating content for dynamically determined insertion points
US11234059B1 (en) 2018-09-04 2022-01-25 Amazon Technologies, Inc. Automatically processing content streams for insertion points
US10904593B1 (en) * 2018-09-04 2021-01-26 Amazon Technologies, Inc. Managing content encoding based on detection of user device configurations
US11238026B2 (en) 2018-11-26 2022-02-01 Home Box Office, Inc. Identifier technology for entertainment data
US11284130B2 (en) 2019-06-14 2022-03-22 GumGum, Inc. Dynamic insertion of content within live streaming video
WO2020252204A1 (en) * 2019-06-14 2020-12-17 GumGum, Inc. Dynamic overlay video advertisement insertion
US11297358B2 (en) * 2020-01-02 2022-04-05 Synamedia Limited Video distribution systems and methods
MX2023002475A (es) * 2020-08-27 2023-03-23 Arris Entpr Llc Evitar la omisión de contenido publicitario.
US11954185B2 (en) * 2022-03-23 2024-04-09 Synamedia Limited Methods, devices, and systems for preventing rendering content from CDN to unauthorized users

Family Cites Families (29)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0366520U (ja) 1989-10-27 1991-06-27
AU2002259081A1 (en) * 2001-05-01 2002-11-11 Amicas, Inc. System and method for repository storage of private data on a network for direct client access
US6985936B2 (en) * 2001-09-27 2006-01-10 International Business Machines Corporation Addressing the name space mismatch between content servers and content caching systems
CN1322432C (zh) * 2002-10-25 2007-06-20 国际商业机器公司 用于媒体内容数据文件网络发布的安全系统及方法
US20060106802A1 (en) * 2004-11-18 2006-05-18 International Business Machines Corporation Stateless methods for resource hiding and access control support based on URI encryption
JP2010517138A (ja) * 2007-01-17 2010-05-20 インタートラスト テクノロジーズ コーポレイション ファイルフラグメントを共有する方法、システムおよび装置
CN101335871A (zh) * 2007-06-25 2008-12-31 陈珠琮 一种广告服务系统与方法
US8099599B2 (en) * 2008-08-29 2012-01-17 Microsoft Corporation Controlling access to data streams
US9003462B2 (en) * 2011-02-10 2015-04-07 Comcast Cable Communications, Llc Content archive model
CN103650410A (zh) * 2011-05-31 2014-03-19 三星Sds株式会社 基于id的加密及签名方法以及终端
CN102604297B (zh) * 2012-03-09 2013-11-13 湖北省高速公路实业开发有限公司 一种沥青路面用缓释型防冰材料及其制备方法
US20140040026A1 (en) * 2012-05-04 2014-02-06 Adobe Systems Incorporated Systems and methods for including advertisements in streaming content
US8887215B2 (en) * 2012-06-11 2014-11-11 Rgb Networks, Inc. Targeted high-value content in HTTP streaming video on demand
BR122015005210A2 (pt) 2012-06-28 2019-08-20 Ericsson Ab Método e sistema para inserção de anúncio em entrega de mídia ao vivo over the top
US9547774B2 (en) * 2012-07-18 2017-01-17 Nexenta Systems, Inc. System and method for distributed deduplication of encrypted chunks
US9215269B2 (en) * 2012-08-23 2015-12-15 Amazon Technologies, Inc. Predictive caching for content
US9143543B2 (en) * 2012-11-30 2015-09-22 Google Technology Holdings LLC Method and system for multi-streaming multimedia data
JP6155757B2 (ja) 2013-03-28 2017-07-05 富士通株式会社 コンテンツ配信装置、コンテンツ配信方法
US9672503B2 (en) * 2013-05-21 2017-06-06 Amazon Technologies, Inc. Bandwidth metering in large-scale networks
US9674251B2 (en) * 2013-06-17 2017-06-06 Qualcomm Incorporated Mediating content delivery via one or more services
DE102013217640A1 (de) * 2013-09-04 2015-03-05 Profil Verbindungstechnik Gmbh & Co. Kg Verfahren zur Anbringung eines Befestigungselements an ein Werkstück, Kombination einer Scheibe mit einer Matrize sowie Matrize
US9124947B2 (en) 2013-09-04 2015-09-01 Arris Enterprises, Inc. Averting ad skipping in adaptive bit rate systems
US9509742B2 (en) * 2014-10-29 2016-11-29 DLVR, Inc. Configuring manifest files referencing infrastructure service providers for adaptive streaming video
GB2536067B (en) * 2015-03-17 2017-02-22 Openwave Mobility Inc Identity management
US9276983B2 (en) * 2015-05-01 2016-03-01 Amazon Technologies, Inc. Content delivery network video content invalidation through adaptive bitrate manifest manipulation
WO2016183251A1 (en) * 2015-05-11 2016-11-17 Mediamelon, Inc. Systems and methods for performing quality based streaming
US9654815B2 (en) * 2015-09-18 2017-05-16 Arris Enterprises, Inc. Advertising detection in adaptive bitrate streaming
US9977809B2 (en) * 2015-09-24 2018-05-22 Cisco Technology, Inc. Information and data framework in a content centric network
US10701040B2 (en) 2016-05-23 2020-06-30 Amazon Technologies, Inc. Protecting content-stream portions from modification or removal

Also Published As

Publication number Publication date
US10701040B2 (en) 2020-06-30
JP6666520B2 (ja) 2020-03-13
US20170339114A1 (en) 2017-11-23
WO2017205185A1 (en) 2017-11-30
CN109417544A (zh) 2019-03-01
US20200329019A1 (en) 2020-10-15
CN109417544B (zh) 2021-09-03
US11902258B2 (en) 2024-02-13
DE112017002625T5 (de) 2019-04-11

Similar Documents

Publication Publication Date Title
JP6666520B2 (ja) コンテンツストリーム部分を修正または削除から保護すること
CN114666308B (zh) 对于流式内容部分的基于请求的编码系统和方法
US7921221B2 (en) Method and apparatus for obtaining digital objects in a communication network
KR101854919B1 (ko) Drm 서비스 제공 방법 및 장치
US10241720B2 (en) Method and system for providing content to a recipient device
EP4080893A2 (en) System for video playback using a server generated manifest
CN109791557B (zh) 用于管理资产存储的计算机实现的方法以及存储系统
CA2861811A1 (en) Dynamically-executed syndication services
KR20090018634A (ko) 미디어 콘텐츠 관리 방법 및 미디어 플레이어 시스템
WO2007131132A2 (en) System and method for collecting and distributing content
CA2952486A1 (en) Providing advanced playback and control functionality to video client
CA3049591C (en) Systems and methods for securely generating live previews
US10750248B1 (en) Method and apparatus for server-side content delivery network switching
CN106134156B (zh) 自适应流媒体的取证标记的信号发送和处理的方法及设备
US10389786B1 (en) Output tracking for protected content-stream portions
CN118055270A (zh) 视频处理方法、系统、装置、电子设备及存储介质
WO2002048842A2 (en) Media files with additional content

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20181107

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20191122

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20191202

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20191203

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20200203

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20200220

R150 Certificate of patent or registration of utility model

Ref document number: 6666520

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250