Watching television and movie programs can be a social experience. People often spend significant time and energy sharing thoughts and opinions related to television and movie programs. Typically, if a person hears of a potentially interesting program, that person can find that program on her own to view later. However, it can be difficult to remember the programs one hears about, and finding such programs may be laborious and time consuming.
This Summary is provided to introduce a selection of concepts in a simplified form that are further described below in the Detailed Description. This Summary is not intended to identify key features or essential features of the claimed subject matter, nor is it intended to be used to limit the scope of the claimed subject matter. Furthermore, the claimed subject matter is not limited to implementations that solve any or all disadvantages noted in any part of this disclosure.
According to one aspect of this disclosure, a request is received to add content items indicated by a third-party web feed to a recording schedule. One or more of the content items indicated by the third-party web feed may be automatically added to the recording schedule. The recording schedule may indicate content items to be recorded by an electronic content recording device from a content provider.
a schematically shows a recording schedule before modification according to the method of
b schematically shows the recording schedule of
a schematically shows the recording schedule of
b schematically shows the recording schedule of
The present description is related to automatically recording content items, such as television shows, movies, or webcasts, for example. In particular, the present description is related to methods for choosing content items to be added to a recording schedule. As one example, a user may subscribe to a web feed so that all content items identified in the web feed are added to a recording schedule and automatically recorded. The web feed may be published by virtually anyone. The web feed may be updated periodically, so that new content items added to the web feed are also automatically recorded.
Content recording devices 130 are configured to receive and record content items 150 from content providers 160. A content item 150 may include virtually any audio-visual content, such as a television show, a webcast, a radio show, streaming video, or a movie, for example. The content items 150 may be delivered to content recording devices 130 via any suitable transmission mechanism, including but not limited to over-the-air broadcasts, cable broadcasts, satellite broadcasts, and/or Internet broadcasts. Content providers 160 may provide such content items for free, as part of a subscription package, on an ‘on demand’ basis, or via virtually any other distribution model. It should be appreciated that the content items may be received from more than one content provider. In some embodiments, a content item 150 may include a pointer that indicates a location where an item of audio-visual content is located. The pointers may be accessed at time of playback to retrieve the content on an “on-demand” basis.
Recording schedules 110 may be used to indicate to content recording devices 130 which content items 150 are to be recorded. Recording schedules 110 may be associated with a particular content recording device 130 and/or a particular user profile. Thus, it is possible to add a content item 150 to a recording schedule 110 so that a particular content recording device 130 will record that content item, or so that more than one content recording device 130 associated with the same user profile will record that content item. It is to be appreciated that recording schedules 110 may contain an indication of content items 150 to be recorded rather than actual content items. Thus, a content item is “added” to a recording schedule by adding an indicator of that content item.
Recording schedule service 100 may maintain, create, and/or modify recording schedules 110. Recording schedule service 100 may have read and/or write access to recording schedules for a plurality of devices and/or users, or may have read and/or write access to recording schedules for only the device on which it is located. Recording information from a first user may be used to create, modify and/or maintain a recording schedule of a second user.
Social networking services 30 may include one or more services that are capable of recognizing a virtual identity of a user (e.g., a user profile) and the social connections of that user (e.g., friend profiles). Social networking services 30 may be utilized by recording schedule service 100. For example, the recording schedule may receive and/or share user information with one or more social networking service via an application programming interface (API) or other suitable mechanism. Social networking service 30 may share virtually any user information, such as recording/viewing habits of a user or a user's social graph, for example. In some embodiments, social networking service 30 may be configured to show which content items a user wishes to share with others. In some embodiments, recording schedule service 100 may be combined with one or more social networking services.
In some embodiments, content items 150 may be automatically added to a recording schedule 110 according to a web feed. The web feed may be accessible via web feed sources 180, or via Social networking services 30, for example. Web feed sources may include virtually any network accessible source capable of syndicating information related to content items. World Wide Web sites and services, e-mail services, social networking services, and data transfer services are nonlimiting examples of web feed sources 180.
The term third-party web feed is used herein to describe a web feed that is published by an entity other than the user. The third party may be virtually anyone without departing from the scope of this disclosure.
Web feeds may be received from virtually anywhere, such as a web log (blog), a social networking service, a personal website, or in an e-mail, for example. In some embodiments, web feeds are received from a ‘web feed store’. Such a web feed store may provide a common place from which web feeds can be received. A web feed store may have a plurality of web feeds indexed and cataloged for easy searching by a user. The web feed store may show featured web feeds. A web feed store may organize web feeds by popularity, genre, content, or web feed author, for example. The user may utilize a user interface to request web feeds organized via the web feed store.
The request to add content items indicated by the third-party web feed may be received via network 80 of
In response to receiving the request, the method 200 may include, at 220, retrieving a first instance of the third-party web feed. A first instance of the third-party web feed may be retrieved using any suitable mechanism for retrieving web feeds. An example first instance 300 of a third-party web feed is shown at
The third-party web feed may be retrieved from the same location (e.g. a web site) that sent the request. However, it should be appreciated that the third-party web feed may be retrieved from a location other than the location that sent the request. For example, a hyperlink on a first webpage may provide access to a web feed provided at a second webpage. The request may be made via the first webpage, and the corresponding web feed may be retrieved from the second webpage. The request may include instructions for locating the third-party web feed.
Turning back to
A tool may be utilized to publish web feeds in the predefined format. For example, an online computing application may provide a user with a list of content items that they may wish to add to a web feed. The user may use the online computing application to select a set of content items. The application may then publish a preformatted web feed indicating those content items.
In some embodiments, the third-party web feed is designed for a purpose other than indicating content items to be added to a recording schedule, such as for human reading. However, the web feed may still be parsed to determine content items to be added to a recording schedule. For example, an author may publish a blog about her favorite TV shows, and parsing may include extracting information from the blog to determine which content items she recommends. As one example, if a person types positive words about a particular content item, it may be determined that that person recommends that content item. As such, method 200 may be utilized even if a universal identification code is not included in the web feed and/or if the web feed is not preformatted in a purpose specific manner for the sole purpose of signaling which content items should be added to a recording schedule.
If the identification code is not included in the web feed itself, other information may be utilized to find identification codes. Such information may include a genre, start time, an associated content provider, a content item length, and/or virtually any other extracted information or combination of extracted information that may be used to identify the content item. For example, parsing may include determining, from a web page, that a content item is titled ‘News Hour’ and starts at 5:30 EST on channel ABC. This information may be checked against a database of start times, titles, and/or channels to find a corresponding identification code.
The method 200 may include, at 240, automatically adding one or more of the content items indicated by the first instance of the third-party web feed to the recording schedule. Turning to
In some embodiments, not all of the content items indicated by the third-party web feed are added to a recording schedule. Adding may include adding a subset of the indicated content items. The subset may include preferred content items, and exclude non-preferred content items. Users may indicate which content items they prefer via settings, for example. One setting may indicate that content items with particular ratings (e.g. R, NC-17, TV-MA) are non-preferred content items. Thus, any content items with those ratings will not be added to a recording schedule. Other settings may indicate that high-definition content items are preferred, or content items in a particular language are preferred, for example. Virtually any preferences may be used to customize the types of content items that are to be added to a recording schedule. Similarly, virtually any preferences may be used to customize the types of content items that will not be added to a recording schedule, regardless of what the web feed recommends. As such, preferences may allow the third-party web feed to be used as a list of candidate content items to be added, rather than an inflexible specification of certain content items.
In some embodiments, content items are only added to recording schedules if a content provider is available to provide that content item. For example, if a user does not have a subscription to a particular movie content provider, content items that are provided by that movie content provider are not added to that user's recording schedule unless they can be obtained from another provider.
Web feeds may be updated at virtually any interval. Specifically, new content items may be added to a web feed, and previously recommended content items may be removed from a web feed. It may be desirable to add the new content items to a recording schedule each time the web feed is updated. In this way, a user may subscribe to a web feed such that content items added to the web feed are automatically added to that user's recording schedule after the updated web feed is retrieved. Content items that have been previously recorded may be kept for later viewing, even if such items are removed from the web feed.
In some embodiments, if a new content item that is added to the user's recording schedule is a currently airing content item, e.g., a television program that is airing at the time the content item is added, the currently airing content item may not be immediately added, but a complete re-broadcast of the content item may be added. In another embodiment, if the new content item is currently airing, the remainder of the content item (e.g., the portion of the content item that has yet to air) can be immediately added but replaced with a complete re-broadcast of the content item when the re-broadcast becomes available at a later time.
Turning back to
Turning back to
The method 200 may include, at 270, automatically adding one or more of the content items indicated by the second instance of the third-party web feed to the recording schedule. Turning to
In some embodiments, the above described methods and processes may be tied to a computing system including one or more computers. In particular, the methods and processes described herein may be implemented as a computer application, computer service, computer API, computer library, and/or other computer program product.
Computing system 700 includes a logic subsystem 702 and a data-holding subsystem 704. Computing system 700 may optionally include a display subsystem 706, communication subsystem 708, and/or other components not shown in
Logic subsystem 702 may include one or more physical devices configured to execute one or more instructions. For example, the logic subsystem may be configured to execute one or more instructions that are part of one or more applications, services, programs, routines, libraries, objects, components, data structures, or other logical constructs. Such instructions may be implemented to perform a task, implement a data type, transform the state of one or more devices, or otherwise arrive at a desired result.
The logic subsystem may include one or more processors that are configured to execute software instructions. Additionally or alternatively, the logic subsystem may include one or more hardware or firmware logic machines configured to execute hardware or firmware instructions. Processors of the logic subsystem may be single core or multicore, and the programs executed thereon may be configured for parallel or distributed processing. The logic subsystem may optionally include individual components that are distributed throughout two or more devices, which may be remotely located and/or configured for coordinated processing. One or more aspects of the logic subsystem may be virtualized and executed by remotely accessible networked computing devices configured in a cloud computing configuration.
Data-holding subsystem 704 may include one or more physical, non-transitory, devices configured to hold data and/or instructions executable by the logic subsystem to implement the herein described methods and processes. When such methods and processes are implemented, the state of data-holding subsystem 704 may be transformed (e.g., to hold different data).
Data-holding subsystem 704 may include removable media and/or built-in devices. Data-holding subsystem 704 may include optical memory devices (e.g., CD, DVD, HD-DVD, Blu-Ray Disc, etc.), semiconductor memory devices (e.g., RAM, EPROM, EEPROM, etc.) and/or magnetic memory devices (e.g., hard disk drive, floppy disk drive, tape drive, MRAM, etc.), among others. Data-holding subsystem 704 may include devices with one or more of the following characteristics: volatile, nonvolatile, dynamic, static, read/write, read-only, random access, sequential access, location addressable, file addressable, and content addressable. In some embodiments, logic subsystem 702 and data-holding subsystem 704 may be integrated into one or more common devices, such as an application specific integrated circuit or a system on a chip.
It is to be appreciated that data-holding subsystem 704 includes one or more physical, non-transitory devices. In contrast, in some embodiments aspects of the instructions described herein may be propagated in a transitory fashion by a pure signal (e.g., an electromagnetic signal, an optical signal, etc.) that is not held by a physical device for at least a finite duration. Furthermore, data and/or other forms of information pertaining to the present disclosure may be propagated by a pure signal.
The terms “module,” “program,” and “engine” may be used to describe an aspect of computing system 700 that is implemented to perform one or more particular functions. In some cases, such a module, program, or engine may be instantiated via logic subsystem 702 executing instructions held by data-holding subsystem 704. It is to be understood that different modules, programs, and/or engines may be instantiated from the same application, service, code block, object, library, routine, API, function, etc. Likewise, the same module, program, and/or engine may be instantiated by different applications, services, code blocks, objects, routines, APIs, functions, etc. The terms “module,” “program,” and “engine” are meant to encompass individual or groups of executable files, data files, libraries, drivers, scripts, database records, etc.
It is to be appreciated that a “service”, as used herein, may be an application program executable across multiple user sessions and available to one or more system components, programs, and/or other services. In some implementations, a service may run on a server responsive to a request from a client.
When included, display subsystem 706 may be used to present a visual representation of data held by data-holding subsystem 704. As the herein described methods and processes change the data held by the data-holding subsystem, and thus transform the state of the data-holding subsystem, the state of display subsystem 706 may likewise be transformed to visually represent changes in the underlying data. Display subsystem 706 may include one or more display devices utilizing virtually any type of technology. Such display devices may be combined with logic subsystem 702 and/or data-holding subsystem 704 in a shared enclosure, or such display devices may be peripheral display devices.
When included, communication subsystem 708 may be configured to communicatively couple computing system 700 with one or more other computing devices. Communication subsystem 708 may include wired and/or wireless communication devices compatible with one or more different communication protocols. As nonlimiting examples, the communication subsystem may be configured for communication via a wireless telephone network, a wireless local area network, a wired local area network, a wireless wide area network, a wired wide area network, etc. In some embodiments, the communication subsystem may allow computing system 700 to send and/or receive messages to and/or from other devices via a network such as the Internet.
It is to be understood that the configurations and/or approaches described herein are exemplary in nature, and that these specific embodiments or examples are not to be considered in a limiting sense, because numerous variations are possible. The specific routines or methods described herein may represent one or more of any number of processing strategies. As such, various acts illustrated may be performed in the sequence illustrated, in other sequences, in parallel, or in some cases omitted. Likewise, the order of the above-described processes may be changed.
The subject matter of the present disclosure includes all novel and nonobvious combinations and subcombinations of the various processes, systems and configurations, and other features, functions, acts, and/or properties disclosed herein, as well as any and all equivalents thereof.