REFERENCE TO RELATED APPLICATIONThis application claims priority to U.S. Provisional Patent Application No. 61/387,939, filed Sep. 29, 2010, the entire contents of the provisional application being incorporated herein by reference.
BACKGROUNDUsers, of user devices, have a growing array of sources, networks, and/or content providers from which to obtain video content and/or services. The users may use video client devices (e.g., a set top box, etc.) to obtain free broadcast television video content (e.g., from Fox, ABC, CBS, etc.), on-demand video content (e.g., Video On-Demand (VOD), pay-per-view (PPV), etc.), and/or pay television video content (e.g., from HBO, Cinemax, etc.) from cable television operators (e.g., Comcast, Time Warner, etc.) and/or satellite television operators (e.g., DirectTV, Dish Network, etc.). The users may use computer devices, wireless mobile devices, etc. to obtain other video content from on-line content providers, such as television operators (e.g., ABC, Fox, CBS, etc.), over-the-top (OTT) content providers (e.g., Hulu, Veoh, Jaman, YouTube, etc.), and/or other commercial content providers (e.g., Apple Computer's iTunes, Netflix, Blockbuster, etc.).
Unfortunately, the users use different types of user devices to access and/or obtain video content from the array of sources, networks, and/or content providers. Pricing, availability, and/or accessibility for the video content is usually unique depending on a particular source, network, and/or content provider from which the video content is obtained. Additionally, the pricing, availability, and/or accessibility usually depends on the particular type of user device for which the services are obtained and/or via which type of network (e.g., cable television, satellite television, Internet, wireless service provider, etc.) the video content downloaded.
BRIEF DESCRIPTION OF THE DRAWINGSFIG. 1 is a diagram of an example overview of a video provisioning system in which systems and/or methods, described herein, may be implemented;
FIG. 2 is a diagram of an example environment in which the systems and/or methods, described herein, may be implemented;
FIG. 3 is a diagram of example devices, associated with the video provisioning system, ofFIG. 2;
FIG. 4 is a diagram of example components that correspond to one or more of the devices ofFIGS. 2 and/or3;
FIG. 5 is a diagram of an example data structure that stores metadata associated with video content;
FIG. 6 is a flow chart of an example process for ingesting and/or processing video content within a video provisioning system;
FIG. 7 is a flow chart of an example process for registering a user device with a video provisioning system;
FIG. 8 is a flow chart of an example process for provisioning common video services to various types of user devices; and
FIGS. 9A-9C are diagrams of example user devices that are displaying a video asset as a result of interacting with the video provisioning system to obtain the video asset according to an implementation described herein.
DETAILED DESCRIPTION OF PREFERRED EMBODIMENTSThe following detailed description refers to the accompanying drawings. The same reference numbers in different drawings may identify the same or similar elements.
Systems and/or methods, described herein, may enable video content to be formatted for and/or provisioned to various types of user devices over various types of networks. The systems and/or methods may enable the video content to be provisioned with a uniform price, availability, and/or accessibility, regardless of a type of network via which the video content is being provisioned and/or a type of user device for which the video content is obtained. Thus, video content may be provisioned for computer devices (e.g., desktop computers, laptop computers, and tablet computers), wireless handheld devices (e.g., mobile phones, smart phones, personal digital assistants (PDAs), and tablet computers), and set top boxes.
The video content may be provisioned to the computer devices, wireless handheld devices, and/or set top boxes via a federated network environment that includes a number of different types of networks, such as, for example, a wired network, a wireless network, a broadband network, a cellular telephone network, a television network, etc., and/or some combination thereof. For example, video content may be provisioned to a set top box via a managed television network that transmits the video content (e.g., via a video stream) to the set top box. The managed television network may stream the video content using, for example, a conditional access encryption technique. The managed television network may provide the video content to the set top box in a manner that conforms to a particular quality of service (QoS) level, data rate, etc.
In another example, the video content may be provisioned to a computer device, associated with a user of the set top box, via a broadband network (e.g., via progressive download, adaptive bit rate streaming, etc.), such as, for example, the Internet. The video content, in this example, may be encrypted using another encryption technique (e.g., based on digital rights management and/or some other technique) and/or another QoS level (e.g., best efforts and/or some other QoS level) associated with the broadband network. In yet another example, the video content may be provisioned to a wireless handheld device, associated with the user, via a wireless network (e.g., via progressive download, adaptive bit rate streaming, etc.). The video content, in this example, may be encrypted using a further encryption technique (e.g., based on digital rights management and/or some other technique) and/or a further QoS level (e.g., best efforts or some other QoS level) associated with the wireless network and/or a type of wireless handheld device.
The term video content, as used herein, may include one or more video assets, metadata associated with the video assets, and/or information associated with digital rights management (DRM) that corresponds to the video assets. The video assets may include Video On-Demand (VOD) video content, pay-per-view (PPV) video content, rented video content, free television content (e.g., from free television broadcasters, etc.), paid for television content (e.g., from pay television content providers), on-line video content (e.g., on-line television programs, movies, videos, etc.), advertising, games, music videos, promotional information (e.g., such as previews, trailers, etc.), etc. The information associated with the DRM may include license information that identifies terms and/or conditions for handling, promoting, distributing, and/or using the video assets and/or enables video assets to be encrypted and/or decrypted (e.g., based on keys associated with the license information).
The metadata may enable the video assets to be identified, managed, merchandized, and/or distributed to a user device. The metadata may, for example, include an identifier associated with a video asset (e.g., a number, a name, a title, etc.); a genre of the video asset (e.g., horror, comedy, adult, etc.); a category of the video asset (e.g., VOD asset, a PPV asset, etc.); a text description of the video asset; and/or information associated with artists associated with the video asset (e.g., names of actors, directors, producers, etc.). The metadata may also, or alternatively, include information associated with a type of video asset (e.g., a movie, music video, a game, etc.); a rating associated with the video asset (e.g., general audience (G), parental guidance (PG), PG-13, restricted (R), mature audience (MA), etc.); user reviews associated with the video asset; a price associated with the video asset (e.g., a sale price, a rental price per day, a pay-per-view price, etc.); and/or an availability period associated with the video asset (e.g., release dates, restriction periods, blackout periods, etc.). The metadata may also, or alternatively, include information associated with a storage location (e.g., a uniform resource locator (URL)) corresponding to the video asset; a format associated with the video asset (e.g., a resolution level, compression/decompression (CODEC) information, a screen size, a frame size, a frame refresh rate, a bit rate, etc.); and/or types of user devices supported by each format, etc.
FIG. 1 is a diagram of an example overview of a video provisioning system (VPS) in which systems and/or methods, described herein, may be implemented. As shown inFIG. 1, a VPS may receive (sometimes referred to as “ingest”) video content from one or more content providers. The VPS may connect to a collection of user devices associated with a user, such as, for example, a set top box, a computer device, a wireless handset (e.g., a smart phone, a personal digital assistant (PDA), etc.), and/or other types of user devices. The VPS may connect to the set top box via a television network (e.g., a cable television network, a satellite television network, a fiber optic television network, or some combination thereof). The VPS may connect to the computer device via a broad band network (e.g., via the Internet). The VPS may connect to the wireless handset via a wireless service provider network.
The VPS may process video assets, obtained from the ingested video content, in a manner that is supported (e.g., can be received, processed, stored, played and/or rendered for display) by each of the different user devices. For example, the VPS may generate copies of the video assets based on one or more video profiles. The video profiles may identify a type ofuser device210 for which the video asset is intended (e.g., a set top box, a computer device, a wireless handheld device, a gaming device, etc.), type of format (e.g., a bit rate, a resolution level, a frame refresh rate, a CODEC, etc.) supported byuser device210, an encryption technique, etc. The VPS may convert each of the copies of the video assets into different formats based on the video profiles. A copy of a video asset may be generated based on one video profile that is supported by the set top box. Another copy of the video asset may be generated based on another video profile that is supported by the computer device. A further copy of the video asset may be generated based on a further video profile that is supported by the wireless mobile handset and/or another type of user device. The VPS may store the copies of the video assets within a memory, storage device, and/or content distribution network associated with the VPS.
The VPS may process metadata obtained from the ingested video content and may publish the processed metadata to a catalog. The processed metadata may include cover art, descriptions of the video assets, prices (e.g., a purchase price, a rental price, a pay-per-view (PPV) price, a subscription price, etc.), etc. that are converted to formats that the user devices can process and/or display. The VPS may use the metadata to manage the availability of the video assets and may establish the one or more prices to ensure settlement costs (e.g., associated with content providers, etc.), operating costs, expenses, profit, etc. are covered by the prices. The catalog may establish bundled offerings (e.g., offerings that include one or more video assets, services, etc.) for a bundled price usually for a limited period of time.
The VPS may publish a portion of the processed metadata, that corresponds to available video assets, to a VPS store front. The VPS store front may be a portal (e.g., a webpage, user interface, an interactive media guide (IMG), etc.) that enables each of the different user devices to access a common list of titles, prices, etc. associated with the video assets that are available to be obtained by a user device.
A user device (e.g., the set top box) may access the store front and may select metadata associated with a video asset (e.g., a title, an identifier, etc.). The VPS may retrieve a copy of the video asset, associated with a format that is supported by the user device, and may transmit the copy of the video asset to the user device. The VPS store front may process payment information for the video asset (e.g., as a purchase, rental, pay-per-view, etc.) and/or may cause the selection of the video asset to be added to a bill associated with the user device. Another user device (e.g., the computer device), associated with a user of the user device, may access the store front and may select the video asset. The VPS may retrieve another copy of the video asset, associated with another format that is supported by the other user device, and may transmit the other copy of the video asset to the other user device at no additional cost. The VPS may also, or alternatively, maintain a bookmark for the video asset. The bookmark may identify a point at which the user device stopped playing the copy of the video asset before the copy of the video asset was finished playing on the user device. The VPS may use the bookmark to provide the other copy of the video asset, at another point that corresponds to the point at which the user device stopped the copy of the video asset, to the other user device. Thus, the other user device may resume playing of the video asset at the exact point where the playing of the video asset, by the user device, was stopped.
FIG. 2 is a diagram of anexample environment200 in which systems and/or methods, described herein, may be implemented. As shown inFIG. 2,environment200 may include a group of user devices210-1, . . . ,210-J (where J≧1) (hereinafter referred to collectively as “user devices210” and individually as “user device210”), a video provisioning system (VPS)220, a group of content providers230-1, . . . ,230-K (where K≧1) (hereinafter referred to collectively as “content providers230” and individually as “content provider230”), aservice provider network240, and anetwork250. The number of devices, systems, and/or networks, illustrated inFIG. 2, is provided for explanatory purposes only. In practice, there may be additional devices, systems, and/or networks; fewer devices, systems, and/or networks; different devices, systems, and/or networks; or differently arranged devices, systems, and/or networks than illustrated inFIG. 2.
Also, in some implementations, one or more of the devices ofenvironment200 may perform one or more functions described as being performed by another one or more of the devices ofenvironment200. Devices, systems, and/or networks ofenvironment200 may interconnect via wired connections, wireless connections, or a combination of wired and wireless connections.
User device210 may include a computation or communication device that is capable of communicating withservice provider network240. For example,user device210 may include a radiotelephone, a personal communications system (PCS) terminal (e.g., that may combine a cellular radiotelephone with data processing and data communications capabilities), a personal digital assistant (PDA) (e.g., that can include a radiotelephone, a pager, Internet/intranet access, etc.), a laptop computer, a tablet computer, a set top box, a digital video recorder (DVR), a personal gaming system, a smart phone, or another type of computation or communication device.
User device210 may host a media manager application (hereinafter referred to as “media application”) that enablesuser device210 to communicate withVPS220 and/or to perform certain operations to obtain video content fromVPS220. For example, the media application may enableuser device210 to access a portal (e.g., a website, a user interface, an IMG, etc.) associated withVPS220, to browse, search, select, and/or obtain a video asset in exchange for payment (e.g., as a purchase, rental, pay-per-view, subscription, etc.). The media application may manage information associated with DRM with respect to the video asset and may use license information, obtained fromVPS220, to decrypt the video asset for playing onuser device210. The media application may bookmark a location at whichuser device210 stopped playing the video asset and may transmit the bookmarked location toVPS220. Anotheruser device210, associated with the user, may obtain a copy of the video asset fromVPS220 and may resume playing the video asset based on the bookmarked location obtained fromVPS220.
The media application may permit a particular type of user device210 (e.g., a wireless mobile handset device associated with user device210-J) to obtain the video asset from another type of computer device210 (e.g., a computer device associated with user device210-3) via a side loading operation (e.g., via a wired and/or wireless connection) instead of, or in addition to, obtaining the video asset fromVPS220.
VPS220 may include one or more devices that gather, process, search, store, and/or provide information in a manner similar to that described herein.VPS220 may be capable of communicating withcontent providers230 vianetwork250 and/oruser devices210 viaservice provider network240.VPS220 may perform operations associated with video content ingestion, processing, and distribution for one or more types ofuser devices210, associated with a user, withinenvironment200.
Content provider230 may include any type or form of content provider. For example,content provider230 may include free television broadcast providers (e.g., local broadcast providers, such as NBC, CBS, ABC, and/or Fox), for-pay television broadcast providers (e.g., TNT, ESPN, HBO, Cinemax, CNN, etc.), and/or Internet-based content providers (e.g., Youtube, Vimeo, Netflix, Hulu, Veoh, etc.) that stream content from web sites and/or permit content to be downloaded (e.g., via progressive download, etc.).Content provider230 may include on-demand content providers (e.g., VOD, PPV, etc.). A media stream, as used herein, may refer to a stream of content that includes video content (e.g., a video stream), audio content (e.g., an audio stream), and/or textual content (e.g., a textual stream).
Service provider network240 may include one or more wired and/or wireless networks via whichuser devices210 communicate with and/or receive video content fromVPS220. For example,service provider network240 may include a cellular network, the Public Land Mobile Network (PLMN), a second generation (2G) network, a third generation (3G) network, a fourth generation (4G) network (e.g., a long term evolution (LTE) network), a fifth generation (5G) network, and/or another network. Additionally, or alternatively,service provider network240 may include a code division multiple access (CDMA) network, a global system for mobile communications (GSM) network, a general packet radio services (GPRS) network, or a combination of CDMA, GSM, and/or GPRS networks. Additionally, or alternatively,service provider network240 may include a wide area network (WAN), a metropolitan area network (MAN), an ad hoc network, an intranet, a fiber optic-based network (e.g., a fiber optic service (FiOS) network), a television network, and/or a combination of these or other types of networks.
Network250 may include one or more wired and/or wireless networks. For example,network250 may include a cellular network, the PLMN, a 2G network, a 3G network, a 4G network (e.g., an LTE network), a 5G network, and/or another network. Additionally, or alternatively,network250 may include a WAN, a MAN, a telephone network (e.g., the Public Switched Telephone Network (PSTN)), an ad hoc network, an intranet, the Internet, a fiber optic-based network, and/or a combination of these or other types of networks.
FIG. 3 is a diagram of example devices associated withVPS220.VPS220 may include anapplication server315, an interactive media guide (IMG)server320, a video on-demand (VOD)server325, a content delivery network (CDN)server330, acatalog server335, a video content management (VCM)server340, aprofile server345, and abilling server350. AlthoughFIG. 3 shows example devices ofVPS220, in other implementations,VPS220 may include fewer devices, additional devices, different devices, or differently arranged devices than depicted inFIG. 3. Additionally, or alternatively, one or more devices ofVPS220 may perform one or more tasks described as being performed by one or more other devices ofVPS220.
In the description below,VOD server325 is described as provisioning video services for a type of user device210 (i.e., a set top box) andCDN server330 is described as provisioning video services for another other type of user device210 (i.e., a computer device, a wireless mobile device, etc.) for explanatory purposes. In another implementation, the video services may be provisioned for the set top box and/or the other types of user devices in a number of ways. For example,VOD server325 and/orCDN server330 may be combined into a single device that provisions the video services for each type ofuser device210. In another example, the video services may be provisioned, for each type ofuser device210, by another device and/or network instead of, or in combination with,VOD server325 and/orCDN server330. Additionally,IMG server320 is described as providing an a store front portal (i.e., via an IMG), that can be accessed by the set top box, andapplication server315 is described as providing another store front portal (e.g., via a web page, a user interface, an interactive program guide, etc.), that can be accessed by the other types of user devices, for explanatory purposes. In another implementation, the store front portal may be provisioned for the set top box and/or the other types of user devices in a number of ways. For example,IMG server320 and/orapplication server315 may be combined into a single device that provisions the store front portal for each type ofuser device210. In another example, the store front portal may be provisioned, for each type ofuser device210, by another device and/or network instead of, or in combination with,IMG server320 and/orapplication server315. Thus, the examples below are provided for explanatory purposes only.
Application server315 may include one or more server devices, or other types of computation or communication devices, that gather, process, search, store, and/or provide information in a manner similar to that described herein.Application server315 may receive metadata that has been published bycatalog server335. The metadata may be associated with video assets that are to be made available and/or offered (e.g., for sale, rent, subscription, etc.) touser devices210.Application server315 may host a portal (e.g., a VPS store front), such as a private website (e.g., for subscribing user devices210), a public website (e.g., for non-subscribing user devices210), a user interface (UI) (e.g., that is accessible by wireless mobile handset-type user devices210, etc.), an interactive program guide (e.g., an IMG for set top box-type user devices210) and/or other types of user interfaces. The portal may enable single sign-on (SSO) portal access, to a user of one ormore user devices210, based on the same login credentials (e.g., username, password, personal identification number (PIN), etc.).Application server315 may publish all or a portion of the metadata to the portal that permits any ofuser devices210 to browse, perform searches, process payment, etc. for video assets based on the metadata that is published to the portal.
Application server315 may perform a session management operation that authenticatesuser device210 whenuser device210 attempts to access the store front portal.Application server315 may retrieve, fromprofile server345, information relating to a profile associated with a user of one ormore user devices210.Application server315 may obtain, from the information associated with the profile, information associated with a type ofuser device210, a video format (e.g., screen size, bit rate, frame size, a frame reset rate, etc.) supported byuser device210, parental controls specified by the user, a transaction history associated with the user, a bookmark associated with a video asset, etc.
Application server315 may permituser device210 to browse and/or search video assets provided byVPS220.Application server315 may permituser device210 to preview a trailer associated with a video asset and/or to select a video asset via the portal.Application server315 may store information associated with the selected video asset in a logical shopping cart and/or electronic invoice.Application server315 may recommend other video assets based on information associated with the transaction history and/or the parental controls.Application server315 may perform an electronic transaction that permitsuser device210 to purchase, rent, etc. a selected video asset (e.g., that was stored in the logical shopping cart), purchase a subscription for one or more video assets, bundles, etc.Application server315 may, in one example, process payment information obtained from the information associated with the profile.Application server315 may, in another example, send a notification, tobilling server350, that includes information associated with the transaction and which enablesbilling server350 to include a cost of the transaction in an account associated withuser device210.
Application server315 may send a notification to catalogserver335 that identifies the selected video content. The notification may include an indication of the type ofuser device210 and/or information associated with the video format thatuser device210 supports.Application server315 may send an indication, to profileserver345, that the transaction associated with the selected video content was executed. The indication may enableother user devices210, associated with the user, to obtain a copy of the selected video (e.g., in a video format supported by the other user devices210) content at no additional cost to the user.
IMG server320 may include one or more server devices, or other types of computation or communication devices, that gather, process, search, store, and/or provide information in a manner similar to that described herein.IMG server320 may, for example, process metadata, that has been published bycatalog server335 and/orVOD server325, in a manner similar to that described above (e.g., with respect to application server315). The metadata may be associated with video content that may be obtained by a particular type ofuser device210, such as a set topbox user device210.
IMG server320 may publish all or a portion of the metadata to an IMG user interface (UI) that the set topbox user device210, associated with the user, may render for display on a video display device.IMG server320 may permit the set topbox user device210 to access information associated with video assets, stored byVOD server325, and access the actual video assets.IMG server320 may, in another example implementation, communicate withapplication server315, which may permit the set topbox user device210 to access the metadata associated video assets that are stored inCDN server330.
IMG server320 may receive a selection of a video asset (e.g., via the IMG) and may communicate withapplication server315 in order to perform a session management operation, an electronic transaction, and/or a billing operation in a manner similar to that described above.IMG server320 may communicate withVOD server325 that causes the selected video asset to be transmitted (e.g., as a video stream) to the set topbox user device210.IMG server320 may send an indication, to profileserver345, that the transaction associated with the selected video content was executed. The indication may enableother user devices210, associated with the user, to obtain a copy of the selected video asset (e.g., in a video format supported by the other user devices210) at, for example, no additional cost to the user.
VOD server325 may include one or more server devices, or other types of computation or communication devices, that gather, process, search, store, and/or provide information in a manner similar to that described herein.VOD server325 may, for example, perform operations to receive, store, process, and/or distribute video content in a format that is supported by set topbox user devices210.
VOD server325 may receive published video assets and/or metadata fromVCM server340.VOD server325 may store the published video assets in a memory associated withVOD server325.VOD server325 may manage a catalog that includes metadata associated with video assets received fromVCM server340.VOD server325 may publish a portion of the metadata, associated with video assets (e.g., that are available for release and/or not subject to a blackout, etc.), toIMG server320 that enables the catalog to be accessed, via the IMG, by set topbox user devices210.
VOD server325 may respond to requests for selected video assets.VOD server325 may receive, fromIMG320, an indication that a set topbox user device210 has selected a video asset via the IMG.VOD server325 may, in response to the indication, forward information associated with the selected video asset, such as, for example, an identifier associated with the selected video asset (e.g., a title asset identifier (PAID)), information associated with content provider230 (e.g., a provider identifier (PID)) from which the selected video asset was obtained, etc., to the set topbox user device210 viaIMG server320.VOD server325 may receive, from the set topbox user device210, a request for the selected video asset and may transmit (e.g., via streaming video) the selected video asset to the set topbox user device210. The request may include the information associated with the selected video asset, the information associated withcontent provider230, etc. The selected video asset may be encrypted (e.g., based on CAS-based encryption techniques) as theVOD server325 is streaming the selected video asset to the set top box. The selected asset may be transmitted to the set top box in a manner that conforms to a particular QoS.
CDN server330 may include one or more server devices, or other types of computation or communication devices, that gather, process, search, store, and/or provide information in a manner similar to that described herein.CDN server330 may, for example, perform operations to receive, store, process, and/or distribute video content in a format that is supported by one or more types of user devices210 (e.g., a computer device, a wireless mobile device, a gaming device, etc.) other than, or in addition to, a set topbox user device210.CDN server330 may actually represent a content delivery network that includes multiple routing and/or storage devices.
CDN server330 may receive published video assets in multiple video formats fromVCM server340.CDN server330 may store the published video assets in a memory associated withCDN server330.CDN server330 may identify a respective storage location and/or URL for each format of each video asset that are stored within the memory and may send information associated with the storage locations and/or the URLs to catalogserver335.
CDN server330 may respond to requests for selected video assets.CDN server330 may receive, fromuser device210, a request for a video asset based on a URL associated with the request.CDN server330 may retrieve the video asset that is based on a particular video format that corresponds to the URL and may transmit the retrieved video asset touser device210.CDN server330 may transmit the video asset, that has been pre-encrypted by VCM server340 (e.g., based on DRM-based encryption techniques), touser device210. The selected asset may be transmitted (e.g., based on a progressive download protocol, adaptive bit rate streaming protocol, and/or some other protocol) touser device210 in a manner that conforms to another QoS (e.g., best efforts).
Catalog server335 may include one or more server devices, or other types of computation or communication devices, that gather, process, search, store, and/or provide information in a manner similar to that described herein.Catalog server335 may, for example, receive, fromVCM server340, published metadata associated with video content that has been published toVOD server325 and/orCDN server330.Catalog server335 may process and/or package the metadata in order to merchandize the video content to which the metadata corresponds.
Catalog server335 may, for example, obtain metadata for a video asset that includes, for the video asset, an identifier (e.g., a title, etc.), a description, a genre, casting information (e.g., actors, directors, producer, etc.), ratings, reviews, etc.Catalog server335 may merchandize the video asset by associating one or more prices to the metadata for the video asset. The prices may include a rental price (e.g., a price per single viewing, a price per day, per week, etc.), a sale price, a subscription price, etc.Catalog server335 may associate the metadata, for the video asset, with other metadata, for other video assets, to create a service bundle (e.g., that includes the video asset and one or more other video assets and/or services) and may associate another price for the sale, rental, subscription, etc. of the service bundle.Catalog server335 may identify a price to cover costs associated with the video asset (e.g., a settlement cost to be paid tocontent provider230 who provided the video asset, costs associated withservice provider network240, expected profit, etc.).
Catalog server335 may identify, from the metadata, information associated with the availability of the video asset based on a date on which the video asset is released, blacked out, etc.Catalog server335 may publish the metadata, associated with the merchandized video assets, to the store front portal associated withVPS application315.Catalog server335 may not publish metadata associated with video assets that are identified as not yet being available.Catalog server335 may publish other metadata associated with service bundles, promotions, recommendations, etc. to the store front portal.
Catalog server335 may associate information associated with DRM with the metadata associated with the merchandized assets. For example,catalog server335 may associate information associated with a license and/or a key (e.g., a private key, a public key, a CODEC, etc.) with the metadata for the merchandized video asset and may store the information associated with the license and/or the key in a memory associated withcatalog server335. The key may enable the video asset to be decrypted (e.g., by user device210) when the information associated with the license indicates that the video asset can be decrypted and/or is otherwise available.Catalog server335 may store the metadata for the video asset in the memory.Catalog server335 may include, with the metadata, a URL associated with a location at which the video asset is stored withinCDN server330.
VCM server340 may include one or more server devices, or other types of computation or communication devices, that gather, process, search, store, and/or provide information in a manner similar to that described herein.VCM server340 may, for example, communicate withcontent providers230 to ingest video content to be processed byVPS220.VCM server340 may ingest high quality video content (e.g., associated with a resolution level and/or bit rate that is greater than a threshold). The video content may include one or more video assets, metadata associated with the video assets, and/or information associated with DRM that corresponds to the video assets.
VCM server340 may process the high quality video content using one or more video profiles, in order to generate one or more copies of the video content. The video profiles may identify a type ofuser device210 for which the video asset is intended (e.g., a set top box, a computer device, a wireless handheld device, a gaming device, etc.), type of format supported by user device210 (e.g., a bit rate, a resolution level, a frame refresh rate, a CODEC, etc.), an encryption technique, etc. The copies may correspond to one or more formats that are supported by one or more types ofuser devices210.VCM server340 may, for example, use a video profile to generate a video format associated with a frame rate, a resolution level, a screen size, a frame refresh rate, a bit rate, etc. that enables user device210 (such as, for example, a smart phone) to receive, process, display, and/or store the video asset. In another example,VCM340 may use another video profile to generate another video format associated with another frame rate, another resolution level, a different screen size, another frame refresh rate, another bit rate, etc. that enables another user device210 (e.g., a computer device) to receive, process, display, and/or store the video asset.
VCM server340 may perform a quality control operation (e.g., by reducing periods of black screen, within the video assets, that are greater than a threshold, etc.) on the formatted video assets to ensure that the formatted video asset can be transmitted to and/or played onuser device210 at a QoS that is greater than a threshold.VCM server340 may encrypt the one or more formats and/or may publish the one or more formats, associated with the processed video assets, toVOD server325 and/orCDN server330.
VCM server340 may process the metadata associated with the video assets to ensure that the metadata is supported by different types ofuser devices210. For example,VCM server340 may adapt image sizes (e.g., associated with cover art of a video asset, etc.) to one or more sizes that can be supported by the different types ofuser devices210.VCM server340 may publish the processed metadata and/or the information associated with the DRM to catalogserver335.
Profile server345 may include one or more server devices, or other types of computation or communication devices, that gather, process, search, store, and/or provide information in a manner similar to that described herein.Profile server345 may, for example, store information associated with a profile that includes information regarding the user and eachuser device210 with which the user has registered withVPS220. For example, information associated with the profile may further include information associated with the user (e.g., a username, password, PIN, etc.), information associated with eachuser device210, such as a respective identifier (e.g., a mobile directory number (MDN), an Internet protocol (IP) address, a media access control (MAC) address, a CODEC identifier, etc.), and/or information associated with a type ofuser device210, such as a computer device (e.g., a lap top computer, a tablet computer, etc.), a wireless mobile device (e.g., a Droid®, a Blackberry®, an iPhone®, etc.), a set top box, a gaming device, etc.
The information associated with the profile may also include a respective user history (e.g., prior purchases, prior URLs accessed, prior downloads, etc.) associated with eachuser device210; information associated with services for whichuser device210 has subscribed; information associated with a location (e.g., an address, a zip code, a city, etc.) of the user and/oruser device210; information associated user account limits, restrictions, etc.; information associated with a language spoken by the user; etc.
The information associated with the profile may include a bookmark that identifies a location at whichuser device210 stopped a video asset. The bookmark may permit anotheruser device210, associated with the user, to resume playing the video asset (e.g., that has been downloaded on the other user device210) at the location at which the video asset was stopped byuser device210.
Billing server350 may include one or more server devices, or other types of computation or communication devices, that gather, process, search, store, and/or provide information in a manner similar to that described herein.Billing server350 may, for example, perform billing operations associated with accounts that correspond to eachuser device210 associated with a user. For example,billing server350 may receive an indication that user device210 (e.g., a computer device), associated with the user, downloaded a video asset (e.g., via a broadband service associated with service provider network240) as a result of a transaction via the store front portal.Billing server350 may generate billing information that identifies the video asset, the type of transaction (e.g., a purchase, rental, subscription, etc.), a price associated with the transaction, a time at which the transaction occurred, etc.Billing server350 may associate the billing information with an account that corresponds to the user and/oruser device210.Billing server350 may generate other billing information regarding another transaction with another user device210 (e.g., a set top box) with which the user is associated.Billing server350 may associate the other billing information with another account that corresponds to the user and/or theother user device210. In yet another example,billing server350 may process payment information (e.g., based on credit card information, debit card information, etc.) associated with a transaction with afurther user device210 to purchase, rent, subscribe to, etc. another video asset.
FIG. 4 is a diagram of example components of adevice400 that may correspond touser device210,content provider230,application server315,IMG server320,VOD server325,CDN server330,catalog server335,VCM server340,profile server345, and/orbilling server350. Alternatively, each ofuser device210,content provider230,application server315,IMG server320,VOD server325,CDN server330,catalog server335,VCM server340,profile server345, and/orbilling server350 may include one ormore devices400.Device400 may include abus410, aprocessor420, amemory430, aninput component440, anoutput component450, and acommunication interface460. AlthoughFIG. 4 shows example components ofdevice400, in other implementations,device400 may contain fewer components, additional components, different components, or differently arranged components than depicted inFIG. 4. For example,device400 may include one or more switch fabrics instead of, or in addition to,bus410. Additionally, or alternatively, one or more components ofdevice400 may perform one or more tasks described as being performed by one or more other components ofdevice400.
Bus410 may include a path that permits communication among the components ofdevice400.Processor420 may include a processor, microprocessor, or processing logic that may interpret and execute instructions.Memory430 may include any type of dynamic storage device that may store information and instructions, for execution byprocessor420, and/or any type of non-volatile storage device that may store information for use byprocessor420.
Input component440 may include a mechanism that permits a user to input information todevice400, such as a keyboard, a keypad, a button, a switch, etc.Output component450 may include a mechanism that outputs information to the user, such as a display, a speaker, one or more light emitting diodes (LEDs), etc.Communication interface460 may include any transceiver-like mechanism that enablesdevice400 to communicate with other devices and/or systems via wireless communications (e.g., radio frequency, infrared, and/or visual optics, etc.), wired communications (e.g., conductive wire, twisted pair cable, coaxial cable, transmission line, fiber optic cable, and/or waveguide, etc.), or a combination of wireless and wired communications. For example,communication interface460 may include mechanisms for communicating with another device or system via a network, such asservice provider network240 and/ornetwork250. In one alternative implementation,communication interface460 may be a logical component that includes input and output ports, input and output systems, and/or other input and output components that facilitate the transmission of data to other devices.
As will be described in detail below,device400 may perform certain operations relating to video content provisioning.Device400 may perform these operations in response toprocessor420 executing software instructions contained in a computer-readable medium, such asmemory430. A computer-readable medium may be defined as a non-transitory memory device. A memory device may include space within a single physical memory device or spread across multiple physical memory devices. The software instructions may be read intomemory430 from another computer-readable medium or from another device. The software instructions contained inmemory430 may causeprocessor420 to perform processes described herein. Alternatively, hardwired circuitry may be used in place of or in combination with software instructions to implement processes described herein. Thus, implementations described herein are not limited to any specific combination of hardware circuitry and software.
FIG. 5 is a diagram of anexample data structure500 that stores metadata associated with video content.Catalog server335 may perform an operation to merchandize published metadata received fromVCM server340 and may store the merchandized metadata indata structure500.Data structure500 may include a collection of fields, such as a video asset identifier (ID)field505, atitle field510, agenre field515, adescription field520, a cast information (info)field525, arating field530, aprice field535, anavailability field540, a data rights management (DRM)field545, acategory field550, areviews field555, acover art field560, astorage location field565, aformat field570, and abundle field575.Data structure500 includes fields505-575 for explanatory purposes. In practice,data structure500 may include additional fields, fewer fields, different fields, or differently arranged fields than are described with respect todata structure500.
Videoasset ID field505 may store a unique identifier (e.g., one or more sequences of characters, etc.) associated with a particular video asset and/or information associated with aparticular content provider230 from which the particular asset was received.Title field510 may store a title associated with the particular video asset.Genre field515 may store information associated with a genre that corresponds to the particular video asset.Description field520 may store a description associated with the particular video asset, such as a summary of a move when the particular video asset corresponds to the movie).Cast info field525 may store information associated with an actor, a director, a producer, and/or other individuals associated with the particular video asset.
Rating field530 may store information associated with a rating (e.g., general audience (G), parental guidance (PG), PG-13, restricted (R), mature audience (MA), etc.) that corresponds to the particular video asset.Price field535 may store information, associated with one or more prices, that corresponds to the particular video asset. For example, one price may correspond to a sale price for the particular video asset. Another price may correspond to a rental price (e.g., a cost per viewing, per day, per week, etc.). One or more further prices may correspond to a price associated with a bundle of video assets and/or services that include the particular video asset, etc.Availability field540 may store information associated with an availability of the particular asset. For example,availability field540 store information that identifies when the particular video asset may be released to users ofuser devices210 and when the particular asset is no longer available to users ofuser devices210. In another example,availability field540 may store information associated with a blackout period from a time when the particular asset is not to be released to another time when the particular asset may be released.
DRM field545 may store license information associated with the particular asset and/or one or more keys that are used to encrypt the particular video asset.Category field550 may store information associated with a category that corresponds to the particular video asset. The information, associated with the category, may include, for example, an indication that the particular video asset is a movie, a television program, a video game, etc. Reviews field555 may include information associated with reviews, by users associated withVPS220 and possibly users not associated withVPS220, of the particular video asset.Cover art field560 may include one or more images associated with the particular asset.
Storage location field565 may store information associated with a location, within a memory associated withVOD server325 and/orCDN server330, that the particular video asset is stored.Format field570 may store information associated with a video format that corresponds to the particular video asset. For example,format field570 may store information associated with a bit rate, a screen size, a resolution level, a frame rate, a frame refresh rate, etc. that corresponds to the particular video asset.Bundle field575 may store information, associated with a bundle, that identifies other services and/or other video assets, obtained from the ingested video content, that are associated with the particular video content. The bundle may be associated with a price identified inprice field535.
FIG. 6 is a flow chart of anexample process600 for ingesting and processing video content withinVPS220. In one example implementation,process600 may be performed by one or more devices associated withVPS220. In another example implementation, some or all ofprocess600 may be performed by a system and/or device, or collection of systems and/or devices separate from, or in combination with the devices associated withVPS220.
As shown inFIG. 6,process600 may include obtaining video content from content provider230 (block605) and processing a video asset and/or metadata obtained from the video content (block610). For example, VPS220 (e.g., using VCM server340) may communicate with one ormore content providers230 to receive high quality video content thatVPS220 is to use to provide common video services to one or more types ofuser devices210 associated with a user. The high quality video content may include one or more video assets associated with a resolution level that is greater than a threshold. The high quality video content may also include respective metadata associated with each of the video assets and/or information associated with DRM (hereinafter referred to as “DRM information”) for each of the video assets.
VCM server340 may use the high quality video content to generate copies of the video assets associated with one or more other resolution levels that are approximately equal to or less than the resolution level associated with the high quality video content. For example,VCM server340 may generate a copy of a video asset and may perform an operation to transcode the video asset into a format that can be supported (e.g., received, processed, stored, played, etc.) by a type of user device210 (e.g., a computer device) and/or some other format (e.g., a high definition format, etc.). The format of the transcoded video asset may be associated with a frame size, frame refresh rate, resolution level, a bit rate, etc. Additionally, or alternatively, the format may be associated with a level of compression that corresponds to the type of user device210 (e.g., based on a CODEC that corresponds to user device210).VCM server340 may obtain, from the video content, DRM information associated with the video asset.VCM server340 may use the DRM information to generate a key and/or license information associated with each format and/or copy of the video asset.VCM server340 may use a respective key to encrypt each copy of the video asset.VCM server340 may generate other encrypted copies of the video asset based on other formats that are supported by other types ofuser devices210.
VCM server340 may process metadata associated with the video asset. For example,VPS220 obtain metadata, associated with the video asset, from the video content.VCM server340 may format images (e.g., cover art), descriptions of the video asset, etc. associated with the video asset in a manner that is supported byuser device210.VCM server340 may generate other encrypted copies of the metadata based on other formats that are supported by other types ofuser devices210.VCM server340 may process other metadata associated with other video assets obtained from the video content.
As also shown inFIG. 6,process600 may include publishing the processed video asset, processed metadata, and/or DRM information associated with the video asset (block615). For example, VPS220 (e.g., using VCM server340) may publish copies of the video asset in one or more memories associated withVPS220. The copies may include a high definition copy, a standard definition copy, a movie trailer copy, an advertising copy, video game copies, etc. In one example,VCM server340 may transmit a portion of the copies of the video asset, that are based on a format that is supported by a set topbox user device210, toVOD server325.VOD server325 may receive the portion of the copies of the video asset and may store the portion of the copies of the video asset in a memory associated withVOD server325.
In another example,VCM server340 may transmit another portion of the copies of the video asset toCDN server330. The other portion of the copies of the video assets may be based on one or more formats that are supported by types of user devices (e.g., a computer device, a wireless mobile device, a portable gaming device, etc.) other than, or in addition to, the set topbox user device210.CDN server330 may receive the other portion of the copies of the video asset and may store the other portion of the copies of the video asset in a memory associated withCDN server330.CDN server330 may transmit, toVCM server340, information associated with a respective storage location (e.g., respective URLs, etc.), within the memory associated withCDN server330, that each of the other portion of the copies of the video asset are stored.
VCM server340 may transmit the processed metadata and/or copies of the key and/or license information, associated with the video asset, toVOD server325 and/orcatalog server335. The processed metadata may include the information associated with one or more storage locations withinCDN server330. For example,VCM server340 may send, toVOD server325, a portion of the processed metadata that corresponds to the copies of the video assets that are formatted for the set topbox user device210.VCM server340 may send the portion of the processed metadata and/or another portion of the processed metadata, which is formatted for the type ofuser device210 other than the set topbox user device210, to catalogserver335.
As further shown inFIG. 6,process600 may include merchandizing the published metadata and/or storing the merchandized metadata and/or DRM information in a catalog (block620). For example, VPS220 (e.g., using catalog server335) may perform an operation to merchandize the published metadata received fromVCM server340.Catalog server335 may, for example, generate a price structure associated with the video asset. The price structure may include one or more prices (e.g., a sale price, a rental price, a subscription price, etc.) associated with distributing the video asset touser device210.Catalog server335 may determine the one or more prices in order to cover operating expenses (e.g., associated with processing, etc.), profit (e.g., as a result of the transaction), a settlement cost (e.g., obtained from the published metadata) associated withcontent provider230 from which the video asset was received, and/or other costs.
In another example,catalog server335 may combine two or more video assets and/or services to generate bundles of services and/or video assets.Catalog server335 may generate a price associated with the bundle.Catalog server335 may associate, with the published metadata, information associated with advertising and/or promotional information (e.g., discounts on prices, subscriptions, etc. for a period of time, during a particular season, etc.).
Catalog server335 may store the merchandized metadata, the DRM information, and/or the information associated with the storage locations (e.g., URLs associated with CDN server330) associated with the video asset in a data structure (e.g.,data structure500 ofFIG. 5). In a manner similar to that described above,VOD server325 may merchandize the portion of the published metadata (e.g., received from VCM server340) and may store the portion of the merchandized metadata in another data structure.
In another example implementation,catalog server335 may merchandize published metadata associated with free video assets (e.g., associated with free broadcast video assets, free on-line video assets, etc). For example,catalog server335 may combine two or more free video assets and/or services to generate bundles of free video assets and/or services.Catalog server335 may associated, with the published metadata, the information associated with advertising and/or the promotional information.Catalog server335 may not, in this example, generate a price structure associated with the free video assets nor assign one or more prices to the free video assets and/or bundles of free video assets.
As yet further shown inFIG. 6,process600 may include publishing the merchandized metadata to an electronic store front (block625). For example, VPS220 (e.g., using catalog server335) may publish the merchandized metadata to an electronic store front associated with VPS220 (e.g., that is hosted by application server315).Catalog server335 may, for example, obtain information, associated with the availability of the video asset, from the metadata.Catalog server335 may determine whether the video asset is available (e.g., can be released to the public) based on the information associated with the availability.Catalog server335 may transmit all or a portion of the merchandized metadata toapplication server315 when the information, associated with the availability, indicates that the video asset is available.Catalog server335 may not transmit the merchandized metadata when the information, associated with the availability, indicates that the video asset is not available. In an example implementation,catalog server335 may transmit information that identifies a future time when the video asset will be available.
Application server315 may receive all or the portion of the merchandized metadata and may publish the received merchandized metadata to the electronic store front, such as, for example, a webpage that can be accessed by a type of user device210 (e.g., a computer device, a wireless mobile device, etc.) via service provider network240 (e.g., a broadband network, such as the Internet, etc.). In another example, the electronic store front may include a data structure from which information is transmitted, via a service provider network240 (e.g., a wireless telephone network, etc.), to another type of user device210 (e.g., a wireless mobile device) for display via a user interface.
In another example,VOD server325 may, in a manner similar to that described above, transmit all or a portion of the merchandized metadata, associated with the video asset that is formatted for the set topbox user device210, toIMG server320.IMG server320 may receive the merchandized metadata and may publish the merchandized metadata to another electronic store front, associated withVPS220. The other electronic store front may include, for example, an interactive program guide via which a set topbox user device210 can view and/or select the video asset.
FIG. 7 is a flow chart of anexample process700 for registeringuser device210 withVPS220. In one example implementation,process700 may be performed by one or more devices associated withVPS220. In another example implementation, some or all ofprocess700 may be performed by a system and/or device, or collection of systems and/or devices separate from, or in combination with the devices associated withVPS220.
As shown inFIG. 7,process700 may include receiving a registration request from a user device (block705) and sending a client application to the user device (block710). For example,application server315 may receive, fromuser device210, a request to register withVPS220. The request may include information associated withuser device210, such as, for example, a device identifier (e.g., an MDN, a CODEC, etc.), a network address (e.g., a MAC address, an IP address, etc.), information associated with a user of user device210 (e.g., a username, a password, a PIN, etc.), etc. The request may also include information relating to anotheruser device210, associated with the user.
Application server315 may retrieve, from a memory associated withapplication server315, a client application and may send the client application touser device210.User device210 may receive the client application and may install and/or execute the client application.User device210 may use the client application to registeruser device210 withapplication server315. In another example implementation, the user may registeruser device210 in a manner that does not include installing the client application. For example,user device210 may access a web page (e.g., via the Internet), hosted byapplication server315, and may send the information, associated withuser device210, toapplication server315, via the web page.
As also shown inFIG. 7,process700 may include receiving registration information from the user device (block715). For example, the user ofuser device210 may enter registration information into a user interface display, provided by the client application, onuser device210.User device210 may receive the registration information and may transmit the registration information toapplication server315.Application server315 may receive the registration information. The registration information may include information associated with a type of user device210 (e.g., a set top box, a computer device, a wireless mobile device, a tablet computer, etc.) associated with the user. The registration information may include information associated with respective parental controls, preferred video content genres, etc. associated withuser device210.
As further shown inFIG. 7,process700 may include establishing a profile, associated with a user of the user device, based on the information associated with the user device and/or the registration information (block720). For example,application server315 may transmit the information associated withuser device210 and/or the registration information to profileserver345.Profile server345 may receive the information associated withuser device210 and/or the registration information and may create a profile associated the user ofuser device210.Profile server345 may communicate withbilling server350 to obtain information associated with one or more accounts that correspond touser device210 and/or anotheruser device210 with which the user is associated.Profile server345 may associate the information, associated withuser device210, the registration, and/or the accounts, with the profile and may store information associated with the profile in a memory associated withprofile server345.
As yet further shown inFIG. 7,process700 may include transmitting confirmation information to the user device as a result of establishing the profile (block725). For example,application server315 may receive, fromprofile server345, an indication that the profile, associated with the user ofuser device210, has been established.Application server210 may transmit a request, to catalogserver340, for unique confirmation information (e.g., a private key, a public key, a digital certificate, a confirmation number, etc.) that corresponds touser device210.Catalog server340 may receive the request and may send the confirmation information toapplication server315.Application server315 may receive the confirmation information and may transmit the confirmation information touser device210.Application server210 may obtain other unique confirmation information, corresponding toother user devices210 associated with the user, and may transmit the other unique confirmation information to theother user devices210. In an example implementation,application server315 may transmit the client application, touser device210, after a successful registration ofuser device210.
The user may register one or moreother user devices210 in a manner similar to that described above. The other user device(s)210 may be the same type or a different type ofuser device210 relative touser device210. In this way, a user may provide information regarding a number ofuser devices210 with which the user is associated.
FIG. 8 is a flow chart of anexample process800 for provisioning common video services to various types ofuser devices210. In one example implementation,process800 may be performed by one or more devices associated withVPS220. In another example implementation, some or all ofprocess800 may be performed by a system and/or device, or collection of systems and/or devices separate from, or in combination with the devices associated withVPS220.
As shown inFIG. 8,process800 may include receiving an access request from a user device and authenticating the user device in response to the request (block805). For example,application server315 may receive an access request fromuser device210. The access request may include information associated with the user (e.g., username, password, PIN, etc.) and/or user device210 (e.g., a device identifier, a network address, etc.), and/or confirmation information associated with user device210 (e.g., a private key, a public key, a digital certificate, a confirmation number, etc.).Application server315 may retrieve information associated with the user and/oruser device210 from a profile, associated with the user, stored in a memory associated withprofile server345. Additionally, or alternatively,application server315 may retrieve confirmation information, associated withuser device210, fromcatalog server335 and/or from the profile associated with the user.
Application server315 may compare the information associated with the user and/oruser device210, received with the access request, to the retrieved information associated with the user and/oruser device210.Application server315 may, based on the comparison, determine whether the received information, associated with the user and/oruser device210, matches the retrieved information associated with the user and/oruser device210.Application server315 may not authenticateuser device210 based on a determination that the received information does not match the retrieved information.Application server315 may determine that the received information matches the retrieved information and may compare confirmation information, obtained from the access request, to the retrieved confirmation information to determine whether the confirmation information matches the retrieved confirmation information.Application server315 may not authenticateuser device210 based on a determination that the confirmation information does not match the retrieved confirmation information.Application server315 may authenticateuser device210 based on a determination that the confirmation information matches the retrieved confirmation information.
As also shown inFIG. 8,process800 may include retrieving a profile and/or a transaction history associated with the user and/or retrieving metadata associated with a catalog (block810). For example,application server315 may, as a result of authenticatinguser device210, retrieve information associated with a profile, that corresponds touser device210, fromprofile server345. Also, or alternatively,application server315 may retrieve, from a memory associated withapplication server315, information associated with a transaction history that corresponds to the user. The information associated with the transaction history may identify metadata associated with a video asset (e.g., a title of the video asset; a date of the prior purchase, rental, subscription, etc.; an indication that identifies to whichuser device210 the video asset was downloaded; etc.) that was downloaded, byuser device210 and/or theother user device210, at a prior point in time.Application server315 may retrieve metadata associated with a catalog from a memory associated withapplication server315 and/or fromcatalog server335.
Additionally, or alternatively,application server315 may obtain, from the profile, information associated with a video profile that identifies a type ofuser device210, a format supported byuser device210, encryption techniques supported byuser device210, etc.Application server315 may use the information, associated with the video profile, to identify particular copies of a selected asset to transmit touser device210.
As further shown inFIG. 8,process800 may include sending the metadata associated with the catalog and/or the information associated with the transaction history (block815). For example,application server315 may send, touser device210, the metadata associated with the catalog and/or the information associated with the transaction history.User device210 may receive the metadata and/or the information associated with the transaction history and a client application, hosted byuser device210, may present the metadata and/or the information associated with the transaction history for display via a user interface. The user interface may be associated with an electronic store front associated withVPS220 and may permit the user to interact with the user interface to select a video asset to be downloaded touser device210.
As yet further shown inFIG. 8,process800 may include receiving selection of a video asset (block820). For example, the user may select, via the user interface, metadata associated with a video asset.User device210 may send the selection of the video asset toapplication server315 andapplication server315 may receive the selection of the video asset.Application server315 may determine whether the selected video asset was downloaded at a prior time (e.g., by anotheruser device210 associated with the user) based on the information associated with the transaction history.
As still further shown inFIG. 8, if the selected video asset has been previously downloaded (block825-YES) and if the license of the downloaded asset is valid (block830-YES), then process800 may include sending a URL and/or a bookmark associated with the selected asset (block835). For example,application server315 may determine that the information associated with the transaction history includes an indication that the select video asset was downloaded to anotheruser device210, associated with the user, at a prior time as a result of a purchase, rental, subscription, etc.Application server315 may, based on the determination that the selected asset was previously downloaded, communicate withcatalog server335 and/orVOD server325 to determine whether a license, associated with the previously downloaded video asset, is still valid.Catalog server335 and/orVOD server325 may retrieve information associated with the license and may determine that a term, during which the license is to remain valid, has not expired. In another example,application server315 may determine that the previously downloaded video asset was transmitted to theother user device210 as a result of a purchase, which may indicate that the license is still valid.
Based on the determination that the selected asset was previously downloaded to theother user device210 and/or that the license, associated with the previously downloaded asset, is valid,application server315 may, in one example, obtain a URL from metadata associated with the selected asset.Application server315 may use information, associated with the video profile that corresponds touser device210, to select a URL associated with the video content. The URL may be associated with a storage location from which the selected asset, that is formatted in a manner that can be supported by user device210 (e.g., based on the video profile), can be retrieved byuser device210. In another example,application server315 may retrieve, fromVOD server325 and based on the video profile, information associated with the selected video asset (e.g., a PAID) and/or content provider230 (e.g., PID) from which the selected video asset was obtained. Also, or alternatively,application server315 may retrieve a bookmark, associated with the selected asset, fromprofile server345 that enablesuser device210 to resume playing the selected asset at a location at which theother user device210 stopped playing the downloaded asset at a previous point in time.Application server315 may transmit the URL, the information associated with the video asset and/orcontent provider230, and/or the bookmark touser device210.
As also shown inFIG. 8,process800 may include receiving a request for the selected content and sending the selected content in response to the request (block840). For example,user device210 may receive the URL, the information associated with the selected video asset and/orcontent provider230, and/or the bookmark. In one example, the client application may use the URL to send a request for the selected video asset fromCDN server330.CDN server330 may receive the request and may, in response to the request, retrieve a copy of the selected asset from a memory associated withCDN server330 based on the URL. In another example,CDN server330 may determine that the selected video asset is not stored in the memory and may retrieve a copy of the selected video asset fromcontent provider230. The selected asset, received fromcontent provider230 may, in a manner similar to that described above (e.g., with respect toFIG. 6), be processed, byVCM server340, to create a format that is supported byuser device210.CDN server330 may send the copy of the selected asset to user device210 (e.g., via progressive download, adaptive bit rate streaming, etc.) in a manner that conforms to a level of QoS.
In a further example, the client application may use the information associated with the selected video asset (e.g., a PAID) and/or content provider230 (e.g., a PID) to send a request for the selected video asset fromVOD server325.VOD server325 may receive the request and may, for example, retrieve a copy of the selected asset from a memory associated with VOD server3325 based on the information associated with the selected video asset and/orcontent provider230. In another example,CDN server330 may determine that the selected video asset is not stored in the memory associated withVOD server325 and may retrieve a copy of the selected video asset fromcontent provider230. The selected asset, retrieved fromcontent provider230, may, in a manner similar to that described above (e.g., with respect toFIG. 6), be processed, byVCM server340, to create a format that is supported by user device210 (e.g., a set top box user device210).VOD server325 may send the copy of the selected asset to user device210 (e.g., via streaming video, etc.) in a manner that conforms to another level of QoS.
As further shown inFIG. 8,process800 may include receiving a request for a license associated with the selected asset and sending the license in response to the request (block845). For example,user device210 may receive the selected video asset and the client application may send a request, to catalogserver335, for a license associated with the selected asset.Catalog server335 may receive the request and may retrieve the license from a memory associated withcatalog server335.Catalog server335 may transmit the license touser device210.User device210 may receive the license and the client application may use the license to decrypt the selected asset. The client application may automatically, or in response to an instruction from the user, play the decrypted video asset onuser device210.
As yet further shown inFIG. 8, if the selected video asset has not been previously downloaded (block825-NO), or if a license associated with the downloaded asset is not valid (block830-NO),process800 may include performing an electronic transaction associated with the selected video asset (block850). For example,application server315 may determine that the information associated with the transaction history does not include an indication that the select video asset was downloaded to anotheruser device210, associated with the user, at the prior time. In another example,application server315 may determine that the information associated with the transaction history includes an indication that the select video asset was downloaded to theother user device210 at the prior time (e.g., as a result of a rental, a subscription, etc.). Based on the determination that selected video asset was previously downloaded,application server315 may interact withcatalog server335 and/orVOD server325 to determine whether a license, associated with the downloaded video asset, is still valid.Catalog server335 and/orVOD server325 may retrieve information associated with the license and may determine that a term, during which the license is to remain valid, has expired.
Application server315 may, based on the determination that the selected video asset was not previously downloaded and/or that a license, associated with the previously downloaded video asset, has expired, perform an electronic transaction associated with the selected asset. For example,application server315 may send an indication, tobilling server350, indicating that information regarding an electronic transaction is to be associated with an account corresponding touser device210. The indication may include a value associated with a price for the selected video asset, information associated withuser device210, information associated with the selected video asset (e.g., an identifier associated with the selected video asset), and/or and information associated with content provider230 (e.g., an identifier associated content provider230) from which the selected video asset was received. The price may correspond to a type of electronic transaction, such as a purchase, rental, subscription, bundle, etc.
Billing server350 may receive the indication and may store the information regarding the electronic transaction in a data structure relating to the account.Billing server350 may perform settlement operation by storing a portion of the price in another data structure relating to another account associated withcontent provider230.
Application server315 may send an electronic receipt, touser device210, that includes the information associated with the electronic transaction.Application server315 may update the transaction history, associated withuser device210, based on the information associated with the electronic transaction.Application server210 may communicate withuser device210 to transmit the selected video asset and/or a license, associated with the selected video asset, in a manner similar to that described above (e.g., with respect to blocks835-845).
FIGS. 9A-9C are diagrams of different user devices900-920, that are displaying a video asset as a result of interacting with theVPS220 to obtain the video asset according to an implementation described herein. For example, as shown inFIG. 9A, aset top box900 may present a video asset for display on a display device905 associated with settop box900. A user, associated with settop box900, may instruct set top box900 (e.g., by pressing a button, or series of buttons, on settop box900 and/or on a remote control associated with set top box900) to stop playing the video asset. Settop box900 may, in response to the instruction, stop playing the video asset. Settop box900 may store a bookmark (e.g., a pointer) that corresponds to a first point at which settop box900 stopped playing the video asset and may send the bookmark toapplication server315 and/orprofile server345 to be stored in a user profile associated with the user.
As shown inFIG. 9B, acomputer device910, associated with the user, may receive the bookmark fromapplication server315 and/orprofile server345. The user may instruct computer device910 (e.g., by pressing a key, a series of keys, a touch screen, etc. on the computer device) to resume playing the video asset using a copy of the video asset that is stored oncomputer device910.Computer device910 may receive the instruction and may use the bookmark to resume playing the video asset at the point where settop box900 stopped playing the video asset. As some later point in time, the user may stop the playing of the video asset oncomputer device910. In response,computer device910 may send another bookmark, toapplication server315 and/orprofile server345, that corresponds to a second point at whichcomputer device910 stopped playing the copy of the video asset.
As shown inFIG. 9C, a wirelessmobile handset920, associated with the user, may receive the bookmark and/or the other bookmark fromapplication server315 and/orprofile server345. The user may instruct wireless mobile handset920 (e.g., by pressing a button, a series of buttons, a touch screen, etc. on wireless mobile handset920) to resume playing the video asset on wirelessmobile handset920, using another copy of the video asset that is stored on wirelessmobile handset920. Wirelessmobile handset920 may receive the instruction and may use the bookmark, or the other bookmark, to resume playing the video asset (e.g., the other copy of the video asset) in a manner similar to that described above. Thus, in the examples above, a user may pause the playing of the video asset on settop box900 and resume the playing of the video asset oncomputer device910 or wirelessmobile handset920.
In addition, while the previous example described a situation where the video asset is first played on settop box900, systems and/or methods, described herein, are not so limited. In fact, the user may interact withVPS220 to initiate playing of the video asset on any of these user devices, stop the playing of the video asset, and resume the playing of the video asset on the same or any other one of these user devices.
Systems and/or methods, described herein, may enable video content to be processed in a manner that enables the video content to be provisioned to various types of user devices, associated with a user, over various types of networks. The systems and/or methods may enable the video content to be provisioned, to each type of user device, for a uniform price and/or with respect to the same availability and/or accessibility. The systems and/or methods may enable copies of the video content to be formatted in a manner that is supported by each type of user device. The systems and/or methods may enable a catalog to store metadata associated with video content that can be accessed by each type of user device. The systems and/or methods may enable a transaction history to store information regarding each transaction, associated with each type of user device, to obtain video content. The systems and/or methods may enable each type of user device to use uniform login credentials to access a store front portal via which video content is obtained from the catalog. The systems and/or methods may permit video content to be played on one of the user devices, paused, and resumed on another one of the user devices.
The foregoing description provides illustration and description, but is not intended to be exhaustive or to limit the implementations to the precise form disclosed. Modifications and variations are possible in light of the above teachings or may be acquired from practice of the embodiments.
While series of blocks have been described with regard toFIGS. 6-8, the order of the blocks may be modified in other implementations. Further, non-dependent blocks may be performed in parallel.
It will be apparent that systems and/or methods, as described above, may be implemented in many different forms of software, firmware, and hardware in the implementations illustrated in the figures. The actual software code or specialized control hardware used to implement these systems and methods is not limiting of the embodiments. Thus, the operation and behavior of the systems and methods were described without reference to the specific software code—it being understood that software and control hardware can be designed to implement the systems and methods based on the description herein.
Further, certain portions, described above, may be implemented as a component that performs one or more functions. A component, as used herein, may include hardware, such as a processor, an ASIC, or a FPGA, or a combination of hardware and software (e.g., a processor executing software).
It should be emphasized that the terms “comprises”/“comprising” when used in this specification are taken to specify the presence of stated features, integers, steps or components but does not preclude the presence or addition of one or more other features, integers, steps, components or groups thereof.
Even though particular combinations of features are recited in the claims and/or disclosed in the specification, these combinations are not intended to limit the disclosure of the embodiments. In fact, many of these features may be combined in ways not specifically recited in the claims and/or disclosed in the specification. Although each dependent claim listed below may directly depend on only one other claim, the disclosure of the embodiments includes each dependent claim in combination with every other claim in the claim set.
No element, act, or instruction used in the present application should be construed as critical or essential to the embodiments unless explicitly described as such. Also, as used herein, the article “a” is intended to include one or more items. Where only one item is intended, the term “one” or similar language is used. Further, the phrase “based on” is intended to mean “based, at least in part, on” unless explicitly stated otherwise.