数字版权管理共享和回放服务规范选择的制作方法

文档序号:17728193发布日期:2019-05-22 02:39阅读:141来源:国知局
数字版权管理共享和回放服务规范选择的制作方法

本公开涉及用于经由通信网络将内容(诸如来自这样的内容的源的媒体)提供到请求这样的内容的客户端设备或系统的技术。更具体地,本公开涉及一种用于确保能够将包括音频和/或视频内容的内容提供给客户端设备上的应用或播放器以用于在所述应用被授权接收这样的内容时进行显示或进一步使用的技术。

现有系统中的背景和技术问题

用于从服务器向一个或多个客户端设备提供媒体内容的现有系统通常使用用于将这样的内容从服务器流传输到客户端设备上的回放部件(即,视频和/或音频播放器)的协议来进行,只要这样的播放器能够接收这样的内容以在设备上显示。在典型的客户端设备上,多个这样的应用或播放器可用于接收和使用/播放这样的内容。在现有系统中,不可能确保特定应用或播放器用于特定媒体内容。这可能是因为现有技术依赖于客户端设备上可用的播放器或应用的设置,而无法远程检查或核实内容是否被提供给被授权显示或共享的这样的内容的播放器或应用。



技术实现要素:

以下是本公开的简要概述,以便提供对本公开的一些方面的基本理解。该概述不是对本公开的广泛理解。其既不旨在标识本公开的关键或重要元素,也不旨在描述本公开的特定实施例的任何范围或权利要求的任何范围。其唯一目的是以简化形式展现本公开的一些概念,作为稍后展现的更详细描述的序言。

在一个实施方式中,公开了一种用于可选地限制提供给客户端设备的内容的方法。该方法可以包括接收客户端设备支持的多个内容呈现(render)选项,确定要呈现的内容项,该内容项与限制属性相关联,根据所述限制属性从所述客户端设备支持的多个内容呈现选项中选择内容呈现选项,生成包括与所选内容呈现选项和内容项相关联的数据的令牌,从客户端设备接收客户端请求,其中所述客户端请求与所述内容项相关联并指示已选内容呈现选项,将令牌的数据与所述客户端请求指示的已选内容呈现选项进行比较以确定匹配,并且基于匹配的确定结果授权客户端设备访问以对内容项执行已选内容呈现选项。在一个示例中,与内容项相关联的所述限制属性由内容项的创建者提供,并且所述限制属性指示所述内容项是对应于支持数字版权管理(drm)的内容呈现选项还是对应于无drm的呈现选项。

在另一实施方式中,该方法还包括向所述客户端设备查询所述客户端设备支持的内容呈现选项,以及从所述客户端设备接收所述多个内容呈现选项。选择内容呈现选项之一可以涉及基于内容呈现选项的用户体验超过预定阈值从所述多个内容呈现选项中标识内容呈现选项。所选内容呈现选项可以对应于所述客户端设备上的共享应用或者对应于执行所述内容呈现选项的所述客户端设备上的特定媒体播放器。在一个示例中,所选内容呈现选项包括使用所述客户端设备可用的一个或多个共享服务来远程呈现内容项。在另一示例中,所选内容呈现选项包括内容项的回放或显示。

在又一实施方式中,该方法还可以涉及将所述令牌发送到所述客户端设备并随后接收所述令牌和所述客户端请求。可以通过使用二进制到文本函数对与所选内容呈现选项和内容项相关联的数据进行编码来生成所述令牌。可以在接收所述客户端请求之前将所述令牌和规范发送到所述客户端设备。所述规范可以向所述客户端设备指示所述内容项和所选内容呈现选项。该方法还可以涉及验证从客户端设备接收的令牌,并且根据所述从客户端设备接收的令牌核实客户端请求。

在另一实施方式中,该方法还可以涉及通过将内容项提供给实施所选内容呈现选项的所述客户端设备上的呈现组件来授权客户端设备访问,其中所述呈现组件是本机媒体播放器、浏览器媒体播放器或插件媒体播放器中的至少一个。在一个示例中,确定内容项可以涉及根据从所述客户端设备接收的内容标识符来标识内容项。在另一示例中,确定内容项可以涉及在过滤掉所述客户端设备的多个内容呈现选项中的至少一个不支持的一个或多个内容项之后从多个内容项中选择内容项。

在附加实施方式中,还公开了用于执行上述实施方式的操作的计算设备。

在一些实施方式中,计算机可读存储介质存储用于使处理设备执行上述实施方式的操作的指令。

附图说明

本公开通过示例而非限制的方式在附图中示出。

图1示出了根据本公开的实施方式的示例系统架构。

图2是示出根据本公开的一个实施方式的服务器设备及其示例性组件和模块的框图。

图3是示出根据本公开的一些实施方式的属性索引方法的示例的流程图。

图4是示出根据本公开的一些实施方式的示例系统架构的框图。

当结合以下具体实施方式观察时,可以更好地理解这些附图。

具体实施方式

本公开的各方面提供了用于确保与内容的安全性或其他有关的特殊要求首先被针对相应内容的服务器标识的技术,所述相应内容是所述服务器要发送到客户端设备的。相应客户端设备上可用的应用或呈现选项由服务器系统标识。与内容回放的限制或要求相关联的设置由服务器确定。一旦这些要求可用,服务器就将与各种应用或呈现部件中的每一个有关的信息和与内容相关联的设置进行比较。与满足内容的设置要求的客户端设备上的合适呈现部件有关的信息和这样的内容的标识符一起封装在服务器生成的令牌中。在一个示例中,然后将该内容与该令牌一起发送到客户端设备。如果已请求回放内容的播放器或应用与由令牌标识的播放器或呈现部件相同,则允许在客户端设备上进行回放。因此,本公开确保具有诸如drm能力之类的要求的内容被特别授权这样做的客户端设备上的一个或多个应用或播放器显示。

因此,本公开通过提供用于使得能够访问客户端设备上的相应媒体内容或回放的定制授权的方法来解决现有系统的技术问题和缺点。因此,本公开包括高效、安全和可扩展的技术,以证实由内容提供者设置的任何特殊限制或要求被其所发送到的用于呈现的设备或应用满足。该技术也可以以其中不对内容设置这样的要求(与drm或任何其他限制有关)的类似的方式起作用。因此,本公开确保以安全可靠的方式发送任何和所有媒体内容以进行回放;确保对内容分别应用授权。

在本公开中,频繁地展现针对用户上传的视频的示例。这样做是为了便于解释本文描述的一些特征。然而,具有其他内容的实施例也在本公开的范围内,而不管本文是否提供了这样的具体示例。

图1示出了根据本公开的实施方式的用于可选地限制特定内容项以防止未授权展现或再现的示例系统架构100。系统架构100包括网络105、服务器设备110、一个或多个客户端设备120a-z、内容共享平台130和共享服务140。在一个实施方式中,网络105可以包括公共网络(例如,因特网)、专用网络(例如,局域网(lan)或广域网(wan))、有线网络(例如,以太网)、无线网络(例如,802.11网络或wi-fi网络)、蜂窝网络(例如,长期演进(lie)网络)、路由器、集线器、交换机、服务器计算机和/或其组合。

服务器设备110可以包括一个或多个计算设备(例如,机架式服务器、服务器计算机等)。在一个实施方式中,服务器设备110可以包括在内容共享平台130、共享服务140或未示出的其他设备中。如图1所示,服务器设备110可以包括内容分析组件112、令牌生成组件114和客户端请求核实组件116。

内容分析组件112可以分析一个或多个内容项131(例如,媒体项)和一个或多个内容呈现选项122a-z(例如,媒体播放器)并选择满足一个或多个限制属性的特定内容项和特定呈现选项。限制属性可以由内容创建者(例如,作者)、内容分发者(例如,广告商、视频主机、社交网络)、与内容项相关联的其他实体或其组合来设置。限制属性可以指示可以向用户展现内容项的方式,并且可以影响内容项被使用、修改、再现、分发、保护、控制、处理或其组合的方式。内容分析组件112可以分析与内容项相关联的限制属性以及在客户端设备120a-z之一上可用的一个或多个呈现选项,并选择特定内容项和呈现选项以供客户端设备展现给用户。

令牌生成组件114可以分析内容项和内容呈现选项的选择,并生成指示特定内容项和特定内容呈现选项的令牌。令牌可以由客户端设备120a接收和存储,并且可以随后在发送对特定内容项的客户端请求之前、期间或之后由客户端发送。令牌和客户端请求可以被发送到服务器设备110、内容共享平台130、共享服务140、其他服务或其组合。例如,客户端设备120a可以从服务器设备110接收标识特定内容项(例如,url)的数据和令牌,并且可以使用该数据来形成客户端请求并将该客户端请求和令牌发送到内容共享平台130以获得特定内容项。

客户端请求核实组件116可以根据该令牌来分析与客户端请求相关联的信息,以确保使用特定呈现选项展现特定内容项。客户端请求核实组件116可以验证该令牌并且可以将指示所选呈现选项和内容项的该令牌的数据和与客户端请求相关联的信息进行比较。与客户端请求相关联的信息可以指示正被请求的特定内容项和对应的呈现选项。当客户端请求的内容项和呈现选项与令牌指示的内容项和呈现选项匹配时,可以核实客户端请求。然后,客户端请求核实组件116可以授权客户端设备访问内容项。例如,客户端请求核实组件116可以向内容共享平台130指示客户端设备120a可以继续展现(例如,本地呈现)或共享(例如,远程呈现)内容项。

内容分析组件112、令牌生成组件114和客户端请求核实组件116及其功能的进一步描述在下面参考图2更详细地描述。

客户端设备120a-z每个可以包括计算设备,诸如移动电话、智能电话、平板计算机、膝上型计算机、上网本计算机、个人计算机(pc)等。在一些实施方式中,客户端设备120a-z也可以被称为“用户设备”,并且可以被配置为从一个或多个用户接收用户输入。在一个示例中,客户端设备120a-z中的每一个可以支持一个或多个内容呈现选项122a-z。

内容呈现选项122a-z可以是能够呈现内容项的任何软件组件或软件组件的组合。呈现可以涉及呈现图像数据、音频数据、视频数据、其他内容或其组合。呈现可以是在本地客户端设备上发生的本地呈现,或者呈现可以是远程呈现,其中客户端设备向远程客户端设备提供信息(例如,内容项或到内容项的链接)以用于呈现。在一个示例中,内容呈现选项122a-z可以是或可以包括在本地客户端设备上安装或执行并且能够向用户播放或展现内容项的媒体播放器。在另一示例中,内容呈现选项122a-z可以是与一个或多个本地或远程媒体播放器交互(例如,共享)以向用户展现内容项的应用或服务。

内容呈现选项122a-z可以包括本机呈现组件或非本机呈现组件。本机呈现组件可以是当从负责创建或配置客户端设备的制造商、设计者或其他实体接收客户端设备时作为客户端设备的一部分而包括的任何呈现组件。本机呈现组件也可以称为内置呈现组件、常驻(stock)呈现组件或其他类似概念。可以将本机呈现组件与操作系统一起打包为驱动程序、应用或其他计算机程序。例如,本机呈现组件可以是与客户端设备的操作系统一起打包的媒体播放器。

非本机呈现组件可以类似于本地呈现组件,但可以由第三方提供。第三方可以是设备(例如,网络服务器)或个人(例如,用户、it管理员)并且可以提供配置数据或可执行数据,诸如可执行指令、代码、命令或可以在客户端设备上运行的其他信息。可执行数据可以永久地或临时地(例如,网络会话或登录会话的持续时间)安装或加载到客户端设备上。可执行信息可以在诸如内核驱动器、操作系统模块、应用、应用插件、其他软件组件或其组合的软件栈中的任何部分添加到客户端设备。

在一个示例中,非本机呈现组件可以作为基于浏览器的呈现组件包括在应用(例如,网络浏览器)内。基于浏览器的呈现组件可以是利用超文本标记语言(例如,html5)、其他基于浏览器的媒体播放技术或其组合的媒体播放器。非本机呈现组件可以由服务器110、内容共享平台130、共享服务140、其他设备或其组合提供给客户端设备120a-z。基于浏览器的呈现组件可以将内容展现为独立的媒体播放器(例如,全视图)或嵌入的媒体播放器(例如,嵌入在网页中)。

在另一示例中,非本机呈现组件可以是安装在客户端设备上并包括集成呈现组件的应用。例如,该应用可以是能够提供内容项以展现给用户的媒体共享应用,诸如消息传递应用(例如,即时消息、文本消息、语音消息、视频消息、电子邮件消息)、社交网络应用、其他媒体共享应用或其组合。

内容共享平台130可以是一个或多个计算设备(诸如机架安装服务器、路由器计算机、服务器计算机、个人计算机、大型计算机、膝上型计算机、平板计算机、台式计算机等)、数据存储(例如,硬盘、存储器、数据库)、网络、软件组件和/或硬件组件,其可用于向用户提供对内容项的访问和/或向用户提供内容项。例如,内容共享平台130可以允许用户消费、上传、搜索、赞成(“喜欢”)、反对(“不喜欢”)和/或以其他方式对内容项进行评论。内容共享平台130还可以包括可以用于向用户提供对内容项的访问的网站(例如,网页)。通常,在一个实施方式中描述为由内容共享平台130执行的功能也可以在其他实施方式中在客户端设备120a-z上执行(如果适当的话)。另外,归因于特定组件的功能可以由一起操作的不同或多个组件来执行。内容共享平台130还可以作为通过适当的应用编程接口提供给其他系统或设备的服务来访问,并且因此不限于在网站中使用。在一个实施方式中,内容共享平台130可以存储和分发多个内容项131。

内容项131可以是用户经由客户端设备120a-z可以消费或体验的任何内容。内容项131可以包括图像、声音、视频、文本、其他媒体或其组合。为了简洁和简单,在本文中使用在线视频(以下也称为视频)作为内容项131的示例。本文所使用的“内容项”、“内容”、“媒体”、“媒体项、“在线媒体项”、“数字媒体”、“数字媒体项”可以包括可以使用被配置为向实体(例如,用户、观看者、收听者)展现内容项的软件、固件或硬件来执行或加载的电子数据(例如,文件、记录、块)。

内容共享平台130可以包括多个频道(例如,频道a到z)。频道可以是可从公共源获得的数据内容或具有共同主题或题目的数据内容。数据内容可以是由用户选择的数字内容、由用户提供的数字内容、由用户上传的数字内容、由内容提供者选择的数字内容、由广播者选择的数字内容等。例如,频道x可以包括视频y和z。频道可以与所有者相关联,所有者是可以在频道上执行动作的用户。可以基于所有者的动作将不同的活动与频道相关联,所有者的动作诸如所有者在频道上提供数字内容、所有者选择(例如,喜欢)与另一频道相关联的数字内容、所有者评论与另一频道相关联的数字内容等。与频道相关联的活动可以被收集到频道的活动信源(feed)中。用户,而不是频道所有者,可以订阅他们感兴趣的一个或多个频道。一旦用户订阅频道,就可以向用户展现来自频道的活动信源的信息。如果用户订阅了多个频道,则可以将用户订阅的每个频道的活动信源组合成聚合活动信源。可以向用户展现来自聚合活动信源的信息。

每个频道可以包括一个或多个内容项131。内容项131的示例可包括但不限于数字视频、数字电影、数字照片、数字音乐、网站内容、社交媒体更新、电子书(e书)、电子杂志、数字报纸、数字有声书、电子期刊、网络博客、真正简单聚合(rss)信源、电子漫画书、软件应用等。在一些实施方式中,内容项131也被称为媒体项。

共享服务140可以包括能够与一个或多个其他用户或客户端设备共享内容项131的任何服务。共享服务140可以提供消息传递功能(例如,即时消息、文本消息、语音消息、视频消息、电子邮件消息)、社交网络功能(例如,发布、评论、新闻信源、用户互连)、其他媒体共享特征或其组合。共享服务140可以与一个或多个内容呈现选项122a-z集成,并且可以从内容呈现选项122a-z接收内容项或将内容项发送到内容呈现选项122a-z。虽然在内容共享平台方面讨论了本公开的实施方式,但是实施方式通常也可以应用于提供用户之间的连接的任何类型的共享服务。

在本文讨论的系统收集关于用户的个人信息或者可以利用个人信息的情况下,可以向用户提供控制设备是否能够收集用户信息(例如,关于用户社交网络、社交动作或活动、专业、用户的偏好或用户的当前位置的信息)或控制是否和/或如何从内容服务器接收可能与用户更相关的内容的机会。此外,某些数据可以在其被存储或使用之前以一种或多种方式处理,使得移除个人可标识信息。例如,可以对用户的身份进行处理,使得不能确定该用户的个人可标识信息,或者用户的地理位置可以被概括为获得位置信息的地方(例如概括为城市、邮政编码或州级别),使得无法确定用户的特定位置。因此,用户可以控制如何收集关于用户的信息以及如何由内容共享平台130使用该信息。

图2是示出了根据本公开的一个实施方式的示例服务器设备110的框图。服务器设备110可以是内容共享平台、共享服务、其他服务或其组合的一部分。如上所述,服务器设备110可以包括内容分析组件112、令牌生成组件114、客户端请求核实组件116和数据存储210。每个组件可以包括一个或多个模块,并且可以在服务器设备110中包括更多或更少的组件和/或模块而不失一般性。例如,组件或模块中的两个可以组合成单个组件,或者组件之一可以被分成两个或更多个组件。在一个实施方式中,组件或模块中的一个或多个可以驻留在不同的计算设备(例如,不同的服务器设备或客户端设备)上。在一个实施方式中,数据存储210可以是存储器(例如,随机存取存储器)、高速缓存、驱动器(例如,硬驱动器)、闪存驱动器、数据库系统或能够存储数据的其他类型的组件或设备。数据存储210还可以包括多个存储组件(例如,多个驱动器或多个数据库),其也可以跨越多个计算设备(例如,多个服务器计算机)。

内容分析组件112可以分析一个或多个内容项和一个或多个内容呈现选项,并选择满足一个或多个限制属性的特定内容项和特定呈现选项。在图2所示的示例中,内容分析组件112可以包括呈现检测模块222、限制分析模块224、呈现选择模块226和内容项确定模块228。

呈现检测模块222可以检测客户端设备上可用的呈现选项集合以及对应的呈现组件。如上所述,呈现选项可以包括与一个或多个本地或远程媒体播放器交互的不同媒体播放器或不同应用或服务(例如,消息传递应用、社交网络应用)。客户端设备上可用的呈现选项集合可取决于客户端设备支持的内容或客户端设备的用户指示为可用的内容。例如,设备可以支持多个呈现选项,但是用户可以指示所支持的呈现选项中的一个或多个是不可用的或者是优选的,因此可用呈现选项集合可以是所支持的呈现选项的子集。

呈现检测模块222可以从特定客户端设备或从包括与特定客户端设备相对应的信息的数据存储中取得呈现选项集合。在一个示例中,呈现检测模块222可以向特定客户端设备查询该客户端设备支持的一个或多个呈现选项,并且该客户端设备可以使用与一个或多个呈现选项相对应的信息进行响应。在另一示例中,呈现检测模块222可以访问与客户端设备分离并且包括关于客户端设备的能力或配置的信息(例如,安装的移动应用的集合)的数据存贮器。然后,呈现检测模块222可以分析该信息以确定特定客户端设备支持哪些呈现选项。在任一示例中,对应于呈现选项的信息可以包括用于标识上面讨论的一个或多个本机呈现组件(例如,本机媒体播放器)或非本机呈现组件(例如,html5播放器)的信息。

限制分析模块224可以分析与内容项相关联的一个或多个限制属性212以确定应如何呈现内容项。限制属性211可以由内容创建者(例如,作者)、内容分发者(例如,广告商、视频主机、社交网络)、与内容项相关联的其他实体或其组合来设置。限制属性212可以与特定内容项、包括一个或多个内容项的特定频道、一个或多个内容项的特定提供者(例如,作者、分发者)、其他项或实体或其组合相关联。限制属性211可以指示可以向用户展现内容项的方式,并且可以影响内容项被使用、修改、再现、分发、保护、控制、处理或其组合的方式。

限制属性212可以是用于存储设置、标志或指示是否应该使用(多个)限制方案的其他信息的任何数据结构。在一个示例中,限制属性212可以是二进制元素(例如,真/假),其指示对应的呈现选项是否需要支持限制方案。限制方案可以是具有以软件、硬件或其组合实施的规则或策略的访问控制技术,其可用于限制内容项的使用。限制方案可以通过以编程方式消除或降低呈现组件访问、加载、解码、解密、共享、提供、展现、显示或播放内容项的能力来限制内容项的使用。在一个示例中,限制方案可以与控制用户、专有或受版权保护的内容项的修改和分发的数字版权管理(drm)方案相同或相似。

呈现选择模块226和内容项确定模块228可以彼此交互以选择特定呈现选项和特定内容项以供客户端设备展现给用户。在一个示例中,呈现选择模块226可以在内容项确定模块228选择内容项之前选择呈现选项。在另一示例中,呈现选择模块226可以在内容项确定模块228选择内容项之后选择呈现选项。在其他示例中,呈现选择模块226和内容项确定模块228可以以不同的顺序运行。

呈现选择模块226可以分析客户端上可用的一个或多个呈现选项,并且可以选择特定呈现选项。特定呈现选项的选择可以基于对一个或多个呈现因子的评估。呈现因子可以包括表示呈现选项的能力的数值或非数值(例如,真/假)。呈现因子可以基于所支持的限制方案(例如,drm、无drm)、可用性(例如,自动回放)、展现质量(例如,分辨率、加载速度)、数字容器格式(例如,mp4)、内容编解码器(例如,h.264)、帧率、比特率、其他因子或其组合。

呈现选择模块226可以根据一个或多个呈现因子来组织可用于特定客户端设备的呈现选项集合。该组织可以基于多参数排序、加权排序、其他排序技术或其组合。多参数排序可以对第一因子(例如,限制方案)进行排序,然后可以对第二因子(例如,展现质量)进行排序。加权排序可以导出每个呈现选项(例如,呈现技术、呈现方法)的加权值并基于加权值进行排序。加权排序可以涉及标识每个呈现因子的权重(例如,数值系数)和值(例如,数值分数、字母分数)并执行一个或多个数学运算(例如,乘法、除法、加法、减法)以导出每个呈现选项的加权值。呈现选择模块226也可以根据来自限制分析模块224的信息来过滤(例如,移除或添加)一个或多个呈现选项。例如,如果限制分析模块224指示需要限制方案,则呈现选择模块226可以移除不支持该限制方案的任何呈现选项。

然后,呈现选择模块226可以从所组织的呈现选项集合中选择呈现选项的子集。在一个示例中,呈现选择模块226可以选择可以是最佳呈现选项的单个呈现选项。最佳呈现选项可以基于具有最高/最低加权值的呈现选项或所组织的呈现选项列表中的第一/最后呈现选项。在另一示例中,呈现选择模块226可以选择多个呈现选项以包括在发送到特定客户端设备的子集中,并且该客户端设备可以从该子集中选择呈现选项。

内容项确定模块228可以访问来自限制分析模块224和呈现选择模块226的信息,并且可以选择要在客户端设备上呈现的一个或多个特定内容项。在一个示例中,服务器110可以接收对内容项的请求,并且该请求可以不标识特定内容项。例如,客户端设备可以提交对内容项(例如,广告、下一视频)的请求,但是它可以不指定特定内容项。内容项确定模块228可以分析多个内容项,并且可以以与关于呈现选择模块226所讨论的方式类似的方式来组织、排序或过滤内容项。特定内容项的选择可以基于一个或多个内容选择因子的评估。内容选择因子可以基于限制方案(例如,drm、无drm)、用户人口统计学(例如,年龄、性别、位置)、客户端设备能力(例如,带宽、屏幕分辨率、处理功率、存储器)、其他因子或其组合。

内容项确定模块228可以根据一个或多个内容选择因子来组织可用于特定客户端设备的内容项集合。该组织可以基于多参数排序、加权排序、其他排序技术或其组合。多参数排序可以对主要因子(例如,限制方案)进行排序,然后可以对一个或多个次要因子进行排序(例如,人口统计学)。加权排序可以导出每个呈现选项的加权值并基于加权值进行排序。加权排序可以涉及标识每个呈现因子的权重(例如,数值系数)和值(例如,数值分数、字母分数)并执行数学运算(例如,乘法、除法、加法、减法)以导出每个内容项的加权值。内容项确定模块228也可以根据来自限制分析模块224或呈现选择模块226的信息来过滤(例如,移除或添加)一个或多个内容项。例如,如果限制分析模块224指示不存在支持drm的呈现方法,则内容项确定模块228可以移除与需要使用drm的限制属性相关联的任何内容项。

然后,内容项确定模块228可以从所组织的内容项集合中选择内容项的子集。在一个示例中,内容项确定模块228可以选择可以是最佳内容项的单个内容项。最佳内容项可以基于具有最高/最低加权值的内容项或所组织的内容项集合(例如,列表)中的第一/最后内容项。在另一示例中,呈现选择模块226可以选择多个内容项以包括在发送到特定客户端设备的子集中,并且该客户端设备可以选择该子集中的一个或多个内容项。

在一个示例中,服务器设备110可以使用由呈现选择模块226和内容项确定模块228确定的信息来形成规范数据217。规范数据211可以被发送到客户端设备并且使该设备能够向该客户端设备的用户展现内容。如图2所示,规范数据217可以包括描述符219和令牌218。可以根据所选呈现选项生成描述符219和令牌218两者。在一个示例中,描述符219可以是可以由客户端设备理解的格式,并且令牌218可以是不被客户端设备理解的格式。描述符219可以包括内容呈现标识数据214和内容项标识数据216,这将在下面更详细地讨论。

令牌生成组件114可以生成令牌218,其对应于由内容分析组件112提供的所选呈现选项和内容项。令牌218可以从服务器设备110发送到客户端设备,并且可以伴随从客户端设备到服务器设备110、内容共享平台、共享服务或其他服务的后续客户端请求。令牌218可以作为客户端请求的一部分、或在客户端请求内、或在单独的消息中在发送客户端请求之前、期间或之后进行发送。在图2所示的示例中,令牌生成组件114可以包括数据收集模块232和数据组合模块234。

数据收集模块232可以从数据存储210取得内容呈现标识数据214和内容项标识数据216。内容呈现标识数据214可以包括客户端或服务器可以用来标识(多个)所选择的呈现选项的任何信息。内容呈现标识数据214可以包括呈现标识符,该呈现标识符可以用于标识实施呈现选项的呈现组件。在一个示例中,呈现标识符可以标识媒体播放器,其可以是本机呈现组件或非本机呈现组件。在另一示例中,呈现标识符可以标识提供对内容项的支持的应用(例如,移动应用id),并且可以包括一个或多个嵌入式媒体播放器。

内容项标识数据216可以包括客户端或服务器可以用来标识特定内容项的任何信息。内容项标识数据216可以包括可以用于标识特定内容项的内容标识符。内容项目标识数据216还可包括定义位置的信息或可用于标识特定内容项目所驻留的位置(例如,存储设备、内容共享平台、服务器设备、客户端设备)的信息。在一个示例中,内容项标识数据216可以包括诸如统一资源定位符(url)的链接或用于定位和标识远程设备上的特定内容项的其他类似链接机制。在另一示例中,内容项标识数据216可以包括设备标识符(例如,主机名)和存储对象标识符(例如,文件名)。

数据组合模块234可以访问内容呈现标识数据214和内容项标识数据216,并组合这些数据以生成令牌。数据的组合可以涉及编码方案、加密方案、散列方案、其他方案或其组合。在一个示例中,组合方案可以涉及诸如二进制到文本编码方案的一种或多种编码方案。二进制到文本编码方案可以涉及将数据(例如,二进制数据)编码成纯文本(例如,字符序列)。纯文本可以包括美国信息交换标准码(ascii)字符、unicode字符、其他字符或其组合。二进制到文本编码方案可以是base-64编码方案,其将内容呈现标识数据214和内容项标识数据216变换为字符子集(例如,radix-64表示)。字符子集可以包括64个字符(例如,a-z,a-z,0-9)的特定集合,并且可以将数据214和216变换为来自该特定集合的字符序列。在一个示例中,令牌218包括字符序列或由字符序列表示。

令牌218可以包括在规范217内并且被发送到客户端设备。客户端设备可以分析规范217以标识呈现选项,并且可以将规范217中的一些或者全部信息转发到与呈现选项相关联的呈现组件。然后,呈现组件可以生成针对由规范217指示的内容项的客户端请求。可以将该客户端请求发送到可以访问内容项的任何内容服务设备。在一个示例中,客户端请求可以被发送到与服务器设备110不同的内容服务设备。在另一示例中,客户端请求可以被发送到服务器设备110,其可以满足客户端请求或将其转发到可以满足客户端请求的内容服务设备。在任一示例中,可以在将内容项提供给客户端设备之前由客户端请求核实组件116分析客户端请求。

客户端请求核实组件116可以根据令牌来分析客户端请求,以确定呈现选项和内容项是否对应于由服务器设备110选择的呈现选项和内容项。客户端请求核实组件116可以包括验证模块242、比较模块244和访问授权模块246。

验证模块242可以分析从客户端设备接收的令牌以检验令牌的可靠性。在一个示例中,验证模块242可以将从客户端接收的令牌与由服务器生成的令牌218(例如,令牌218)进行比较。令牌218可以从本地或远程数据存储(例如,210)取得。如果两个令牌匹配,则验证模块242可以指示令牌是可靠的并且未被改变(例如,被篡改、伪造、修改)。在另一示例中,验证模块242可以对令牌执行一个或多个数学运算以确定令牌是否是可靠的。数学运算可以涉及服务设备110可访问的一条或多条信息(例如,解码功能、公钥、私钥)。

比较模块244可以将从客户端设备接收的客户端请求与令牌进行比较以核实客户端请求。用于比较的令牌可以是从客户端设备接收的令牌(例如,在客户端请求内)或由服务器生成的令牌(例如,令牌218)。从客户端接收的令牌和由服务器生成的令牌可以彼此相同或者可以彼此不同。在一个示例中,从客户端接收的令牌可以包括更多或更少的数据,并且添加或移除的数据可以包括定时数据、版本数据、源/目的地数据、其他数据或其组合。

比较模块244可以理解来自客户端请求和令牌的数据并比较理解的数据。客户端请求可以提供标识特定内容项的数据和标识呈现选项的数据。例如,客户端请求可以包括标识发起客户端请求的媒体播放器的数据以及标识特定内容项的位置或名称的url或url的一部分。该信息可以从客户端请求中提取并且可以由服务器设备110访问以用于后续处理。如上所述,令牌可以包括内容呈现标识数据214和内容项标识数据216的组合。尽管数据214和216可以以客户端设备可能无法理解的方式组合(例如,编码、加密),但是其随后可以由服务器设备110理解。服务器设备可以从令牌中提取(例如,解码的、解密的)数据214和216。然后,比较模块244可以将从客户端请求理解的数据与从令牌理解的数据进行比较,以标识任何相似性和/或差异。

访问授权模块246可以分析客户端请求的数据与令牌的数据之间的比较结果,并确定是否授权客户端设备访问所请求的内容项。在一个示例中,访问授权模块246可以确定令牌的数据和客户端请求的数据是否匹配。如果它们不匹配,则可以指示客户端请求的内容项或呈现选项与服务器的选择不对应,并且客户端请求不能继续。如果它们匹配,则可以指示客户端设备正在请求由服务器设备110选择的特定内容项和呈现选项,并且客户端请求可以继续。

访问授权模块246可以通过核实客户端请求来使得客户端请求能够继续。核实可以是以信号的形式,该信号确认客户端请求符合令牌并且内容项可以被提供给发送客户端请求的客户端设备。该信号可以被发送到服务器设备110上的另一组件,或者可以通过网络发送到负责向客户端设备提供内容项的另一设备,诸如内容提供服务器(例如,内容共享平台的内容流传输服务器)。

图3描绘了用于可选地限制内容项的方法的说明性示例的流程图。方法300可以由处理设备执行,处理设备可以包括硬件(例如,电路、专用逻辑、可编程逻辑、微代码等)、软件(诸如在通用计算机系统或专用机器上运行)、或二者的组合。方法300及其各个功能、例程、子例程或操作可以由执行该方法的计算设备的一个或多个处理器执行。

为了简化说明,将本公开的方法描绘和描述为一系列动作。然而,根据本公开的动作可以以各种顺序和/或同时发生,并且与本文未展现和描述的其他动作一起发生。此外,可以不需要所有示出的动作来实现根据所公开的主题的方法。另外,本领域技术人员将理解并明白,该方法可替代地通过状态图或事件表示为一系列相互关联的状态。另外,应当理解,本说明书中公开的方法能够存储在制造品上,以便于将这些方法传送和传送到计算设备。这里使用的术语“制造品”旨在包含可从任何计算机可读设备或存储介质访问的计算机程序。在一个实施方式中,方法300可以由如图1和图2中所示的服务器设备110执行。

参考图3,方法300可以由服务器设备或客户端设备的处理设备来执行,并且可以在方框302处开始。在方框302处,处理设备可以接收客户端设备支持的多个内容呈现选项。接收的多个呈现选项可以指示客户端设备支持的呈现选项。在一个示例中,该方法可以涉及处理设备向设备查询该设备支持的内容呈现选项并从该设备接收多个内容呈现选项。在另一示例中,处理设备可以在不查询客户端设备的情况下利用客户端请求接收呈现选项。

在方框304处,处理设备可以确定要呈现的内容项,该内容项与限制属性相关联。在一个示例中,确定内容项可以涉及根据从客户端设备接收的内容标识符来标识内容项。在另一示例中,确定内容项可以涉及在过滤掉客户端设备的多个内容呈现选项中的至少一个不支持的一个或多个内容项之后从多个内容项中选择内容项。在其他示例中,内容项的确定可以基于一个或多个内容项的组织。该组织可以基于多参数排序、加权排序、其他排序技术或其组合。多参数排序可以对第一因子(例如,限制方案)进行排序,然后可以对第二因子(例如,展现质量)进行排序。加权排序可以导出每个呈现方法的加权值并基于加权值进行排序。加权排序可以涉及标识每个因子的权重(例如,数值系数)和值(例如,数值分数、字母分数)并执行数学运算(例如,乘法、除法、加法、减法)以导出每个呈现选项的加权值。处理设备还可以过滤(例如,移除或添加)一个或多个呈现选项。然后,处理设备可以从所组织的呈现选项集合中选择呈现选项的子集。在一个示例中,处理设备可以选择单个呈现选项,其可以是最佳呈现选项。最佳呈现选项可以基于具有最高/最低加权值的呈现选项或呈现选项的组织列表中的第一/最后呈现选项。

在方框306处,处理设备可以根据限制属性从客户端设备支持的多个内容呈现选项中选择内容呈现选项。限制属性可以与内容项相关联,并且可以由内容项的创建者或分发者提供。在一个示例中,限制属性可以指示内容项是否对应于支持数字版权管理(drm)的呈现选项或者无drm(例如,无drm)的呈现选项。

选择呈现选项可以包括基于呈现选项的用户体验从多个呈现选项中标识呈现选项。可以根据一个或多个呈现因子的分析和评估来确定用户体验。呈现因子可以是表示呈现选项的能力的数值或非数值(例如,真/假)。呈现因子可以基于限制方案(例如,drm,无drm)、可用性(例如,自动回放)、展现质量(例如,分辨率、加载速度)、数字容器格式(例如,mp4)、内容编解码器(例如,h.264)、帧率、比特率、其他因子或其组合。可以对数值和/或非数值进行评分和加权以产生呈现分数。可以将呈现分数与预定阈值进行比较,以选择或消除一个或多个呈现选项。例如,预定阈值可以是最小阈值,可以消除具有低于最小阈值的分数的呈现选项作为可用呈现选项并且具有高于最小阈值的分数的呈现选项可用作所选呈现选项。

在方框308处,处理设备可以生成令牌,该令牌包括与所选呈现选项和内容项相关联的数据。生成令牌可以涉及使用二进制到文本函数来编码与呈现选项和所选内容项相关联的数据。然后,可以将生成的令牌作为规范的一部分或与规范一起发送到客户端设备。在一个示例中,处理设备可以在接收客户端请求之前将令牌和规范发送到客户端设备。规范可以向客户端设备指示所选内容项和所选呈现选项。生成的令牌可以在被发送到客户端设备之前被添加(例如,连接)到描述符(例如,url)。

在方框310处,处理设备可以从客户端设备接收客户端请求,其中客户端请求与内容项相关联并指示已选内容呈现选项。客户端请求可以由客户端设备根据用户输入和/或处理设备接收的输入(例如,规范、描述符)来生成。在一个示例中,用户可以提供标识主要内容项(例如,用户生成的视频)的用户输入,并且处理设备可以标识次要内容项(例如,广告)并发送标识次要内容项的规范。然后,客户端设备可以根据规范生成对第二内容项的客户端请求。

在方框312处,处理设备可以将令牌的数据与客户端请求所指示的已选呈现选项进行比较以确定匹配。处理设备可以通过执行数据提取、解码、解密或其他类似功能从令牌导出数据。令牌可以包括所确定的内容项的标识符和所选呈现选项的标识符。呈现选项的标识符可以对应于执行呈现选项的客户端设备上的特定呈现组件(例如,媒体播放器、共享应用)。在一个示例中,处理设备可以验证从客户端设备接收的令牌,然后根据从客户端设备接收的令牌来核实从该设备接收的客户端请求。

在方框314处,处理设备可以基于匹配的确定结果授权客户端设备访问以对内容项执行已选内容呈现选项。授权客户端设备访问内容项可以包括将内容项提供给实施所选呈现选项的客户端设备上的呈现组件。呈现组件可以是本机媒体播放器、浏览器媒体播放器或插件媒体播放器中的至少一个。响应于完成上文参考方框314所述的操作,该方法可以终止。

如整个说明书中所讨论的,方法300可以利用作为媒体播放器的呈现选项来实施,或者可以利用基于与本地或远程媒体播放器交互的应用或服务的呈现选项来实施。在后一实施方式中,呈现操作可以与在另一客户端设备上提供远程呈现的共享服务相关联。呈现选项的细节可以存储在服务器设备上,并且可以不需要在运行时从客户端设备取得。可以根据与客户端设备上可用于共享到服务(例如,社交网络服务、消息传递服务)的多个应用中的每一个相对应的描述符来确定远程呈现选项(例如,共享选项)中的每一个。每个描述符可以与呈现因子(例如,drm能力)相关联,并且当客户端设备接收到发起远程呈现请求的用户输入时,客户端设备可以将其报告给服务器设备。

服务器设备可以访问用户已经安装、能够满足远程呈现请求(例如,共享请求)的应用集合。对于每个呈现选项,服务器可以查询服务器上的设备配置以确定可用呈现选项。通常,呈现选项将基于最佳用户体验以最佳顺序列出,然后与上面的描述类似地进行过滤。然而,在一些应用中,共享用户可以控制哪些呈现选项是可用的。例如,用户可以选择将视频剪辑显式地呈现为gif而不是作为链接的选项。在这种情况下,该用户定义的决定作为远程呈现请求的一部分传递给服务器设备,并且服务器仅以该客户端支持的服务的子集(能够处理无drm共享方法的子集)进行响应。在另一个应用中,drm和非drm共享方法可以包括在共享服务的相同列表中。

一旦服务器确定了适当的呈现选项的列表,它们就可以被发送到客户端设备,其可以启动远程呈现选项之一。在客户端设备选择非drm的远程呈现选项的情况下,内容可以包括对内容项的引用(与实际内容项相对)。然后,接收客户端设备可以访问(例如,下载、流传输)该内容并使用所选呈现选项来呈现它。

图4示出了计算机系统400的示例性形式的机器的图解表示,计算机系统400中可以运行用于使机器执行本文所讨论的任何一种或多种方法的一组指令或多组指令。在替代实施例中,机器可以连接(例如,联网)到局域网、内联网、外联网或因特网中的其他机器。机器可以在客户端-服务器网络环境中以服务器或客户端机器的能力运行,或者作为对等(或分布式)网络环境中的对等机器运行。该机器可以是个人计算机(pc)、平板计算机、机顶盒(stb)、个人数字助理(pda)、智能电话、网络设备、服务器、网络路由器、交换机或网桥或任何能够运行指定该机器要采取的动作的一组指令(顺序或其他方式)的机器。此外,虽然仅示出了单个机器,但术语“机器”也应被视为包括任何机器集合,其独立地或联合地运行一组(或多组)指令以执行本文所讨论的任何一种或多种方法。

示例性计算机系统400包括处理设备(处理器)402,、主存储器404(例如,只读存储器(rom)、闪存、诸如同步dram(sdram)或rambusdram(rdram)等的动态随机存取存储器(dram))、静态存储器406(例如,闪存、静态随机存取存储器(sram)等)、以及数据存储设备418,它们经由总线408相互通信。

处理器402表示具有一个或多个核的一个或多个通用处理设备,诸如微处理器、中央处理单元等。更具体地,处理器402可以是复杂指令集计算(cisc)微处理器、精简指令集计算(risc)微处理器、超长指令字(vliw)微处理器、或实施其他指令集的处理器或实施指令集组合的处理器。处理器402还可以是一个或多个专用处理设备,诸如专用集成电路(asic)、现场可编程门阵列(fpga)、数字信号处理器(dsp)、网络处理器等。处理器402被配置为运行指令426,用于执行本文所讨论的操作和步骤。例如,处理器402可以运行指令426以执行如图1中所示的方法300。

计算机系统400还可以包括网络接口设备422。计算机系统400还可以包括视频显示器410(例如,液晶显示器(lcd)、阴极射线管(crt)或触摸屏))、字母数字输入设备412(例如,物理键盘或虚拟键盘)、光标控制设备414(例如,鼠标)和信号生成设备420(例如,扬声器)。

数据存储设备418可以包括非暂时性计算机可读存储介质424,其上存储有体现本文描述的任何一个或多个方法或功能的一组或多组指令426(例如,软件)。指令426还可以在由计算机系统400运行期间完全或至少部分地驻留在主存储器404内和/或处理器402内,主存储器404和处理器402也构成计算机可读存储介质。指令426还可以经由网络接口设备422在网络474上发送或接收。

在一个实施例中,指令426包括用于提供客户端请求核实组件116或者可以分别对应于关于图1描述的相同命名的对应物其他特征和/或包含用于在循环内容项的循环之间显示内容的方法的软件库的指令。虽然计算机可读存储介质424在示例性实施例中被示为单个介质,但是术语“计算机可读存储介质”应被视为包括存储一组或多组指令的单个介质或多个介质(例如,集中式或分布式的数据库和/或相关联的高速缓存和服务器)。术语“计算机可读存储介质”还应被视为包括能够存储、编码或携带由供机器运行并且使机器执行本公开的任何一个或多个方法的一组指令的任何非暂时性介质。因此,术语“计算机可读存储介质”应被视为包括但不限于固态存储器、光学介质和磁介质。

在前面的描述中,阐述了许多细节。然而,对于受益于本公开的本领域普通技术人员而言,显而易见的是,可以在没有这些特定细节的情况下实践本公开。在一些实例下,众所周知的结构和设备以框图形式而不是详细地示出,以避免模糊本公开。

已经按照对计算机存储器内的数据位的操作的算法和符号表示来展现详细描述的一些部分。这些算法描述和表示是数据处理领域中的技术人员使用的手段,以最有效地将他们工作的实质传达给本领域其他技术人员。这里的算法通常被认为是导致期望结果的自相一致的步骤序列。这些步骤是需要物理操纵物理量的步骤。通常,尽管不是必需的,但这些量采用能够被存储、传递、组合、比较和以其他方式操纵的电信号或磁信号的形式。有时,主要出于通用的原因,已经证明将这些信号称为比特、值、元素、符号、字符、术语、数字等是方便的。

然而,应该记住,所有这些和类似术语都与适当的物理量相关联,并且仅仅是应用于这些量的方便标签。除非如从以下讨论中明显的另外地明确说明,否则,应当理解,在整个说明书中,利用诸如“接收”、“标识”、“生成”、“比较”等术语进行的讨论是指计算机系统或类似电子计算设备的操作和处理,该计算机系统或类似电子计算设备将计算机系统的寄存器和存储器中的表示为物理(例如,电子)量的数据操纵和变换为计算机系统存储器或寄存器或其他此类信息存储、传输或显示设备中的类似地表示为物理量的其他数据。

本公开还涉及用于执行本文操作的系统。该系统可以为所需要的目的而专门构造,或者它可以包括由存储在计算机中的计算机程序选择性地激活或重新配置的通用计算机。这样的计算机程序可以存储在计算机可读存储介质中,例如但不限于,包括软盘、光盘、cd-rom和磁光盘的任何类型的盘、只读存储器(rom)、随机存取存储器(ram)、eprom、eeprom、磁卡或光卡、或适用于存储电子指令的任何类型的介质。

词语“示例”或“示例性”在本文中用于表示用作示例、实例或说明。本文中描述为“示例”或“示例性”的任何方面或设计不一定被解释为比其他方面或设计更优选或更具优势。而是,词语“示例”或“示例性”的使用旨在以具体方式展现概念。如在本申请中所使用的,术语“或”旨在表示包含性的“或”而不是排他性的“或”。也就是说,除非另有说明或从上下文中清楚,否则“x包括a或b”旨在表示任何自然的包含性排列。也就是说,如果x包括a;x包括b;或者x包括a和b,则在任何前述情况下满足“x包括a或b”。另外,本申请和所附权利要求中使用的冠词“一”和“一个”通常应理解为表示“一个或多个”,除非另有说明或从上下文清楚地指向单数形式。此外,贯穿全文的术语“实施例”或“一个实施例”或“一实施例”或“一个实施例”的使用并不旨在表示相同的实施例或实施例,除非如此描述。

贯穿本说明书对“一个实施例”或“实施例”的引用意味着结合该实施例描述的特定特征、结构或特性包括在至少一个实施例中。因此,贯穿本说明书在各个地方出现的短语“在一些实施例中”或“在实施例中”不一定都指代相同的实施例。此外,术语“或”旨在表示包含性的“或”而非排他性的“或”。

应理解,以上描述旨在是说明性的而非限制性的。在阅读和理解以上描述后,许多其他实施例对于本领域技术人员将是显而易见的。因此,本公开的范围应该参考所附权利要求以及这些权利要求所赋予的等同物的全部范围来确定。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1