Video link discovery in a video-link aggregation system

Information

  • Patent Grant
  • 9161072
  • Patent Number
    9,161,072
  • Date Filed
    Friday, February 21, 2014
    10 years ago
  • Date Issued
    Tuesday, October 13, 2015
    9 years ago
Abstract
Methods and systems for presentation of content through an interface to provide personalized video feeds to a user. A selective feed is generated by combining a first service feed and a second service feed. Additional feed items are generated by searching content objects for additional links to videos.
Description
BACKGROUND

This application relates in general to creation of, and presentation of, selective digital service feeds and, but not by way of limitation, to creation of, and presentation of, selective digital service feeds comprising primarily or exclusively video and video-related content.


There are many services available to users through the use of the Internet, including websites, other Internet sites, publishing services, media services, data services, information services, electronic commerce services, electronic transaction services, payment services, software and content download services, communications services, other remotely accessed sites and services, and other digital sites, centers, destinations, or systems; whether shared or dedicated, public or private, institutional or personal, fixed or mobile, wired or wireless; and whether accessed through a browser, mini-browser, embedded browser, application, other software program, or other interface. Examples of popular Internet services in widespread use today include, but are not limited to: content websites that may include primarily video or audio content, primarily text and graphics (including photographs) content, or a mixture of several content and media types, including websites such as CNN.com™, Politico.com™, HuffingtonPost.com™, NYTimes.com™, and others; video publishing websites, such as YouTube™, DailyMotion™, Metacafe™, and others; entertainment content services, such as Netflix™, Pandora™, Hulu™, Zynga™; social networking sites, such as Facebook™, Twitter™, and MySpace™; and many others.


Digital content provided by Internet services can include any of, all of, or any combination of proprietary content, exclusively or non-exclusively licensed content, syndicated content, member-provided content, user-provided content, system-generated content, messages or emails from one or more users to one or more other users, social content, comments, ratings, embedded links to other digital content, tags, maps, locations, time and date content, user identifiers, source identifiers, and other related or unrelated content. The hyperlinked structure of the World Wide Web and the Hypertext Transfer Protocol, the advanced capabilities of modern web browsers, the ability (built into an increasing range of modern user devices) to execute programs, the flexibility inherent in application software developed and delivered to user devices, the rise of common platforms that support both broadly deployed and more narrowly focused functionality across many discrete Internet services, and the ability to stream data and content from, to, and among users and Internet services in realtime or near realtime, individually and collectively have increasingly allowed Internet services to create content and data feeds that are simple, complex, or compound, and include as many, or as few, diverse components as is desired.


A user may use more than one Internet service, sequentially, concurrently, or simultaneously; may use different Internet services with different degrees of interest, intensity, frequency, sophistication, depth of knowledge of the service, and/or skill; and may vary her selection and mix of services from time to time, or over time, according to tasks and interests, because of the Internet service choices of others, according to her choice of device at the moment or over time, or for other reasons.


Users increasingly use devices other than, or in addition to, browser-equipped personal computers to access Internet services, including SMS-capable and other mobile phones, web-equipped mobile phones, smartphones, Internet-ready television sets, digital set-top boxes, DVD and Blu-Ray players, digital video recorders, videogame consoles, tablets such as the iPad™, and other devices. These devices exhibit a wide array of form factors, memory, storage, displays, output interfaces, user input interfaces and devices, and other peripherals and components. Users may have preferences and habits that influence or determine the choice of a device for a given purpose, for a given time and place, or for a given mode of use, because of, or regardless of, such device aspects.


There are numerous standards available for use in browsers, browser-equipped personal computers, and the numerous other devices used by users to access Internet services. These standards are sometimes deployed in mass-production products before being finally determined, at different times for different products, in heterogeneous technical implementations, and with varying degrees of completeness; they often evolve over time, at times discontinuously; and they fluctuate in popularity. As a result, devices are not always technically uniform, and not all such standards are supported by all device and component providers. For example, some browsers support HTML5 and some browsers do not; different HTML5-ready browsers support different media standards (e.g., when rendering content identified with the <video> tag some support H.264, whereas others support WebM™ or another video codec); some devices support Adobe™ Flash™, while some devices do not (e.g., Apple™ iPhone™ and iPad™ do not); or, one set-top box may support MPEG2 video but not H.264 video, whereas another may support both and a third may support just H.264. In addition, there are diverse content security schemes deployed across devices, including proprietary encryption schemes, consortia-based encryption schemes, and other encryption schemes; and there are diverse rights-management and user-authentication schemes, including consortia-based schemes, such as UltraViolet™, and vendor-proprietary schemes, such as Disney™ Keychest™ and Apple™ iTunes™.


As the variety and capability of devices available to users have increased and as user behavior has evolved in response to new devices and capabilities, content company strategies have also evolved. Aspects of evolving content company strategies include: blocking some or all devices from accessing some or all content; modifying or customizing technical versions of content available on some or all devices; modifying or customizing editorial versions of content available on some or all devices; modifying or customizing advertising, sponsorships, or other promotional aspects presented in conjunction with content accessed via some or all devices; making content available on different devices with different access prices, terms, user rights and privileges, and other conditions; and many other strategy variations. Content company strategies and aspects of strategies commonly vary from device to device, from content company to content company on a given device, and from one geography to another. For example, in the United States, ABC™/Disney™ makes most ABC™ network television shows available on broadcast television with commercials, online with commercials, and online for download via Apple™ iTunes™ without commercials but at a charge per episode, but blocks the availability of these shows on GoogleTV™; while at the same time, it makes most Disney™ network television shows available on broadcast television without commercials, online with commercials, and online for download via iTunes™ without commercials but at a charge per episode, and blocks the availability of these shows on GoogleTV™.


Most Internet services operate legitimately. Legitimate Internet services may properly obtain rights to content through licensing, syndication, fair use, government permission, or other legitimate methods, or may produce content of their own, or may pursue a combination of these and other methods. Some Internet services, however, are less concerned about obtaining proper rights to content, and may rely on their users to have obtained rights, may rely on actual or alleged legal safe harbor provisions, or may pay little or no attention to rights questions. The problem of intellectual property piracy has increased as user Internet use has increased.


SUMMARY

In one embodiment, methods and systems for presentation of content through an interface to provide personalized video feeds to a user are disclosed. A user's interaction with Internet services automatically generates services preferences indicating a media entity. That media entity is correlated to one or more feed items or feeds. A video feed is harvested from feed items or feeds gathered at various Internet services.


In various embodiments, methods and systems for presentation of content through an interface to provide personalized video feeds to a user are disclosed. A video feed is harvested from feed items gathered at various Internet sources. The feed items are filtered to remove those that do not link to video content. A criteria specified by the user is used to filter the feed items.


In another embodiment, a video processing system for providing personalized video content feeds to users from the Internet is disclosed. The video processing system comprises a service feed, an aggregation system and a selective video feed. The service feed is acquired from an internet service, which is accessible from the Internet. The service feed comprises a plurality of feed items arranged in the first service feed serially. The service feed includes the plurality of feed items that each include a first separately resolvable link to another content item available from the Internet. The aggregation system that is configured to: receive the service feed; remove from the service feed a plurality of non-video feed items that do not link to video content available from the Internet; and remove from the service feed a plurality of filtered feed items that either meet or do not meet a predetermined criteria. The selective video feed comprises a plurality of remaining feed items that exclude the plurality of non-video feed items and the plurality of filtered feed items.


In yet another embodiment, a method for providing personalized video content feeds to users from the Internet is disclosed. A service feed is acquired, including a plurality of feed items arranged serially that link to content objects, which are available from the Internet with an Internet service. The service feed is filtered to remove from the service feed a plurality of non-video feed items that do not link to video content available from the Internet. The service feed is filtered to remove from the service feed a plurality of filtered feed items that either meet or do not meet a predetermined criteria. A selective feed is sent to a user that comprises a plurality of remaining feed items that exclude the plurality of non-video feed items and the plurality of filtered feed items.


In still another embodiment, a method for providing personalized video feeds to a user gathered from the Internet. Selection of a content feed is received, including a plurality of feed items arranged serially that link to content objects, which are available from the Internet from an Internet service. A criteria is received from a user that specifies filtering of the service. Those feed items of the service feed that do not link to video objects available over the Internet are removed from the service feed. Those feed items of the service feed that are specified by the criteria are removed from the service feed. A subset of the plurality of feed items are sent toward the user, where the subset is defined by the two preceding sentences.


Further areas of applicability of the present disclosure will become apparent from the detailed description provided hereinafter. It should be understood that the detailed description and specific examples, while indicating various embodiments, are intended for purposes of illustration only and are not intended to necessarily limit the scope of the disclosure.


Methods and systems for presentation of content through an interface to provide personalized video feeds to a user are disclosed. The video feeds are harvested from feed items gathered at various Internet sources. Those video feeds are referenced by icons or channels that rotate about or scroll or move within a first carousel. Video feeds are arranged in columns and/or rows that rotate about or scroll or move within a second carousel. Movement in one carousel causes movement in the other in a synchronous manner even though the movement may be at different speeds.


In another embodiment, a content presentation interface for providing personalized video feeds to users from a variety of Internet sources is disclosed. The content presentation interface comprises a first carousel comprising a number of pointers to a number of video feeds and a second carousel comprising rows or columns. Each of the number of video feeds is acquired from Internet services accessible with the Internet. Each of the number of video feeds includes a number of feed items. Each of the number of feed items is defined by a separately resolvable universal resource indicator (URI) to another content item available with the Internet. The second carousel comprises rows or columns that each reference a number feed items of the number of video feeds. The first carousel and second carousel rotate as a function of movement of the other.


In yet another embodiment, a method for presenting content through an interface to provide personalized video feeds to a user from various Internet sources is disclosed. A number of pointers to a number of video feeds is produced, where each video feed is acquired from Internet services accessible with the Internet and includes a number of feed items. Each video feed item is defined by a separately resolvable universal resource indicator (URI) to another content item available with the Internet. The number of pointers are programmed to display along a first carousel in the interface for the user. A number of video feeds that each reference a number of feed items are produced, causing arrangement of the number of video feeds in a second carousel. Each of the number of video feeds is arranged in a column or row. The first carousel and second carousel are programmed to rotate as a function of movement of the other.


In still another embodiment, a method for presenting content through an interface to provide personalized video feeds to a user from various Internet sources is disclosed. A number of pointers to a number of video feeds is provided. Each video feed is acquired from Internet services accessible with the Internet and includes a number of feed items. Each video feed item is defined by a separately resolvable universal resource indicator (URI) to another content item available with the Internet. The number of pointers is displayed along a first carousel in the interface for the user. A number of video feeds that each reference a number of feed items is determined. The number of video feeds are arranged in a second carousel, where each of the number of video feeds is arranged in a column or row. The first carousel and second carousel are rotated as a function of movement of the other.


Further areas of applicability of the present disclosure will become apparent from the detailed description provided hereinafter. It should be understood that the detailed description and specific examples, while indicating various embodiments, are intended for purposes of illustration only and are not intended to necessarily limit the scope of the disclosure.





BRIEF DESCRIPTION OF THE DRAWINGS

The present disclosure is described in conjunction with the appended figures:



FIG. 1 depicts a block diagram of an embodiment of an Internet system that aggregates two or more Internet service feeds;



FIGS. 2A, 2B, and 2C depict diagrams of embodiments of a feed processing flow;



FIGS. 3A and 3B depict block diagrams of embodiments of an aggregation system;



FIGS. 4A and 4B depict diagrams of embodiments that illustrate the logical flow of feeds;



FIG. 5 illustrates a flowchart of an embodiment of a process for gathering feed items;



FIG. 6 illustrates a flowchart of an embodiment of a process for processing a service feed;



FIGS. 7A, 7B, and 7C depict an embodiment of a user interface to the aggregation system;



FIGS. 8A, 8B, and 8C depict another embodiment of the user interface to the aggregation system;



FIG. 9 depicts an embodiment of a first pane of the user interface to the aggregation system;



FIGS. 10A, 10B, and 10C depict another embodiment of the user interface to the aggregation system;



FIG. 11A depicts yet another embodiment of the user interface to the aggregation system;



FIG. 11B depicts a block diagram of an embodiment of a video-content subscription system;



FIGS. 11C and 11D illustrate flowcharts of embodiments of processes for providing contracted genre modes;



FIG. 11E illustrates a flowchart of an embodiment of a process for reporting data derived from a multi-feed based system;



FIG. 12 depicts still another embodiment of the user interface to the aggregation system;



FIG. 13 illustrates a flowchart of an embodiment of a process for creation of an Auto Feed;



FIG. 14A depicts a block diagram of an embodiment of a notification management system interfaced with components of the aggregation system;



FIG. 14B depicts a block diagram of a notification engine interfaced with a user-interface notification center and a platform-level notification center;



FIG. 14C depicts an embodiment of the user interface to the aggregation system that includes a notification pane;



FIG. 15 illustrates a flowchart of an embodiment of the notification management system correlating a notification request to a feed item; and



FIG. 16 illustrates a flowchart of another embodiment of the notification management system handling a notification request.





In the appended figures, similar components and/or features may have the same reference label. Further, various components of the same type may be distinguished by following the reference label by a dash and a second label that distinguishes among the similar components. If only the first reference label is used in the specification, the description is applicable to any one of the similar components having the same first reference label irrespective of the second reference label.


DETAILED DESCRIPTION

The ensuing description provides preferred exemplary embodiment(s) only, and is not intended to limit the scope, applicability or configuration of the disclosure. Rather, the ensuing description of the preferred exemplary embodiment(s) will provide those skilled in the art with an enabling description for implementing a preferred exemplary embodiment. It is understood that various changes may be made in the function and arrangement of elements without departing from the spirit and scope as set forth in the appended claims.


Referring first to FIGS. 1 and 2A, a primary embodiment is shown that includes an Internet system 100 that aggregates two or more Internet service feeds 206. FIG. 1 shows a block diagram of the Internet system 100 without showing the Internet or other network that couples the various blocks together. FIG. 2A shows a functional diagram of various feeds and filters that operate to convert service feeds 206 into selective feeds 220. Only a single selective feed 220 and a single user 116 is shown, but it is to be understood that there are many different selective feeds 220 for many different users 116 supported by the Internet system 100. An aggregation system 108 selectively and optionally narrows the aggregate of the service feeds 206 into one or more selective feeds 220, and presents the selective feed(s) 220 to a user 116 viewing with a rendering system/device/agent 112 at a user location 120. In this disclosure, the singular and plural terms “selective feed” and “selective feeds” are used interchangeably for convenience, clarity and readability, to mean one or more selective feeds 220, and should be interpreted accordingly. In the primary embodiment, a selective feed 220 is created from the aggregate of service feeds 206 by including only items from the aggregate of service feeds 206 which are, contain, refer to, or otherwise indicate, video content. This creates a condensed and video-specific selective feed 220 from the aggregate of service feeds 206. The Internet services 126 are generally operated by third parties (e.g., websites, Facebook™, YouTube™, Twitter™).


In other embodiments, a selective feed 220 is created by selecting (meaning to include and/or exclude) items which are, contain, refer to, or otherwise indicate one or more media types other than video or in addition to video; is created from a single Internet service feed 206 by selecting items which are, contain, refer to, or otherwise indicate video content; is created from a single Internet service feed 206 by selecting items which are, contain, refer to, or otherwise indicate one or more media types other than video or in addition to video; is created from a single Internet service feed 206 or from an aggregate of more than one Internet service feed 206 by selectively narrowing the single service feed 206 or aggregate of service feeds (i.e., an aggregate feed 204) by selecting items which are, contain, refer to, or otherwise indicate video content and based on one or more other criteria, including user, Internet service, user within Internet service, source, user within source, user ratings or rankings, user comments, keywords, tags, user tags, topic, category, language, other content indicators, length, format and/or codec, fidelity (such as standard definition, 720p, 1080p), time and/or date, device 112, or location 120; is created from a single service feed 206 or from an aggregate feed 204 by selectively narrowing the single feed 206 or aggregate feed 204 by selecting items which are, contain, refer to, or otherwise indicate one or more media types other than video or in addition to video, and based on one or more other criteria, including user, Internet service, user within Internet service, source, user within source, user ratings or rankings, user comments, keywords, tags, user tags, topic, category, language, other content indicators, length, format and/or codec, fidelity (such as standard definition, 720p, 1080p), time and/or date, device 112, or location 120 respectively, optionally through use of a first-stage filter 212 and/or a second-stage filter 216; or is created from a single service feed 206 or from an aggregate feed 204 by selectively narrowing the single service feed 206 or aggregate feed 204 by selecting items based on other similar or dissimilar criteria respectively, optionally through use of a first-stage filter 212 and/or a second-stage filter 216.


In the primary embodiment, the user configures which service feeds 206 will be aggregated as the basis for her selective feed(s) 220 and supplies whatever credentials are required in order to enable the aggregation system 108 to collect the configured service feeds 206. The selective feed 220 is produced from one or more service feeds 206 with optional first-stage filtering 212 that are collected into an aggregate feed 204 that may have an optional second-stage filter 216. Some feeds may be specific to her, for example her Twitter™ service feed 206 (which, although it may comprise the Twitter™ messages [“tweets”] of many Twitter™ users, will contain only those of the feeds that she follows) or her email service feed 206 (inbound email messages); in many such cases, the ability of the aggregation system 108 to access these service feeds 206 will depend on the user 116 supplying her credentials, typically her username and password, for the aggregation system 108 to use. In the primary embodiment, a user 116 can provide access credentials for other Internet services 126, either permanently (allowing the aggregation system 108 to store the credentials) or temporarily (the aggregation system 108 uses the credentials for the current session but does not store them, or stores them temporarily), and can revoke access, in effect disconnecting a given service feed 206 from the aggregation system 108. Other service feeds 206 may be freely available service feeds 206, such as published service feeds 206, for example a YouTube™ channel or the RSS feed of a website; service feeds 206 such as these often will not require any credentials. In the primary embodiment, these service feeds 206 can be configured or de-configured, even though there may be no access credentials required to access, or to revoke, these service feeds 206. Other service feeds 206 may be created by, or made available to, the aggregation system 108 by querying one or more websites or other publicly available or privately available Internet content sources or services 126.



FIG. 2B shows an embodiment where an aggregate feed 204 developed by one user 116 is made available to other users of the aggregation system 108 just like any other service feed 206. A user 116 can subscribe to another user's aggregate feed 204 as a video-sharing feed 224, so long as the original user has not marked the aggregate feed 204 as private. A user 116 can suggest their aggregate feed 204 or a video-sharing feed 224 to other users. In the example of FIG. 2B, one user has configured an aggregate feed 204 from a number of service feeds 206 with optional first-stage filtering. The aggregate feed 204 is mirrored to a video sharing feed 224 that is available to another user that optionally specifies a second-stage filter 216 to create a selective feed 220.


In the primary embodiment, a user 116 creates a username and password, or uses other credentials she has created (such as her Facebook™ username and password, via Facebook™ Connect) or that are available to her (such as her employer-assigned username, password, or other credentials, or such as system-created credentials, including credentials that precisely, loosely, approximately, or otherwise identify her or associate her with one or more services or resources), to access and control her selective feed 220 (configure and reconfigure the service feeds 206 that will be aggregated to create her selective feed 220, connect and configure rendering systems 112, and perform other control and configuration functions). In other embodiments, a user 116 can use other access credentials or methods, or is required to use no access credentials or methods, to access or to control some or all aspects of her selective feed 220 through the aggregation system 108.


As described previously in the primary embodiment, some service feeds 206 (which will be included in the aggregation of feeds as the basis for a user's selective feed 220), such as Twitter™ service feeds 206 or service feeds 206 from email accounts, may consist, in part or entirely, of items that can be identified to particular users 116 or other sub-entities within the overall service feed 206; for example, a Twitter™ service feed 206 comprises messages that can normally be identified with one or more particular Twitter™ users, Twitter™ accounts, and/or Twitter™ lists. In addition, feed items from a service feed 206 (which will be included in the aggregate feed 204 as the basis for a user's selective feed 220), may have other optional or mandatory attributes; for example, messages in an email service feed 206 may have a priority flag, a spam flag, or one or more other attributes. In an optional aspect of the preferred embodiment, a user 116 can further configure a specific service feed 206 (which will be aggregated as the basis for a user's selective feed 220) to include or exclude feed items from aggregation into the basis for the user's selective feed 220, based on the user 116, account, list, entity, or other attribute or characteristic of items in the Internet service feed 206.


In the primary embodiment, the aggregation system 108 is implemented as an Internet service and supports two or more users. Accordingly, in the primary embodiment the aggregation system 108 collects service feeds 206 as configured for each one of the multiple users 116 of the aggregation system 108, and selectively narrows the aggregate feeds 204 and/or video sharing feeds 224 into one or more selective feeds 220 for each user 116. In other embodiments, the system 100 is implemented as an Internet aggregation system 108 that supports only one user 116; is implemented as software deployed on one or more user devices or rendering systems 112 and supporting one or more users 116 of those devices 112; is implemented as software deployed in an Internet network supporting one or more users 116; or is implemented as a feature of another Internet service 126.


With reference to FIG. 2C, another embodiment of a diagram showing creation of a selective feed 220. In this embodiment, the selective feed 220 is a function of a video-sharing feed 224 formulated by another user and an aggregate feed 204 designed by the user 116. A second-stage filter takes the aggregate feed 204 and may select in, or filter out, certain parts of the aggregate feed 204 based upon a criteria specified by the user. The selective feed 220 could include any number of video-sharing feeds 224 for optionally combining with an aggregate feed 204. The user could avoid specifying an aggregate feed 204 in other examples solely relying upon one or more video-sharing feeds 224 to create her selective feed 220.


In the primary embodiment, some service feeds 206 configured for aggregation may overlap (e.g., if a popular celebrity is followed on Twitter™ by more than one user of the system); in this case, the service feed 206 configured for aggregation is only obtained once, and can be simultaneously, synchronously, asynchronously, or discontinuously used (or re-used) as the basis for the other users 116 who also have configured that feed for aggregation. In this fashion, the aggregation system 108 of the primary embodiment is efficient in its use of resources and avoids duplicate or repetitive processing. Reuse may even be used where credentials are used by one user for a service feed 206 that will be used for another user.


In other embodiments, some or all of any overlapping service feeds 206 configured for aggregation are obtained separately for some or all users 116 that have configured that service feed 206 for inclusion in their aggregate feeds 204. Where credentials are required, service feeds 206 could be kept separate and retrieved in duplicate from the Internet service 126. Separation could be done in some embodiments regardless of whether credentials are required.


In the primary embodiment, optionally some service feeds 206 that a user 116 configures for aggregation can be provided by the Internet service 126 individually for that user 116, so that some or all users 116 who have configured that service feed 206 for inclusion in their aggregate feed 204 receive personalized, partially personalized, unique, partially unique, or potentially unique selective feeds 220 that are specific to them or that are created expressly for them. In the primary embodiment, the user 116 is identified via a user ID associated with the aggregate feed 204 that she provides to the aggregation system 108, and that the aggregation system 108 passes to the Internet service 126 of the service feed 206 to be aggregated, enabling that Internet service 126 to configure and return, or otherwise send, a service feed 206 customized for, or attributable in whole or in part to, that specific user 116. In this optional aspect of the primary embodiment, the user 116 also provides a password, so that the user 116 can be authenticated to the Internet service 126. In another embodiment, a password is not required.


In other embodiments, the user 116 is identified by any of, all of, or any combination of: a user ID, with or without a password; association with a specific device 112, device identifier, MAC address, or other attribute or data element associated with a device 112; association with a network address, network identifier, telephone number, or other attribute or data element associated with a network; association with content, a set of content, a pattern of content viewed, a content access characteristic, a set of content access characteristics, or a pattern of content access characteristics; association with a stored identifier, such as an Internet browser cookie, a Flash™ local shared object, or a similar file; association with a derived identifier, such as a device fingerprint comprising one or more aspects of the user's device 112 and/or device software; association with biometric information; association with a usage pattern or characteristics; or association through another method of identifying a user or a user's association with a feed provider.


In the primary embodiment, while most service feeds 206 configured for aggregation are service feeds, additional feeds can optionally be configured for aggregation that provide data, sound, music, or other information, rather than video content, to the aggregation system 108. This data or other information can be used by the aggregation system 108 in the optional creation of algorithmically created, filtered, or alternatively sequenced feeds; for example, a data feed of a user's fantasy sports league rosters could be configured for aggregation, and the aggregation system 108 could then use the information it receives about the user's fantasy sports roster as a basis for identifying items for, filtering items contained within in, or alternatively sequencing the items in, the user's selective feed 220; in this optional embodiment, if and as the provided data or other information changed, the content of, filtering of, or sequencing of the items contained in the selective feed 220 would change accordingly.


Referring next to FIG. 3A, a block diagram of an embodiment of an aggregation system 108-1 is shown. There are various stores of information that may be in a database, file system, and/or memory data structure, specifically, service feed items 308, aggregate feed items 328, selective feed items 332, service credentials 314, and feed filters 324. The information in the various stores can be combined into a single store or divided between a number of stores at a number of locations. The aggregation system 108-1 includes application software running on one or more hardware servers in one or more locations.


The aggregation engine 304 manages processing of information within the aggregation system. Service interfaces 320 periodically check the various Internet services 126 for new service feed items 308. Service credentials 314 are stored when and if the service credentials 314 are provided by users 116 and used by the service interfaces 320 where required by the Internet services 126. Service feed items 308 are processed and stored. In some cases, Service feed items 308 can be pushed to the aggregation engine 304 without the need to query for service feed items 308 by the Internet services 126.


In another embodiment, one or more Internet services 126 send, transmit, or otherwise provide service feed items 308 to the aggregation system 108, accessing an Application Programming Interface (API) or other interface mechanism to provide feed items, associated content, metadata, extracts or highlights, and any other information related to the service feed 206 or to individual service feed items 308 in the service feed 206.


There can be first-stage filters 212 and second-stage filters 216 stored as feed filters 324. The feed processor 316 performs standard filtering to find appropriate feed items, but can also apply the first-stage filters 212 and second-stage filters 216 as specified by the users 116. The service feed items 308 are organized by their source Internet service 126, category, sub-category, subject, topic or topics, tag or tags, genre, content rating, reviewer rating, popularity, and/or other factors. The aggregate feed items 328 are an aggregation from multiple service feeds 206 specified by a user 116 after any feed filter 324 is applied by the feed processor 316. The selective feed items 332 are further filtered by the feed processor 316 using any second-stage filters 216.


Filters, including first-stage filters 212 and second-stage filters 216, or other filters, can be absolute or can be indicative of proportion or relative weight or degree, or can combine both. Thus, a filter applied to the aggregate or video sharing feeds 204, 224 of one user could completely block, or always include, inclusion in the selective feed 220 or a subset of the selective feed 220 those feed items 328, 332 matching the specified criteria, whereas the filter applied to the feed 204, 224 of a second user could operate to reduce the number of such feed items 328, 332, but not completely block such feed items 328, 332, or operate to increase the proportion of such feed items 328, 332, but not always include such feed items 328, 332, in the selective feed 220 or a subset of the selective feed 220 of that second user, and whereas the filter applied to the feed 204, 224 of a third user could operate to change the position or sequence of feed items 328, 332 matching the specified criteria in the selective feed 220 or a subset of the selective feed 220 of that third user. For example, in a user interface 312, such filters could be visually presented to a user as a “slider” bar, where the far left position means “always include,” the far right position means “always exclude,” and positions between the far left and far right mean graduated degrees of inclusion, importance, or priority.


Once a service interface 320 has found a Service feed item 308, it is processed to determine included video or content link, feed service source, description of the video or content, any reviews or rankings, user comments, related article(s), etc. In the various stages of processing, all the information that comprises the service feed item 308 need not be replicated. The aggregate feed 204 can be a list of identifiers that specify which service feed items 308 to include. Similarly, the selective feed 220 can be a list of the service feed items 308 that have not been filtered out and are specified for inclusion for one or more users 116.


The user 116 interacts with a user interface 312 to configure the aggregation system 108. An account is created through the user interface 312 where service feeds 206 are specified, filtering, credentials, etc. Additionally, the user 116 can authenticate herself with the aggregation system 108, for example, with a user name and password or with other credentials. Content pages are supplied through the user interface 312 to display the selective feed items 332. The selective feed items 332 can be organized by oldest items, newest items, most highly reviewed, popularity, unviewed items, or any other criteria or combination of criteria. The user interface 312 may be supplied by the aggregation system 108, implemented in an application, applet or app on the rendering system 112, or divided in implementation between the aggregation system 108 and rendering system 112 in various embodiments.


With reference to FIG. 3B, a block diagram of an embodiment of an aggregation system 108-2 is shown. This embodiment adds functionality over the embodiment of FIG. 3A by adding capability to automatically determine and/or configure service feeds 206 that are based upon activities of users 116 with Internet services 126. During normal use of Internet services 126, users 116 will view content, “like,” or “thumbs-up” certain content, persons, channels, products, and other entities, or may otherwise rank them, for example, with stars on a 5-star scale, which are herein referred to as “service preferences.” A preference engine 336 accesses service credentials 314 previously entered by each of the users 116 for the various Internet services 126 that they use. These Internet services 126 may or may not have feed items, but can provide a source for one or more particular service preferences of a user 116.


Service preferences are gathered by the preference engine 336 for analysis to determine one or more service feeds 206. Some embodiments might collect the service feeds 206 into an aggregate feed 204. Optionally, the preference engine 336 maps a preference to service feed 206 using a feed correlation index 304. Various policies are formulated with one or more records in the feed correlation index 304. For example, “liking” a video about Oprah Winfrey could be mapped to a service feed 206 based upon her tweets. In some cases, the feed correlation index 340 could map a service preference to an aggregate feed 204, for example, a preference toward Oprah Winfrey would be mapped to an aggregate feed 204 formed from her tweets, her web site and her network. Subsequent activity such as a “thumbs-down,” bad review or un-liking could remove a service feed 206 that was previously automatically added.


Certain presumptions are automatically made from the service preferences. In some cases, there is not a service feed 206 that exactly corresponds with a service preference. For example, Rachel Maddow's Facebook™ page could be liked and a service feed 206 MSNBC™ could be automatically subscribed to. Where there is little web-accessible video available for a service preference, a related service feed could be chosen. For example, where a user 116 views several videos on Richard Nixon, a service feed 206 for the Republican political party could be selected.


Algorithms can be used to determine if a service preference should result in a service feed 206 being made into a channel or aggregated with other service feeds 206 into an aggregate feed 204. Similar service feeds 206 could automatically be grouped together according to a category stored in the feed correlation index 340. For example, liking political videos from several candidates could automatically be grouped into an aggregate feed 204. The user 116 can manually separate the service feeds 206 or combine the service feeds 206 in any way that the user 116 likes.


Some embodiments use crowd sourcing to refine and formulate the feed correlation index 340. Where a service preference is determined, several presumably related service feeds 206 could be suggested. As users 116 select those service feeds 206 to add, the feed correlation index 340 could be updated to capture mapping that wasn't initially contemplated. As more and more users 116 select related service feeds 206 for a service preference, the mapping will evolve over time to increase accuracy. For example, views of the Bob Newhart Show™ may initially map to the CBS™ service feed 206, but users 116 could select a different service feed 206 relating to drinking games. The alternative option could become the initial mapping or just an alternative selection presented to users 116.


The service preferences can be gathered from interactions at the aggregation system 108 itself rather than Internet services 126. A user 116 may interact with one or more videos that have a mapping in the feed correlation index 340. That interaction can cause a new service feed 206 to automatically be added. For example, an existing channel with feed items from a number of sources could have three videos “liked” that have in common a particular actor. The service feed 206 for that actor or media entity could automatically be added if not already subscribed to.


This embodiment also includes an audit function 344 coupled to the user interface 312. The audit function 344 records all manual interaction between the user and the aggregation system 108. The audit function 344 also records the service preferences gathered by the preference engine 336 in interacting with the Internet services 126. Each audit record is time stamped to allow later reconstruction of an interaction time line.


In addition, or alternatively, in this embodiment service preferences could be used by the preference engine 336 to populate, order, filter, or otherwise influence the presentation of the aggregate feed 204 or other feeds presented to the user 116. For example, “Liking” a particular actor or comedian's Facebook™ page could promote feed items that feature that actor or comedian to a higher position within a selective feed 220 to include only talk show appearances; similarly, indicating “thumbs down” on a particular product or manufacturer could filter feed items about that manufacturer from a feed filtered to include only product reviews.


In this embodiment, expressed interests, likes, and dislikes specific to a particular user 116 can be utilized by the aggregation system 108 in selecting feeds that will be presented to the user 116 and/or in selecting, ordering, or otherwise presenting the items within feeds presented to the user 116.


A notification management system (NMS) 348 is included in this embodiment. A particular user 116 could have any number of rendering systems or devices 112 that are used with the aggregation system 108. The user's account on the aggregation system 108 can have messaging that is specific to a particular device 112 or can be sent simultaneously to multiple devices 112 associated with the user's account. Once a message is read on one device 112, it can be marked as read or deleted on other devices 112 through synchronization managed by the NMS 348. From the perspective of the user 116, interaction with the messaging of the aggregation system 108 is unified and consistent regardless of which device 112 is used at a particular time.


A user index 352 is included in this embodiment. The user index 352 contains data about the users 116, user interfaces 312, and/or devices 112. The user index 352 is used to map a user 116 to one or more devices 112 and/or one or more user interfaces 312. The user index 352 contains information such as user IDs, user-interface-specific identifiers, device-specific identifiers, network addresses, and/or platforms used on devices 112. The aggregation engine 304 queries the user index 352 and passes information from the user index 352 to the NMS 348 so the NMS 348 can transmit notifications to the user interfaces 312 and/or devices 112.


A reporting interface 356 is also included in this embodiment. The aggregation system 108 collects data about users 116 individually and collectively. The reporting interface 356 allows the aggregation system 108 to report out the data about users 116 to other systems, such as search engines.


Referring next to FIG. 4A, a diagram 400-1 of an embodiment illustrating the logical flow of feeds is shown. In this embodiment, there are x service feeds 206, y aggregate feeds 204 and z selective feeds. The arrows show how service feeds 206 are typically logically combined into aggregate feeds 204 and optionally logically combined into selective feeds 220. For example, a first service feed 206-1 is the sole contributor to a first aggregate feed 204-1. The first, third and fifth aggregate feeds 204-1, 204-3, 204-5 are identified by the user 116 to be combined into the first selective feed 220-1. In another example, the third and fifth service feeds 206-3, 206-5 combine into the fourth aggregate feed 204-4 before being the sole contributor to the fifth selective feed 220-5.


With reference to FIG. 4B, a diagram 400-2 of an embodiment illustrating the flow of feeds is shown. This embodiment adds user-defined filtering through first-stage filters 212 and second-stage filters 216. These filters are in addition to standard filters that screen for feed items that are of a particular type, for example, video feed items are screened to exclude items that have no video. In one example, the fifth service feed 206-5 is provided to fourth and fifth aggregate feeds 204-4, 204-5. A first-stage filter 212 on prior to the fifth aggregate feed may select for, or screen out, any Service feed items 308 relating to a particular subject or with a particular characteristic, for example, HD video or with a keyword or tag of “Charlie Sheen”. In another example, the second aggregate feed 204-2 is provided to both the first and second selective feeds 220-1, 220-2 with only the second selective feed 220-2 filtering the input aggregate feed items 328.


Referring next to FIG. 5, a process 500 for gathering feed items is shown for the primary embodiment. The depicted portion of the process begins in block 504 where the service interfaces 320 gather Service feed items 308. Any needed service credentials 314 are used to get access to the service feeds 206. In block 508, the service feeds 206 chosen by the various users are gathered by the service interfaces 320. Each service feed 206 could be checked periodically for new Service feed items 308. Processing is performed on the Service feed items 308 in block 512.


Various users 116 have subscribed to the various service feeds 206. In block 516, the processed Service feed items 308 are routed to the subscribed aggregate feeds 204. Any first-stage filter 212 specified by the user is performed on the Service feed items 308 before they become part of the aggregate feed 204 in block 520. The aggregate feed items 328 are routed to selective feeds 200 that have subscribed in block 524. Any second-stage filter 216 is applied on the selective feed items 332 in block 528. The user 116 periodically will access the aggregation system 108 to view the selective feed 220 through the user interface 312 or the device 112.


With reference to FIG. 6, a process 512 that fixes the service feed 206 is shown. The aggregation system 108 determines whether an aggregate feed item 328 from an aggregate feed 204 is itself, or references or includes within it, video content, and if the aggregate feed item 328 is or does, processes the aggregate feed item 328, by any of, some of, or all of the following blocks, depending on the requirements presented by the aggregate feed item 328 from the service feed 206, and executed in any order as determined by the requirements presented by the aggregate feed item 328. The depicted portion of the process 512 begins in block 604 where the aggregation engine 304 identifies and categorizes the Service feed item 308 and extracts available characteristics of the Service feed item 308, e.g. any available identifying, classifying, temporal, or system-related characteristics of the Service feed item 308.


In block 608, the aggregation engine 304 determines whether the Service feed item 308 has been previously processed, and if it has, how recently and in what context. Next, it is determined whether a Service feed item 308 is itself a video resource. The aggregation engine 304 determines whether a Service feed item 308 that is not a video resource is a web page, RSS feed, XML file, or other data type that potentially contains within it URLs that are video resources or that iteratively require further processing in block 612. Embedded executable code contained within the resource is executed in block 616, such as Javascript™ contained with a web page, to obtain content that is normally activated within that resource by a browser or other software client's execution of such embedded executable code, and further processes the content thereby obtained. In block 620, it is determined whether a video resource URL or other resource URL is content, or is a URL for an advertisement (either video or non-video); and if it is a URL for an advertisement, ignores it.


Optionally, a module or function of the aggregation engine 304, or a separate system or module associated with the aggregation engine 304, may repetitively access, execute, download, or otherwise activate all of or part of a service feed item 308, web page, web page element, URL, <video> tag, other tag, embed code, other content container, or other content indicator, identifying itself as a different user agent, device type, media player type, or other component type, and/or within same identifying itself as having different functions, capabilities, connectivity, characteristics, or capacities at each such access, execution, download, or activation, in order to receive multiple alternative responses indicating alternative formats, protocols, structures, policies, or other characteristics that may be available. Where multiple such alternative responses are available, the module or function of the aggregation engine 304, or separate system or module associated with the aggregation engine 304, may store some or all of the alternative responses and optionally some or all of the options associated with some or all of the accesses, executions, downloads, or activations associated with the responses.


A URL in a Service feed item 308 can be redirected and/or rewritten when activated. In block 624, it is determined whether a URL is a shortened URL, and if it is, issues an HTTP (or other appropriately formatted request) for that URL to obtain the actual base reference URL for further processing. It is determined whether the base reference URL has previously been processed in block 628, and if it has, determines whether a modification, creation, or expiration date parameter is associated with the base reference URL, and if one is available, determines whether it indicates that the resource identified by the base reference URL has been changed, or has not been changed, since the base reference URL was previously processed. Where the base reference URL was not previously processed, the aggregation engine 304 parses the surrounding resource to obtain metadata, such as dates, times, proper names, and other metadata, that is potentially relevant to, associated with, or descriptive of, the video resource in block 632. The aggregation engine 304 optionally parses the surrounding resource to obtain user comments, “likes,” ratings, and other user feedback or other content. The aggregation engine 304 optionally associates data obtained from the surrounding resource with the base reference URL or base video object, in order to aggregate data obtained from multiple surrounding resources in which a particular base reference URL or base video object appears.


Where a base reference URL is available for the URL, such as may be the case for syndicated content, the aggregation engine identifies whether a base reference video object is available for a video resource identified by a URL. In block 636, a syndicated video resource that has not been previously stored, is stored. Optionally, one or more short highlights of the video object are extracted and stored; in the current implementation of the primary embodiment, a single 15 second highlighted is extracted and stored. Optionally, the video resource, the extracted highlight(s), or both (all) are transcoded or otherwise processed into one or more other formats, codecs, bitrates, containers, or forms. The aggregation engine stores and associates the data and objects obtained via this process 512, keyed at least by the item processed and by the video resource as a service feed item in block 640.


In the primary embodiment, the aggregation system 108 optionally eliminates duplicate video items (i.e., items that appear in more than one of the service feeds 206 aggregated for one or more users 116), while preserving the selective feed item's 332 presence in any of the selective feeds 220, or any of the filtered or narrowed views of any of the selective feeds 220. In the primary embodiment, the user 116 can also add a resource or item to the aggregation system 108, so that the video will be included in the user's aggregate feeds 204 and processed to derive the user's selective feed 220, by providing the resource's URL, embed code, or other identifier to the aggregation system 108; that item is processed as if it were an item obtained from a service feed 206.


In an optional aspect of the primary embodiment, some Internet services 126 are blocked by the aggregation system 108, so that a user 116 cannot configure such Internet service 126 for aggregation, cannot add an Internet item 308 associated with that Internet service 126 to the aggregation system 108, or otherwise designate content from that Internet service 126 for incorporation into the aggregation system 108; this optional aspect of the primary embodiment can be configured to prevent the aggregation system 108 from accessing and/or incorporating content associated with, or obtained from, Internet services 126 that have been identified as being Internet services 126 that consist partially, predominately, or entirely of content that is undesirable, prohibited, illegal, pirated, unlicensed, copied, or otherwise objectionable. In another embodiment of this optional aspect, some Internet services 126 are blocked by the aggregation system 108 for some users 116, based on criteria associated with users 116 or rendering devices 112, or other criteria. In another embodiment of this optional aspect, some or all Internet services 126 are configured for content review and each feed item 332 (including related or associated content) is inspected for a digital watermark, digital fingerprint, audio content match, or other content match to determine whether the specific feed item 332 and its related or associated content is permitted or blocked.


Referring next to FIGS. 7A, 7B and 7C, an embodiment of a user interface 312 to the aggregation system 108 is shown. In the primary embodiment, the user interface 312 for a full screen (as opposed to mini) browser-based user 116 who is recognized by the aggregation system 108 comprises a content navigation pane 720 with navigational and other controls across the top of the screen, a presentation of the user's selective feed running in a feed pane 712 beneath the content navigation pane 720 and down the left side of the screen, an active item pane 708 for video playback underneath the overall controls on the right side of the user interface 312, an information display showing information (i.e., title 740, source 756 and description 744) about the video underneath the video window 702, and a comment entry field 752 and sharing controls 724, 728, 732 beneath the information display.


In an optional aspect of the primary embodiment, a user interface 312 for a full screen browser-based user is a video playback window 702 embedded in a web page published by a party other than the primary embodiment aggregation system 108. The embedded user interface 312 could also include a feed pane 720 and/or a content navigation pane 720. Other embodiments could include a feed pane 712 that is overlaid or replaced by a video playback window 702 when one selective feed item 332 is chosen.


In another optional aspect of the primary embodiment, one or more data elements or types related to each selective feed item 332 is presented from some or all of the Internet services 126 associated with the service feeds 206 in which the selective feed item 332 was found, for example, ratings, comments, “likes,” shares or other such information about a selective feed item 332. In yet another optional aspect of the primary embodiment, one or more data elements or types related to each selective feed item 332 is consolidated from some or all of the Internet services 126 associated with the service feeds 206 in which the selective feed item 332 was found, for example, “likes” or shares of a feed item 332 are aggregated from multiple Internet services 126, or ratings of a feed item 332 are averaged or otherwise mathematically consolidated from multiple Internet services 126.


In another optional aspect of the primary embodiment, the user interface 312 and controls are adapted to the display characteristics and data input/output capabilities of an Internet-connected television, with the video playing in the full screen, or nearly the full screen, of the television display with translucent information related to the video displayed over the video as the video playback window 702 starts and then fading-out after several seconds to provide unimpeded visual access to the video; controls, such as “skip to the next video” or “bring up the selective feed,” are executed via pressing keys on the television remote. In some cases, a playback manipulation control 748 would overlay the video playback window 702 translucently when temporal manipulation of playback is performed and fade away after manipulation.


In another optional aspect of the primary embodiment, the user interface 312 and controls are adapted to the display characteristics and data input/output capabilities of an Internet-connected smartphone or tablet, with the video playback window 702 playing in the full (albeit, in at least some cases, physically small) screen, or nearly the full screen, of the smartphone or tablet, with information 740, 756, 744 related to the video displayed over the video as the video starts and then fading out after several seconds to provide unimpeded visual access to the video; controls, such as “skip to the next video” or “bring up the selective feed,” are executed via gestures made by touching the screen, or by pressing keys on a soft keyboard invoked to appear on the screen, or by pressing physical keys on the smartphone or tablet.


In another optional aspect of the primary embodiment, the user interface 312 is split between two display screens, implemented as either two display screens embedded in a single device or as two separate devices. A first display screen could be a television with the video playback window 702 being supplied by internal circuitry or a set top box. A second display screen would be used to provide the feedback pane 712, content navigation pane 720, content information 740, 756, 744, playback manipulation control 748, comment entry field 752, sharing controls 724, 728, 732, and/or embedded link control 736. The second display screen could be an intelligent remote control, a smart phone, a PDA, a personal computer, a tablet computer, etc. Communication could be directly from the second display screen to the first display screen or through an intermediary such as a set top box or through the aggregation system 108.


In another embodiment, the interface 312 comprises multiple columns of selective feed items 332, all of which may be sorted according to the same criteria, or some or all of which may be sorted according to separate criteria, implemented as multiple feed panes 712 or as multiple columns of information in a single feed pane 712. In this embodiment, one or more feed panes 712 would compress, dissolve or fade, shift to another position, or otherwise visually give way to the active item pane 708 when a selective feed item 332 is selected for playback.


In the primary embodiment, the selective feed 220 is presented to the user 116 in reverse chronological timeline sequence, that is, with the most recent item first (e.g., at the top of a list of items) as shown in FIG. 7B. In other embodiments, the selective feed 220 is presented to the user 116 in chronological timeline sequence; in modified reverse chronological timeline sequence where selective feed items 332 are grouped together, the selective feed items 332 within groups 758 are presented in chronological timeline sequence and the groups 758 are presented in reverse chronological timeline sequence; in modified chronological timeline sequence where selective feed items 332 are grouped together, the selective feed items 332 within groups 758 are presented in reverse chronological timeline sequence and the groups 758 are presented in chronological timeline sequence; or in a sequence determined without regard to time order. Optionally, the selective feed 220 may also be presented in one or more filtered or alternative sequences, for example any of, all of, or any combination of:

    • in reverse chronological or other sequence, filtered with a feed filter 324 to show only the selective feed items 332 from a particular aggregate feed 204 or topic 758 (e.g., the user's Twitter™ feed, Facebook™ feed, music video feed, etc.), or only the selective feed items 332 associated with a particular entity within a service feed 206 (e.g., a particular Twitter™ entity followed by the user), or only the selective feed items 332 from a particular source (e.g., BBC News™), or only the selective feed items 332 that are associated with a particular topic, metadata tag, proper name, or other identifier or attribute;
    • in reverse chronological or other sequence, filtered to show only the selective feed items 332 from one or more particular categories 750 (such as News, Sports, Celebrities, or Finance); or, within that category 750, in reverse chronological or other sequence, filtered to show only the selective feed items 332 from a particular aggregate feed 204, or only the selective feed items 332 associated with a particular entity within a selective feed 220, or only the selective feed items 332 from a particular source, or only the selective feed items 332 that are associated with a particular topic, proper name, or other identifier or attribute;
    • in a sequence, determined entirely or in part by one or more algorithms, and based on any of, all of, or any combination of: filtering out duplicate, nearly duplicate, loosely duplicate, repetitive, nearly repetitive, or loosely repetitive selective feed items 332; identifying more or less popular, or more or less relevant, selective feed items 332 as determined by the total user population or by a subset of the user population, based on the viewing (including started views, partially completed views, completed views, and/or repeated views), liking, sharing, saving, and other behavior of the other users or subset of users, and where the subset is optionally affiliated with, socially connected to, comparable to, loosely or closely temporally coincident with, associated through actual, geographic, or network location with, directly or indirectly linked to, or otherwise related to the user, or unrelated to the user;
    • in a sequence, determined entirely or in part by one or more algorithms, and based entirely or in part on the selective feed items 332 chosen based on the user's current or past actions or behavior, including any of, all of, or any combination of: the user's service feed 206 subscriptions; the specifics of the user's service feeds 206; the user's viewing behavior, including started views, partially completed views, completed views, and/or repeated views; the user's likes, shares, saves, and saves for later viewing; the user's search or other queries; the user's added resources and items; the user's actions or behavior associated with a device or devices 112, category of devices, or attribute(s) or characteristic(s) of a device or devices 112, or based on or associated with the user's comparative actions or behavior associated with a device or devices 112, category of devices 112, or attribute(s) or characteristic(s) of a device or devices 112 as compared to the user's actions or behavior associated with another device or devices 112, category of devices 112, or attribute(s) or characteristic(s) of a device or devices 112; and/or other user actions, inactions, or behavior(s);
    • in a sequence, determined entirely or in part based on information contained in: one or more non-video link service feeds associated with the user, or determined entirely or in part by one or more algorithms based entirely or in part on information contained in one or more non-video link service feeds associated with the user; or Service feed items 308 that do not link to video content;
    • in a sequence determined entirely or in part by one or more algorithms that increases, decreases, achieves a minimum, or limits the maximum of, the number of consecutive Service feed items 308 and/or the proportion of Service feed items 308 within an overall range or group of Service feed items 308, from one source or service feed 206, or from a group of sources or service feeds 206, or from a type or category of sources or service feeds 206, or with one or more other attributes;
    • including or excluding selective feed items 332 in a user's selective feed 220 based, entirely or in part, on any of, all of, or any combination of: determining whether the selective feed items 332 have been included in the selective feed 220 of another user with whom the first user has a relationship on one or more social networks, such as a friend relationship, a following relationship, or another social network relationship or connection; the level of the user's usage, sharing activity, rating activity, commenting activity, or other activity or usage, on the aggregation system 108, or on one or more social networks, or on one or more other digital systems, or any combination of some or all; characteristics, including Service feed item 308, service feed 206, category 750, device 112, temporal, or other characteristics, of the user's usage, sharing activity, rating activity, commenting activity, or other activity or usage, on the aggregation system 108, or on one or more social networks, or on one or more other digital systems, or any combination of some or all; one or more aggregated, subdivided, or cross-referenced user(s) or group(s) of users within whose selective feeds 220 that the selective feed items 332 have been included into; one or more aggregated, grouped, subdivided, categorized, allocated, identified, calculated, ranked, or cross-referenced Internet services 126, Internet service feeds 206, and/or individual or group(s) of user selective feeds 220 that contain or do not contain, reference or do not reference, refer to or do not refer to, indicate or do not indicate, or otherwise signal one or more selective feed items 332, at a point in time, over a period of time, based on one or more other time-related characteristics, and/or without respect to time; previous viewing of, sharing of, rating of, or other usage of other selective feed items 332; previous viewing of, sharing of, rating of, or other usage of other selective feed items 332 included within the user's selective feed 220, whether similarly included, arbitrarily included, or otherwise included; one or more algorithms designed or intended to maximize the individual or aggregate viewing of, sharing of, rating of, or other usage of the included selective feed items 332, of other selective feed items 332, of other selective feeds 220, of the aggregation system 108, or of the device 112, immediately, over time, without respect to time, or otherwise. For example, a selective feed 220 from a user's social networking account could exclude or include feed items 332 from a particular friend, tagged with a particular keyword, or excluded based on any other criteria to create a keyword feed item. For another example, a selective feed 220 or an Internet service feed 206 could be filtered and/or ordered based on how many times the selective feed items 332 or other feed items were shared by all users of a certain social networking service, some users of all social networking services, other users with whom a user has a relationship on one or more social networking services, other users with whom a user does not have a relationship on one or more social networking services, a particular group of users on a social networking service (e.g., the most commonly followed users, users who most commonly share media items, or users determined by some other means to be particularly influential, predictive, or knowledgeable), or another superset of, or subset of, users of one or more social networking services; and/or
    • including or excluding selective feed items 332 in a user's selective feed 220 based, entirely or in part, on any of, all of, or any combination of: data obtained from the user's device 112, such as location, calendar data, stored media data, other installed programs; data obtained from a service associated with the user's device 112, or with another device 122 associated with the user; data obtained from an Internet service 126 associated with the user 112.


In the primary embodiment, the videos are played sequentially in the order in which they are presented to the user 116 in the selective feed 220, and if the selective feed 220 is presented in a filtered or narrowed ordered, then in that filtered or narrowed sequence. Thus, in the primary embodiment and on a full screen browser-based user interface 312 (e.g., a PC), the user can see the selective feed 220 on the left in a feed pane 712, which feed item 332 is currently playing, which feed item(s) 332 recently played, and which items are coming up for playback with the feed items 332 arranged in the feed pane 712 as a vertically-rotating carousel. In the primary embodiment, each item in the running selective feed 220 presented on the left hand side feed pane 712 of the screen portraying the user interface 312 contains descriptive information about the item, such as the title 720, description 744, source 756, number of likes and shares, optionally other rating information, and optionally other information; this enables the user to see such information about feed items 332 not currently playing in the video playback window of the active item pane 708. The user 116 can manually select feed items 332 within the selective feed 220 as presented, typically by pointing and clicking on a feed item 332, at which point the feed item 332 begins playing in the video playback window of the active item pane 708, which allows the user 116 to directly access any feed item 332 on demand and begin playback as the feed items 332 are rotated through a list of the selective feed 220 arranged in a vertical carousel within the feed pane 712. The user 116 can also select the next sequential video in the list of the selective feed 220 by clicking on a button or slider control that advances playback to the next feed item 332, which stops playback of the current feed item 332 and begins playback of the next feed item 332 in sequence. At the conclusion of any feed item's 332 playback, when playback of that feed item 332 reaches the end, the next feed item 332 in sequence automatically begins playback in one embodiment. Other embodiments could use a Play control to begin playback of the next feed item 332 after the current feed item 332 is done playing.


In an optional aspect of the primary embodiment, automatic sequential playback continues indefinitely, until the end of the selective feed 220 is reached; in this manner, a very long continuous period of video content playback—hours, days, weeks, months, limited only by the length of the history of the user's selective feed 220—can in principle be offered to the user 116, with as much or as little action, and resulting control, as the user desires. In another aspect of the primary embodiment, automatic sequential playback is paused or stopped by the aggregation system 108 after a predetermined point or range, based on a number of videos played, a total time amount of video played, a time interval that has elapsed since the last user-initiated action, the age of an item in the user's selective feed, or other criteria; automatic sequential playback may then be resumed upon user initiation or if the user responds to a prompt or system request or dialogue.


In an optional aspect of the primary embodiment, the user 116 can perform one or more of the following actions for some or all of the feed items 332 in her selective feed 220:

    • “Like” a feed item, which marks it as a feed item the user 116 liked;
    • rate a feed item, which marks a feed item with her rating, which may be positive or negative or either, and which may have any range desirable, such as a scale of stars;
    • save a feed item, which marks it as a feed item the user 116 has saved;
    • save a feed item for later viewing, which marks it as a feed item the user 116 has saved and would like to view again, including on a different device 112, and including on a specific device 112 or group of devices 112;
    • pause a feed item to resume viewing later, which marks the feed item as a feed item the user 116 has paused and would like to continue viewing, including on a different device 112, and including on a specific device 112 or group of devices 112
    • automatically save feed items, including any variation or specific method of saving feed items, based on criteria the user 116 specifies, such as any of, all of, or any combination of, feed items from one or more selective feeds, feed items associated with one or more users or sources, feed items associated with one or more topics or categories of topics, length of feed item, content of feed item, category of feed item, or other feed item attributes;
    • manually or automatically terminate the saving of a saved feed item, including based on any of, all of, or any combination of elapsed interval since saved, elapsed interval since last viewed, elapsed interval since last shared or liked, elapsed interval since last action by another person associated with the user, selective feed(s) associated with the feed item, user(s) associated with the feed item, sources associated with the feed item, topics or categories of topics associated with the feed item, length of feed item, content of feed item, category of feed item, or other item attributes;
    • share a feed item with other users of the aggregation system, or to users of one or more other Internet services (which may require that she provide her user credentials for that system, if she has not already provided them), or both, or otherwise send feed items to other users of either the aggregation system or another Internet service or both;
    • automatically share selective feed items 332, including any variation or specific method of sharing selective feed items 332, based on criteria she specifies, such as any of, all of, or any combination of, selective feed items 332 she has liked, saved, stored, or rated, selective feed items 332 from one or more selective feeds 220, selective feed items 332 associated with one or more users or sources, selective feed items 332 associated with one or more topics or categories of topics, length of feed item, content of feed item, category of feed item, rating of feed item, or other feed item attributes;
    • share selective feed items 332, or automatically share selective feed items 332, or both, using any of, all of, or any combination of different automatic sharing policies, different URLs, links, or other content identifiers, different content players, presentation modes, or other presentation implementations, or different user, application, or service authentication requirements, determined entirely or in part, directly or indirectly, according to which Internet service 126 the share or automatic share activity is executed to, or according to the type of user or other entity, class of user or other entity, or according to a characteristic of user or other entity, whether based on the user or entity the share is from or a user or entity the share is to, whether the shares or automatic shares occur concurrently, at related or otherwise synchronized times, or at different times; for example, when sharing or automatically sharing a selective feed item 332 via a particular social networking service, share that selective feed item 332 via a URL native to the aggregation system 108 so that when activated the URL will present the selective feed item 332 in a context associated with the aggregation system 108, while at the same time when sharing or automatically sharing that same selective feed item 332 or another feed item via a different (second) social networking service, share that selective feed item 332 via a URL native to the digital service with which the selective feed item 332 is associated so that when activated the URL will present the selective feed item 332 in context associated with its digital service; as another example, when sharing or automatically sharing a selective feed item 332 via a first social networking Internet service 126, share that selective feed item 332 via a URL and/or within a container that will play the associated video in native video player or the apparent native video context of the first social networking Internet service 126, while at the same time when sharing or automatically sharing that same selective feed item 332 or another feed item via a second social networking Internet service 126, share that selective feed item 332 via a URL and/or within a container that will play the associated video in the native video player or the apparent native video context of the second social networking Internet service 126;
    • store a selective feed item 332 to one or more devices 112, so that some or all of the content associated with that selective feed item 332, including or excluding the video content, can be viewed on that device 112 when not connected to the aggregation system 108;
    • automatically store selective feed items 332 to one or more devices 112, including any variation or specific method of storing selective feed items 332, based on criteria she specifies, such as any of, all of, or any combination of, selective feed items 332 she has liked, saved, shared, or rated, selective feed items 332 from one or more selective feeds 220, selective feed items 332 associated with one or more users or sources, selective feed items 332 associated with one or more topics or categories of topics, length of feed item, content of feed item, category of feed item, rating of feed item, or other feed item attributes;
    • comment on a feed item;
    • send a message in conjunction with sharing a feed item;
    • provide feedback to the publisher of a feed item;
    • place an order related to a feed item;
    • accept an offer provided in conjunction with a feed item;
    • delete a feed item from her selective feed; and/or
    • reverse or revoke any previous action.


In an optional aspect of the primary embodiment, the sequence of feed items 332 upcoming in the user's selective feed 220 shown in the feed pane 712 is dynamically influenced, changed, or rearranged based on the user's actions as the aggregation system 108 progresses through the selective feed 220 as originally sequenced for the user 116 in the vertical carousel. For example, as previously described, in the primary embodiment the sequence of the feed items 332 in the selective feed 220 is reverse chronological timeline sequence (which in this optional aspect may be considered the original sequence of feed items 332); as the aggregation system 108 proceeds through the playback process and the user 116 watches, skips, likes, saves, or shares items in the selective feed 220, in this optional aspect of the primary embodiment the aggregation system 108 dynamically adjusts the sequence of upcoming feed items 332 in the user's selective feed 220 to reflect these actions so that the user 116 sees more items that share various characteristics with the feed items 332 she has liked or shared or saved for later viewing, or fewer items that share various characteristics with the feed items 332 she has skipped or deleted, or otherwise re-sequences the upcoming feed items 332 in the selective feed 220 based on her actions. This process can be iteratively repeated based on the user's actions as the aggregation system 108 progresses through the adjusted selective feed 220, further adjusting the sequence of feed items 332 then upcoming; similarly, based on the user's actions this process can be cancelled or reversed and the user's upcoming selective feed items 332 reverted to the original sequence.


Referring next to FIGS. 8A, 8B and 8C, the user interface 312 in another embodiment comprises multiple columns, rows, or arrays of selective feed items 332, Internet feed items 308, keyword feed items, aggregate feed items 328, and/or other feed items, along with an array or multiple arrays of icons 830 in the navigation pane 720, typically displayed above the multiple columns, rows, or arrays of selective, Internet service, keyword, aggregate, and/or other feed items (hereinafter “Feed Items”), alternatively displayed to the left of the multiple columns, rows, or arrays of Feed Items, or alternatively displayed in another location. Each icon 830 identifies one or more groups of Feed Items, such as the selective feed items 332 associated with one or more user accounts on one or more social networking services, including the user's own account or another user or group of users, or the selective feed items 332 or Internet service 206 feed items associated with one or more particular Internet services 126, for example a news site such as CNN.com™ or a group of news sites selected by the user 116, or the selective feed items 332 associated with a particular keyword, subject or topic, such as a sports team or player, or the selective feed items 332 collected in an aggregate feed 204, such as recommended items. In the depicted embodiment, there are four feed panes 712 that each display a column of selective feed items 332, which is sometimes referred to as a channel or a smart channel, herein.


Behind the user interface 312 is a view carousel 870 with three different views 880 as shown in FIG. 8C related in a hierarchical manner. The first view 880-1 is not currently visible to the user through the user interface 312 that displays a window of the view carousel 870, corresponds to the highest level in the hierarchy and allows selecting from multiple selective feeds 220 or other feeds, some of which can be an aggregation of two or more selective feeds 220 or other feeds into a smart channel. The first view 880-1 is detailed in FIG. 8A. The second view 880-2 shows a particular selective feed 220 or other feed in one feed pane 712 with one video playing back in the active item pane 708. The second view 880-2 is the part of the view carousel 870 currently viewable through the user interface 312. The third view 880-3 shows a full-screen version of the video playing back. In this embodiment, touch-screen gestures move the view carousel 870, for example a two finger touch will rotate the carousel. A single finger touch will move within the current view 880 and not rotate the view carousel 870.


In this embodiment, an icon 830 in the content navigation pane 720 corresponds to one or more columns, rows or arrays of Feed Items and the icons are arranged in the same sequence as the columns, rows, or arrays of Feed Items, optionally with more or less icons 830 displayed at any time than columns, rows, or arrays of Feed Items displayed. The depicted embodiment arranges the selective feed items 332 in a column of a feed pane 712 as shown in FIG. 8B. The sequence of icons 830 rotatable about a channel carousel 805 can be moved, scrolled, advanced, retrieved, or otherwise manipulated by gesture, mouse action, cursor control, keyboard control, voice command, or other user interface control. Where all the icons 830 can fit in the content navigation pane 720, the channel carousel 805 may or may not rotate, for example in this embodiment the channel carousel 805 only rotates when there are more icons 830 than will fit in the content navigation pane 720. In a tablet computer embodiment, a single touch gesture rotates the channel carousel 805. In an optional aspect of this embodiment, an icon 830 may be linked to a sub-array of icons, such that at some times when the icon 830 appears, the linked sub-array of icons also appears, e.g. in a drop down or slider tray, and as the icon 830 is moved to the edge of the view area of the channel carousel 805 the sub-array fades away or otherwise no longer appears.


When the sequence of icons 830 on the channel carousel 805 is moved, scrolled, advanced, retrieved, or otherwise manipulated, the columns, rows, or arrays of Feed Items that are visible moves, scrolls, advances, dissolves, fades in or out, is retrieved, or is otherwise manipulated synchronously. Since the width of a feed pane 712 may be different than that of an icon 830, the channel carousel 805 may spin faster or slower than the column carousel 850 such that there may be a gearing ratio other than 1-to-1 between the two carousels 805, 850. This aspect of the user interface 312 enables a user to, for example, move the feed pane columns 712 by moving the icon sequence (for example, by dragging and dropping), and when more icons are displayed than columns are displayed, gives the user broader visibility into more, or all, columns of selective feed items 332, Feed Items that are available combined with detailed visibility into the selective feed items 332 that are available in the displayed columns of Feed Items. A scroll control 820 shows with a featured bar 810 which icons 830 have their corresponding feed panes 712 displayed. The icon 830 and feed pane 712 that would be used if the view carousel 870 is rotated is accentuated with a radio dial 840, but other embodiments could highlight the feed pane 712 or icon 830 with bolding, enhanced color, animation, or any other mechanism to inform the viewer the current focus if the view carousel 870 is rotated. The elements may move synchronously, such that moving a first element or array of elements causes a second element or array of elements to move, while moving the second element or array of elements also causes the first element or array of elements to move; or the elements may move asynchronously, such that moving a first element or array of elements causes a second element or array of elements to move, while moving the second element or array of elements does not cause the first element or array of elements to move; or a combination of synchronous movement and asynchronous movement may be implemented.


Both the icons 830 and feed panes 712 are in a synchronized order and each rotate synchronously about carousels, although the diameter of a column carousel 850 is larger than the icon carousel 805. When the user rotates one carousel, the other will rotate in a synchronized manner at a predetermined ratio of movement given the differing diameters between the two carousels 805, 850. This aspect of the user interface 312 also enables a user to rapidly move through all the columns of selective feed items 332, Feed Items that are available, for example to quickly and directly navigate to a specific desired column of selective feed items 332. The feature bar 810 informs the user which feed panes 712 are shown below and also what in the column carousel 850 is visible. In the example of FIG. 8A, the first four icons 830-1, 830-2, 830-3, 830-4 are denoted by the feature bar 810 to signal that the corresponding first through fourth selective feeds pane columns 712-1, 712-2, 712-3, 712-4. The icon appears both in the content navigation pane 720 and the corresponding feed panes 712 in this embodiment.


Optionally in this embodiment, an icon 830 can be deleted from the icon carousel 805, which optionally in turn causes the corresponding feed pane 712 to be removed from view. Optionally in this embodiment, the icons 830 in the icon carousel 805 can be reorganized, reordered, or resequenced, by either or both the user 116 or the aggregation system 108, which optionally in turn causes the feed panes 712 in the column carousel 850 to be reorganized, reordered, or resequenced synchronously with the icon carousel 805.


Optionally in this embodiment, icons 830 in the icon carousel 805 can be combined, which optionally in turn causes the corresponding feed panes 712 to be combined; or an icon 830 can be separated into multiple constituent parts through filtering, which optionally in turn causes the corresponding columns of selective feed items 332, Feed Items to be separated; or both. Mixing and separation of icons causes corresponding rearranging of selective feed items 332, Feed Items. Where two or more icons are combined, a combined icon may be subdivided into panels that display the icons that are combined. For example, the sixth icon 830-6 combines two icons and the seventh icon 830-7 combines four icons as shown in FIG. 8A. FIG. 8B shows the feed pane 712 for sixth icon 830-6 with selective feed items 332 from both icons.


Alternatively in various embodiments, the visual interface 312 can comprise multiple columns, rows or other arrays of selective feed items 332, Feed Items, along with an array comprising any of, all of, or any combination of, buttons, tabs, badges, keys, labels, numbers, or other graphical elements in addition to, or instead of, icons, any or all of which could be organized in one or more rows, columns, alignments, or other arrays.


With reference to FIG. 9, another embodiment of the first view 880-1 is shown. In this embodiment, the selective feed items 332, Feed Items are arranged horizontally in a feed pane 712. The selective feed items 332, Feed Items can be a list with beginning and end arranged chronologically or in some other manner. In other embodiments, the selective feed items 332, Feed Items can be arranged in a circular list as a carousel, or in any other arrangement. In another optional aspect of this and other embodiments, icons 830 in the tiled icon 830-6, 830-7 may correlate to non-feed items, functions, or aspects. The icon carousel 805 is arranged vertically in this embodiment. The feed panes 712 are arranged in a vertical feed carousel 855 that rotates in synchronization with the icon carousel 805 and the scroll control 820.


In this optional aspect of the primary embodiment, this adjusted sequence can be presented continuously with, or as part of, or as the next part of, the user's selective feed 220, or can be presented as a separately labeled and separately selectable sequence of the user's selective feed 220. Adjustments to the user's upcoming sequence can be provided in real-time or near real-time, as the user 116 advances through, or as automatic playback advances through, the user's selective feed 220; can be effected between sessions; can be effected after a specified amount or type of amount of one or more types of user action has occurred; can be effected after two or more user actions have occurred in sequence, consecutively, within a specified time period, within a specified number of user actions, in a particular order or in no particular order, or otherwise have occurred; or can be effected after a specified level of confidence in the applicability of the adjustment(s) is reached.


In another embodiment, a first icon 830 array, set of feed items, group of interface panes, and/or other collection of interface elements is presented in conjunction with a second, coordinated icon 830 array, set of feed items, group of interface panes, and/or other collection of interface elements, and one or both of the first and/or second array, set, group, and/or collection is logically and visually stacked. One potential benefit of stacking some or all of the interface elements is to effectively use limited display space, for example on a smaller device 112 such as a smartphone, while still enabling easy access to all or most of the functions available on a device 112 that has a larger display. In one embodiment of a stacked or partly stacked interface, a first array of icons 830, representing service feeds 220, is arranged at the top of the presentation space in a horizontal array, coupled with a stacked feed view beneath the icon array, wherein a feed view is a vertically arranged set of images and text, each of which correlates to a feed item, and further wherein the feed view changes as the icon 830 array is moved left and right or as a particular icon is selected, and further wherein if an individual feed item is selected then the playback pane is stacked on top of the feed view and a video begins to play; if the video is terminated, the playback pane then slides down to reveal the feed view beneath it; and if the user 116 further slides the feed view down, via an appropriate gesture or by dragging a toggle, then the prior feed view is revealed beneath the current feed view, or alternatively a directory of feeds for selection. In this embodiment, the first icon array is scrollable left and right, and that, when there are more icons 830 than will fit in the dimensions of the visible space, individual icons 830 can scroll off the visual field, thus creating a usable space for the first icon 830 array that is larger than the physical space available according to the dimensions of the display; and similarly, as feed views and playback panes are stacked one atop the other or atop a feed directory in this stacked fashion, each such feed view, playback pane, feed directory pane, or other interface element can utilize all of the space available beneath the first icon 830 array; and yet via the stacking of views and panes in coordination with the first icon 830 array, a large amount of usable information is maintained in a state readily accessible by the user 116, including as the user 116 manipulates the first icon 830 array.


In an optional aspect of the primary and other embodiments, an icon 830 may be logically subdivided into areas, each of which may control, activate, or indicate a subset of the Feed Items correlated to the icon 830. Areas can be reserved or prioritized for association with a particular Internet service 206, can be rearranged once associated with a set of Internet services 206, and can be labeled, unlabeled, or conditionally labeled, for example the labels appear if the user zooms the view magnification or appear if the user taps the icon with three fingers. User actions can be associated with different combinations of areas of the icon 830, for example tapping an area of the icon 830 filters the Feed Items to just those associated with the correlated Feed Items. As an example, icons 830 on a smartphone might be large and might therefore contain several areas; a particular icon 830 might be the “social” icon which is correlated to the selective feeds 220 and service feeds 206 of Internet social networking services 126 connected by the user; the upper right corner or region of the tiled icon 830-7 might be reserved for Facebook™ 126, the lower right corner for Twitter™ 126, and the other corners available for other social networking services 126; if the user taps the word “social” in the user interface 312, the selective feed 220 of selective feed items 332 from all connected social networking services 126 appears along with a corresponding tiled icon 830-6, 830-7 that would be an aggregation of the selective feeds 220, where as if the user taps a corner or region of the tiled icon 830-6, 830-7, the selective feed items 332 of the associated social networking service 126 appear. The tiled icon 830-6, 830-7 may optionally be configured programmatically by accessing a programming interface available on the device 112, provided by a device-related service, provided by the aggregation system 108 or a control system related to the aggregation system 108, or provided by another service, to connect to social networking services 126 already connected by the user 116 to the device 112, device-related service, the aggregation system 108 or a control system related to the aggregation system 108, or another service.


In an optional aspect of the primary and other embodiments, the contents and characteristics of an icon 830, a tiled icon 830-6, 830-7, and/or one or more correlated or uncorrelated Feed Items, associated with a user 116 are synchronized across one or more devices 112 or interfaces 312 used by or associated with the user 116. In this optional aspect of the primary embodiment, when the user 116, using one device 112 or interface 312, or the aggregation system 108 changes, adds, or deletes feed to or from a tiled icon 830-6, 830-7, or changes, adds, or deletes a tiled icons 830-6, 830-7, that change, addition, or deletion is reflected, subject to any further, over-riding rules or policies, on the other devices 112 or interfaces 312 used by the user 116, subject to any particular presentation (which may be different in some or all respects) of icons 830, tiled icons 830-6, 830-7 which may apply on that device 112; similarly, when the user 116, using one device 112 or interface 312, or the aggregation system 108 reorganizes a tiled icon 830-6, 830-7, for example changing the sequence, grouping, or other characteristics of the feeds in the tiled icon 830-6, 830-7, that reorganization is reflected, subject to any further, over-riding rules or policies, on the other devices 112 or interfaces 312 used by the user 116, subject to any particular presentation (which may be different in some or all respects) of icons 830 and tiled icons 830-6, 830-7 which may apply on each other device 112. Synchronization of the icons 830 and tiled icons 830-6, 830-7 may be complete or partial, may apply to all or a subset of the icons 830 and/or tiled icons 830-6, 830-7, and may apply to all or a subset of the devices 112 or interfaces 312 used by or associated with the user 116; for example, a given icon 830 or tiled icon 830-6, 830-7 may be designated as specific to a device 112 or interface 312 and therefore is not synchronized to any other device 112 or interface 312; another icon 830 or tiled icon 830-6, 830-7 may be designated as specific to device categories (e.g. smartphones; televisions) and therefore is synchronized from one device 112 or interface 312 within the category to all other devices 112 or interfaces 312 within that category but not to devices 112 or interfaces 312 that are not within that category; and still other icons 830 and/or tiled icons 830-6, 830-7 may synchronize across all devices. Synchronization of icons 830 and/or tiled icons 830-6, 830-7 can be maintained across heterogeneous view carousels 870, so that regardless of the particular view carousel in use on a given device 112 or interface 312 or in a given mode of operation, the icons 830 and/or tiled icons 830-6, 830-7 update appropriately in the context of each view carousel 870. As the icons 830 and/or tiled icons 830-6, 830-7 are updated, the Feed Items associated with the icons 830 and/or tiled icons 830-6, 830-7 will typically be similarly updated, subject to any further, over-riding rules or policies, on the other devices 112 or interfaces 312 used by the user 116, and subject to any particular presentation (which may be different in some or all respects) of feed items which may apply on that device. Additionally, irrespective of any change to the icons 830 or tiled icons 830-6, 830-7, in this optional aspect of the primary embodiment, when the user 116, using one device 112 or interface 312, or the system changes the Feed Items, for example adds or deletes or marks a Feed Item or changes the sequence or other characteristic(s) of one or more Feed Items, that change is reflected, subject to any further, over-riding rules or policies, on the other devices 112 or interfaces 312 used by the user 116, subject to any particular presentation which may apply on each other device. Such synchronized changes may be effected immediately, at a point in time, after a specified or remaining period of time, or without regard to time. Additional rules and/or policies may optionally be provided that over-ride, generally or selectively, the automatic synchronization of the icons 830 and/or tiled icons 830-6, 830-7, for example, a user 116 or the system may specify particular icons that appear in any of, all of, or any combination of: on one or more particular devices 112 or interfaces 312 but not on others, at all times or at certain times, in one viewing mode but not another, or determined by other criteria. Synchronization may apply to some, but not all, aspects, properties, attributes, or features of the contents and characteristics of icons 830, tiled icons 830-6, 830-7, and/or one or more correlated or uncorrelated Feed Items.


In an optional aspect of this embodiment, icons 830 and/or tiled icons 830-6, 830-7 may appear on a device 112 or in the interface 312 temporarily, for example because a user 116 indicated, while using an Internet service 126, an interest in adding that service feed 206 to her tiled icon 830-6, 830-7, or because an Internet service 126 linked to the tiled icon 830-6, 830-7, or as a means of suggesting or recommending a selective feed 220 to the user 116, or for another reason. A temporary icon 830 or tiled icon 830-6, 830-7 may expire based on a period of time, usage time, non-usage time, or other time-based criteria, or based on a count or sequence of actions, action opportunities, based on a count or sequence of actions, inactions, or events, or based on other criteria, or may never expire. A temporary icon 830 or tiled icon 830-6, 830-7 may appear identical to, or may appear different from, its non-temporary counterpart, for example a temporary icon 830 may optionally appear in a different color or size, or in a different place or sequence, or with a different visual intensity, or with different iconography, or with an indicator, such as a mark or graphical element, that conveys that it is temporary. A temporary icon 830 or tiled icon 830-6, 830-7 may optionally also contain actionable indicators, for example to reject or delete it, or to accept or make it permanent, or to accept for this device 112 or interface 312 or only. The Feed Items associated with a temporary icon 830 and/or tiled icon 830-6, 830-7 may be identified in the same manner as those associated with its non-temporary counterpart, or may be identified in a different manner, for example by providing a particular set, or a subset of Feed Items, may appear conditionally, for example based on a user action, gesture, or other condition, or may not appear at all, such that only the temporary icon 830 or tiled icon 830-6, 830-7 appears.


In another optional aspect of this embodiment, one or more icons 830, tiled icons 830-6, 830-7, selective feeds, Internet service feeds, keyword feeds (i.e., a feed with screened to include or exclude feed items based upon a topic, keyword, metadata tag, etc.), aggregate feeds, and/or other feeds (hereinafter “Feeds”) and/or Feed Items associated with a user 116 may conditionally or non-conditionally be displayed on the user's device 112 and/or within an external interface element available on the user's device 112, such as the operating system, web browser, another application, or home screen, other screen, sub-screen, or area on a screen, or other device facility. In this optional aspect of this embodiment, instead of first installing and/or initiating the app, applet or application, which then presents the icons 830, tiled icons 830-6, 830-7, Feeds and/or Feed Items associated with the user 116, one of, a subset of, a composite of, or all of the icons 830, tiled icons 830-6, 830-7, Feeds and/or Feed Items associated with the user 116 are themselves visible on, and accessible via, the operating system, web browser, another application, or home screen, other screen, sub-screen, or area on a screen, or other device facility. Icons 830, tiled icons 830-6, 830-7, Feeds and/or Feed Items may be always be displayed, or may be displayed conditionally, such as when the user first powers on the device or selects the screen or other device facility in which the icons 830, tiled icons 830-6, 830-7, Feeds, and/or Feed Items are embedded, or upon the condition that the user 116 has configured the device 112 to display the icons 830, tiled icons 830-6, 830-7, Feeds, and/or Feed Items in this fashion, or upon the condition that there are new, unseen items in one or more of the icons 830, tiled icons 830-6, 830-7, and/or Feeds. As an example, in this optional aspect of this embodiment, two different users 116 having different tiled icons 830-6, 830-7 but otherwise having identically configured devices would each see a different home screen or other screen, whereas in another embodiment where only the app, applet or application presence is displayed on the home screen, two different users 116 having two different tiled icons 830-6, 830-7 but otherwise having identically configured devices 112 would initially see the same app presence on their respective home screens or other screens, and would only see a difference in their devices, i.e., their different tiled icons 830-6, 830-7, once they had initiated the app, applet or application. In this optional aspect of this embodiment, the embedded icons 830, tiled icons 830-6, 830-7, Feeds and/or Feed Items may also be synchronized with icons 830, tiled icons 830-6, 830-7, Feeds and/or Feed Items associated with the user 116 across any number of other devices as previously discussed, and may include, or not include, temporary icons 830 and/or tiled icons 830-6, 830-7 associated with the user 116 across other devices 112, also as previously discussed.


In this optional aspect of this embodiment, the integration of the user-dependent graphical elements and user controls associated with the icons 830 and/or tiled icons 830-6, 830-7 can be achieved using any of, all of, or any combination of: a device level programming interface; an operating system programming interface; an application level programming interface; a system level programming interface at the system controlling the device interfaces, the system controlling the icons 830 and/or tiled icons 830-6, 830-7, or both; or a system-to-system programming interface where the system controlling the device communicates programmatically with the system controlling the icons 830 and/or tiled icons 830-6, 830-7, directly or through one or more intermediate systems. In a further optional aspect of this and other embodiments, correlated or uncorrelated Feed Items may conditionally or non-conditionally be displayed along with, independently of, and/or without the icons 830 and/or tiled icons 830-6, 830-7 being displayed.


In an optional aspect of this and other embodiments, touching, dragging, clicking, activating, or otherwise engaging with one or more of, or the group of, or a particular one of or subset of, the displayed icons 830, tiled icons 830-6, 830-7, and/or Feed Items, further causes the user's device and/or an interface element available on the user's device, such as the operating system, web browser, another application, or other device facility, to display one or more additional icons 830, tiled icons 830-6, 830-7, Feed Items, or feed item content, with or without activating the user interface 312 in its entirety. In this manner, the displayed icons 830, tiled icons 830-6, 830-7, and/or Feed Items can be used to invoke the user interface 312 or to further view content and selections without invoking the full interface. This limited interface could be a user configurable interface widget that could be placed on any of the four edges of the screen. As one example of the interface 1000 shown in FIGS. 10A-10C, displayed icons 830 or tiled icons 830-6, 830-7 could appear as a single row of icons running along one edge of a smartphone or tablet home screen 1000-1, such that each user of the interface 1000-1 would have a personalized array of icons immediately available by pulling a tab 904 without first invoking the full interface as shown with the tab not pulled in FIG. 10A; dragging the tab 904 from right-to-left, the displayed icons 830 and tiled icons 830-6, 830-7 are shown in a rotating or scrolling column for the interface 1000-2 (for a carousel 805 that contains more icons than can be displayed in the area along one edge of the smartphone home screen) as shown in FIG. 10B; further dragging the icons 830 or tab 904 in a direction perpendicular to the length of the column in the interface 1000-3 could reveal the feed item carrousel 850 showing feed items associated with icons 830 as shown in FIG. 10C; touching a Feed Item in one of the feed panes 712 could invoke playback of the video; all accomplished from the smartphone home screen without first invoking the full interface.


Referring next to FIG. 11A, another embodiment of the smartphone or tablet interface 1000 is shown with the channel carousel 805 arranged horizontally to rotate right-to-left or vice versa. This limited interface could be configured by the user as an interface widget to occupy any horizontal region of the screen giving the option to be higher or lower on the screen. Selecting any icon 830 would display the corresponding feed panes 712 for some or all of the visible icons (not shown) as a horizontal carousel either above or below the channel carousel 805. Selection of a Feed Item in a feed pane 712 would activate a video window 702 (not shown) either above or below the channel carousel 805. In some embodiments, the activation of the video window 702 would fill the entire screen or at least obscure the channel carousel 805 in whole or in part.


In an optional aspect of the primary and other embodiments, some or all content objects, including (but not limited to) channels, feeds, items, icons, icon arrays, and other content objects, automatically or upon user action or selection (e.g., touching a button or other interface element, gesturing, pointing with a pointing device, speaking a command, etc), can initiate the display of, be transitioned into, or cause the overlay by, a customizable user interface area that can be controlled by the operator of the aggregation system 108, by a system associated with the aggregation system 108, by an Internet service 126 associated with the content object from which the customizable user interface area was invoked, by an Internet service 126 separate from the Internet service 126 associated with the content object from which the customizable user interface area was invoked and/or separate from the aggregation system 108, by the operator of the network to which the device 112 is connected or by a service associated with the network to which the device 112 is connected, by the manufacturer of, distributor of, or other party associated with the device 112, by another user 116, or by another party. The customizable user interface area can occupy the entire display area or just one or more portions of it, and can be opaque, translucent, or transparent. Content, including text, graphics, video, audio, and other content, and commands, including executable code, style sheets or similar formatting instructions, and other control commands, can be downloaded to the customizable user interface area when it is invoked, in advance and stored on the device 112, in response to user 116 actions and interactions, as invoked by other commands, or as needed. Commands can be executed by the device 112, by the user interface 312 operating on the device 112, or by a subsystem operating on the device 112, such that the party controlling the customizable user interface area can determine the user experience within the customizable user interface area. In this fashion, the customizable user interface area can be used, by the operator of the aggregation system 108 or other parties, to supplement the content of a feed item, feed, icon array, or other content object(s). The customizable user interface area can be closed, minimized, dismissed, or sent to the background, or the session otherwise ended or terminated, automatically at the conclusion of a session or content experience, upon user action or selection, upon another event, under the control of downloaded commands, remotely at the determination of the party controlling the customizable user interface area, or under the control of the aggregation system 108 or a system associated with the aggregation system 108.


Aspects of the customizable user interface area, the commands that control it, the content and other interfaces to it, and the video display controls such as the video playback control that effect video playback within it, can be normalized across a range of devices 112 that may have substantially different technical requirements, programming language and development environments, capabilities for downloading executable code, security and privacy policies, and the like, thus providing a single, normalized interface across heterogeneous devices for extending the content experience on the device 112, including under the control of various parties as disclosed.


As an example of an implementation of this optional aspect of the primary and other embodiments, an Internet service 126 could provide video feed items about sports; some feed items could include a button labeled “expanded view”; when the user touches the expanded-view button, a customizable user interface are could take over most of the visual display, with a video playback window occupying the upper left three-quarters of the customizable user interface area, and the display space within the customizable user interface area to the right of the video playback window could display a vertically scrolling set of real-time scores and statistics called from a server operated by the sports Internet service 126; or, the area to the right of the display space within the customizable user interface area to the right of the video playback window could display a set of titled thumbnails of related videos called from the sports Internet service 126; or, or, the area to the right of the display space within the customizable user interface area to the right of the video playback window could display a set of titled thumbnails of related videos called from the operator of the aggregation system 108.


In an optional aspect of the primary and other embodiments, the user 116 can optionally select among multiple genre modes. Each genre mode comprises a combination of icons 830 and/or tiled icons 830-6, 830-7 and optionally further comprises a combination of correlated or uncorrelated Feed Items. When a genre mode is selected by the user 116, only those icons 830 and/or tiled icons 830-6, 830-7, and optionally correlated or uncorrelated Feed Items that are associated with the selected genre are displayed by that interface 312 while in the mode. Icons 830 and/or tiled icons 830-6, 830-7, and optionally correlated or uncorrelated Feed Items can be associated with only one, more than one, or a specified number of genres, and/or can have a degree of genre association which can be used to determine which of a user's particular set of icons 830 and/or tiled icons 830-6, 830-7, and optionally correlated or uncorrelated Feed Items should be associated with that genre for genre mode purposes or other purposes. Optionally, a genre may contain, or may contain only, icons 830 and/or tiled icons 830-6, 830-7, Service feeds, Service feed items, and optionally correlated or uncorrelated Feed Items that are not contained in the user's selections, e.g. a genre comprising only recommendations for inclusion in the user's selections, or a genre containing some current selections and some recommendations for inclusion in the user's selections, in either case optionally further limited to a subset of all possibilities; in this mode, the user can optionally choose if only their previously-selected Feed Items are used for the genre filter or if their Feed Items can be supplemented or replaced by feed items that were not previously selected. Optionally, the user 116 can control which genres are available to her. Genres may comprise any attribute or basis for sorting, filtering, or selecting among icons 830 and/or tiled icons 830-6, 830-7, Service feeds, Service feed items, and optionally correlated or uncorrelated Feed Items, including, but not limited to, category, topic, time, viewing history, length, sources, keywords, content elements, ratings, popularity, actor, creator, creation time or date, and/or other attributes. Genres could also comprise users or groups of users of a device 122. As an example of genre mode, a user 116 might have configured her system to offer her a choice of music, movies, fashion, politics, and sports as genres available to her; in this example, when she selects the music genre, icons associated with the music genre or that contain feed items associated with the music genre would be displayed; as a result, her icons for particular musicians, music blogs, and music services would be displayed, each with all associated feed items, plus icons for her social networking services would be displayed, each with all associated feed items that are also associated with the music genre, e.g. her Twitter™ icon would be displayed along with items from her Twitter™ feed that are related to music. Continuing the example, when she selects the politics genre, a different set of icons would be displayed, these icons associated with the politics genre or containing feed items associated with the politics genre; as a result, her icons for particular politicians or political commentators, political parties, and politics blogs would be displayed, each with all associated feed items, plus news services with feed items related to politics would be displayed, each with all associated feed items that are also associated with the politics genre, e.g. her CNN™ icon would be displayed along with items from her CNN™ feed that are related to politics, plus icons for her social networking services would be displayed, each with all associated feed items that are also associated with the politics genre, e.g. her Twitter™ icon 830 would be displayed along with items from her Twitter™ feed that are related to politics. Further genre modes can be contained within a given genre mode, so for example the sports genre mode might further contain a basketball genre mode, which might further contain a college basketball genre mode, or the sports genre mode might contain both the basketball genre mode and the college basketball genre mode. As another example, genre choices available to a user could be standard, users, and recommended. In this example, when she selects standard mode she sees her normal set of icons 830 and Feed Items; when she selects users mode she sees a set of icons 830 that all correlate to other users contained within her standard array of icons 830 and service feeds 206, including optionally individual users that do not appear separately in her standard mode; and when she selects recommended mode she sees icons 830 and Feed Items that do not appear in her standard mode view but that are recommended for her for inclusion, at her option, in her personal configuration.


This optional aspect of the primary and other embodiments may be further extended to incorporate one or more genre modes associated with particular contractual terms, expected performance or content fidelity, content availability, on-device content storage, or other features associated with the device 112, user's services, network or network services, content services, or other aspects of the user's experience. As an example, a genre mode could be associated with content services that are available only on a paid subscription basis. As another example, a genre mode could be associated with feeds and feed items that are pre-delivered to, and/or stored on, the user's device. As another example, a genre mode could be associated with feeds, feed items, data services, and/or other content services wherein the associated data transmissions are higher quality, fidelity, or bandwidth, and/or are not limited to a periodic ceiling or cap, and/or are not separately chargeable to the user on a metered basis, and/or are instead charged to the provider, and/or are accessed using a separate network service or sub-service, such as a separate billing account; as an example, such a genre mode might only be available to a user who subscribes to it and/or pays a separate charge for it, and/or provides, or agrees to the release of, certain personal information; as another example, such a genre mode might be provided by the device manufacturer, bundled with the device, and might use a separate network service, sub-service, account, or other network facility to distinguish the data traffic for the bundled genre mode from the data traffic for other, non-bundled genre modes. Multiple such genre modes could be available to a given user, each such genre mode associated with a particular configuration of contractual terms, expected performance or content fidelity, content availability, on-device content storage, or other features associated with the user's device, network services, content services, or other aspects of the user's experience. Within any such genre mode, any given feed, data service, or other content service can be filtered so that it includes only feed items complying with the particular configuration of contractual terms, expected performance or content fidelity, content availability, on-device content storage, or other features associated with the user's device, network services, content services, or other aspects of the user's experience, and noncomplying feed items are filtered out; for example, a feed from a social networking service that in its unfiltered state contains both complying and noncomplying feed items can be filtered so that only complying feed items are presented when that feed is selected within that genre mode, while the unfiltered feed can be presented when the user accesses it outside of the genre mode.


In an alternative implementation of this aspect of the primary and other embodiments, a feed, feed item, digital service, or other content service associated with particular contractual terms, expected performance or content fidelity, content availability, on-device content storage, or other features associated with the user's device, network services, content services, or other aspects of the user's experience is indicated via a visual element associated with the icon 830 representing such feed, feed item, digital service, or other content service, or associated with the feed item itself. For example, an icon 830 could be highlighted, could be presented in outline, shadow, silhouette, or reverse silhouette, or could contain a small graphical element, such as an exclamation point inside a circle of a particular color, that is super-imposed over, or depicted near, the icon 830, for example over one particular corner. Multiple such visual elements could be available for a given icon 830 or feed item, each such visual element associated with a particular configuration of contractual terms, expected performance or content fidelity, content availability, on-device content storage, or other features associated with the user's device, network services, content services, or other aspects of the user's experience. Also note that such association can be accomplished via the absence of such a visual element, or that such visual elements can indicate non-conformance with, or variance from, an otherwise applicable configuration of contractual terms, expected performance or content fidelity, content availability, on-device content storage, or other features associated with the user's device, network services, content services, or other aspects of the user's experience. This alternative implementation could be implemented without, along with, or in direct or indirect combination with, the genre mode implementations described previously. It should further be noted that a given feed, feed item, digital service, or other content service may only be available when associated with, may not be available when associated with, or may be both available when associated with and separately available when not associated with particular contractual terms, expected performance or content fidelity, content availability, on-device content storage, or other features associated with the user's device, network services, content services, or other aspects of the user's experience, and further that such associations may be consistent for all users, devices, locations, networks, and other connectivity and presentation conditions, but may also vary from one user 116, device 112, location 120, network, or other connectivity or presentation condition to another.


Referring next to FIG. 11B, a block diagram shows an embodiment of a video-content subscription system 1100 interfaced with a device 112 and one or more Internet services 126. The video-content subscription system 1100 allows a user 116 to contract with a wireless, mobile, fixed wireless, broadband, or other network service provider to receive video content available on the Internet (“contracted video content”) that does not count against a data plan of the user 116. Some examples of mobile wireless service providers include AT&T™, T-Mobile™, and Verizon™; some examples of other data service providers include Clearwire™, Comcast™, and CenturyLink™. The video-content subscription system 1100 has one or more wireless and/or data service 1104 components, one or more genre-mode proxy engines 1108, one or more billing systems 1112, and various stores of data that may be in a database, file system, and/or a memory data structure, including subscription records 1116, data-usage records 1120, and one or more video-content stores 1124. The data in the various stores can be combined into a single store or divided between a number of stores at a number of locations.


A user 116 subscribes to a genre-mode or other video content service or plan by contracting with one or more wireless or data service 1104 providers, an agent or partner of one or more wireless or data service 1104 providers, or another contracting party, and a record is recorded in the subscription records 1116. When the user 116 selects a feed item in a selective feed 220 that includes contracted video content, the device 112 connects to the genre-mode proxy engine 1108 through the wireless or data service 1104, or optionally through any other data service that the device 112 is connected to and that is affiliated with, or authorized or otherwise entitled by, the wireless or data service 1104, via a separately resolvable link to the feed item that the aggregation engine 304 or other link modification/generation system has generated or modified to cause the request to be directed, either directly or indirectly, to the genre-mode proxy engine 1108. The device 112 may optionally also provides credentials, such as a user name, device identifier, access code, or other authorizing data to the genre-mode proxy engine 1108; the genre-mode proxy engine 1108 may process the link without attempting to authorize the request, or it may attempt to authorize the request by comparing the credentials from the device 112 to the subscription records 1116, may evaluate network information such as an IP address or other network data information, device 112 information such as a device ID, MAC address, or other device 112 information, application identifying information such as the user agent or an application identifier, or other data provided with the request to verify that the device 112 is authorized to receive the contracted video content. Alternatively, the link may be encoded by the aggregation engine 304 or other link modification/generation system so that it is encrypted or includes a token, an expiration time or condition, or other authorizing modification or aspect.


The wireless or data service 1104 optionally interacts with one or more billing systems 1112. In this optional aspect of the embodiment, the wireless or data service 1104 tracks data usage of the device 112 that is on a wireless or data service 1104 data plan as the wireless or data service 1104 downloads and uploads data to and from the device 112. The billing system(s) 1112 receives data usage information from the wireless or data service 1104. For example, a user 116 with a smartphone can contract with Verizon™ to pay a monthly fee in exchange for Verizon™ providing the user 116 with the ability to send and receive two gigabytes of data per month using the smartphone. Verizon™ tracks how much data the user 116 uses in a month and bills the user 116 accordingly. The same user 116, or another user 116, may also contract with Clearwire™ for home Internet access, and such plans may include a cap on the amount of data downloaded per month, a rate limit on the speed of data transfer, or other service parameter. If the user 116 contracts only with Verizon™ or with Clearwire™ for an extended plan, only the billing system 1112 for that provider needs to be updated with information about the user's 116 referenced video data downloads; alternatively, if the user 116 contracts with both Verizon™ and Clearwire™ for an extended plan, or if Verizon™ and Clearwire™ honor each other's extended data plans, then the user's 116 experience will reflect availability of extended plan content and both Verizon™ and Clearwire™'s billing systems 1112 will need to be updated with information about the user's 116 referenced video data downloads. Optionally, in this optional aspect of the embodiment the billing system(s) 1112 may be supplemented with information about which content items, downloads, and/or uploads are processed by the genre-mode proxy engine 1108 under the extended plan contracted for by the subscriber.


The genre-mode proxy engine 1108 has links to the sources of contracted video content available on the internet, having received these links from either the aggregation engine 304, the aggregation system 108, or another content provisioning system, which may work with the aggregation engine 304 or separately from it, or with the aggregation system 108 or separately from it, or with both the aggregation engine 304 and the aggregation system 108. Using the source links to the contracted video content, the genre-mode proxy engine 1108 requests the contracted video content from an Internet service 126 and transmits the contracted video content to the device 112 through the wireless or data service 1104. The source links may alternatively reference a technical optimization system or service, such as one that provides properly encoded and/or segmented video data files for a particular device 112; as will be seen, such technical optimization services can optionally be provided by an operator of the aggregation system 108, by systems associated with the operator of the aggregation system 108, by devices 112 or software operating on devices 112, or by other services. The genre-mode proxy engine 1108 records an amount of data the genre-mode proxy engine 1108 transmitted to the device 112, and stores the amount of data the genre-mode proxy engine 1108 transmitted to the device 112 in the data-usage records 1120. The genre-mode proxy engine 1108 may be located in the wireless or data service 1104 operator's infrastructure, connected directly to the wireless or data service 1104 operator's infrastructure, or connected indirectly, such as via the Internet, to the wireless or data service 1104 operator's infrastructure; the genre-mode proxy engine 1108 may be operated by the wireless or data service 1104 operator, an affiliated wireless or data service 1104 operator, by the operator of the aggregation system 108, or by another organization; also note that this embodiment is not limited to one wireless or data service 1104 operator, but rather can incorporate two or more.


At a predetermined time, or upon request, the genre-mode proxy engine 1108 provides to the billing system 1112 the amount of data the genre-mode proxy engine 1108 transmitted to the device 112. The billing system 1112 can then deduct the amount of data the genre-mode proxy engine 1108 transmitted to the device 112 from a total amount of data the device 112 used as recorded by the wireless/data service 1104, or otherwise adjust or credit the data consumption associated with the device 112. Alternatively, a record of the amount of data downloaded to the device 112 that is associated with content subject to such an extended or optional plan can be collected and summarized by the device 112 or by an application operating on the device 112, either independently, interfaced to, or operating in conjunction with the billing system 1112; or by network elements operating within, or collecting or processing data from, the network infrastructure of the network services provider, for example policy management, service provisioning, flow control, and other network data management, provisioning, and operating systems, for example by identifying data downloads originating at the proxy engine 1108 or at any of the original Internet services 126 referenced, directly or indirectly, by links provided by the aggregation system 108.


When the genre-mode proxy engine 1108 receives a request for contracted video content, the genre-mode proxy engine 1108 can optionally query the video-content store 1124 to check whether the contracted video content requested is in the video-content store 1124. In this embodiment, the video-content store 1124 contains contracted video content from a third party and is optionally paid by the third party to store and deliver the contracted video content from the third party, or alternatively the third party is paid by the operator of the video-content store or subscription system 1100 for use of the contracted video content, or both.


Referring next to FIG. 11C, an embodiment of a process 1136 for providing the contracted video content through a wireless or data service is shown. The depicted portion of the process begins in block 1140 when the video-content subscription system 1100 receives a subscription request from a user 116 for the device 112 of the user 116 to be registered to access the contracted video content, the contracted video content being available on the Internet. After a device 112 is registered to access the contracted video content, the aggregation system 108 reconfigures separately resolvable links of feed items to point to the genre-mode proxy engine 1108, or alternatively provides properly configured links; for example, reconfiguration of links can occur when an Internet service 126 contracts to be a source of content, for all devices 112, for specially contracted devices 112, or both, or by the aggregation system 108 at a time that the referenced content is identified as actual or potential contracted video content. When a user 116 selects to watch the contracted video content, by selecting the feed item, the device 112 sends a request for the contracted video content to the genre-mode proxy engine 1108 instead of directly to the Internet service 126. In block 1142, the genre-mode proxy engine 1108 receives the request for the contracted video content.


In block 1144, the genre-mode proxy engine 1108 receives links to the contracted video content, which it delivers to the device 112, if necessary retrieving the contracted video content from the Internet service 126, one or more technical optimization services, and/or from the video-content store 1124. The genre-mode proxy engine 1108 can receive distributed full or partial links to the contracted video content and correlations to sources for those links from the aggregation engine 108 and/or from the device 112, or can calculate a source link using a predetermined algorithm or convention, or an algorithm or convention it receives from the aggregation engine 108, the device 112, the Internet service 126, another Internet service 126, one or more technical optimization services, and/or from the video-content store 1124.


In block 1146, the genre-mode proxy engine 1108 identifies a wireless or data service account associated with the device 112. Optionally, in addition in block 1146 the genre-mode proxy engine 1108 verifies the wireless or data service account is authorized to link to the contracted video content through the genre-mode proxy engine 1108.


In block 1150, the genre-mode proxy engine 1108 can optionally check whether the video-content store 1124 has the contracted video content by querying the video-content store 1124. If the video-content store 1124 does not contain the contracted video content, the genre-mode proxy engine 1108 can determine to store the contracted video content, block 1152. For example, the genre-mode proxy engine 1108 can manage the video-content store 1124 as a cache using a least-recently-used algorithm or other caching technique, including with policies specified per item, item type, associated Internet service 126, or other criteria, to store some or all video items as they are retrieved and delivered and to decide what to delete or over-write when the available storage has been used; as another example, after the genre-mode proxy engine 1108 has received one hundred requests for a syndicated news video clip, the genre-mode proxy engine 1108 could determine to store the syndicated news video clip in the video-content store 1124.


If the contracted video content is not in the video-content store 1124, then the genre-mode proxy engine 1108 downloads the contracted video content from an Internet service 126, from a technical optimization service, or from another source as configured or determined. Whether the genre-mode proxy engine 1108 retrieves the contracted video content from the video-content store 1124, the Internet service 126, a technical optimization service, or from another source as configured or determined, the genre-mode proxy engine 1108 transmits the contracted video content to the device 112 through the wireless or data service 1104.


In block 1156, the genre-mode proxy engine 1108 records an amount of data transmitted from the genre-mode proxy engine 1108 to the device 112, as well as related data, such as the IP address and associated network information associated with the request from the device 112, the time of day, location 120 information if available, and other information. And in block 1158, the genre-mode proxy engine 1108 reports to the billing system 1112 the amount of data transmitted from the genre-mode proxy engine 1108, along with related and other data needed by the billing system 1112.


An example of how the process 1136 for providing contracted video content through a wireless or data service could work includes a user 116 that has a wireless or data service data plan that allows the user 116 to use two gigabytes of data a month on a smartphone or other device for $150 per month, creating a wireless or other data service account. The user 116 also subscribes to a genre mode that includes a variety of news sources for an additional $10 per month, such that when the user 116 watches a video from one of the Internet services 126 that is included in the news genre mode that the user 116 has contracted for, the data used in viewing that video does not count against the two gigabytes of data the user 116 has in the wireless or data service data plan.


Continuing with this example, the aggregation engine 304 generates separately resolvable links of feed items that are included within the news genre mode so that the links refer to the genre-mode proxy engine 1108 instead of directly to the related Internet service 126. If the user 116 wanted to watch a news story about Libya on MSNBC.com™, the user would select a feed item relating to the news story about Libya, and the device 112 would access the link provided to it by the aggregation engine 304 and would request the video from the genre-mode proxy engine 1108. The genre-mode proxy engine 1108 would then request the video content item from a technical optimization service associated with the aggregation system 108, which in turn would obtain the video item from MSNBC.com, properly transcode and segment the video item, and return a properly formatted video item to the genre-mode proxy engine 1108. In this example, access to the genre-mode proxy engine 1108 would be controlled by access to the link that refers to the genre-mode proxy engine 1108, and no other authentication would be required. As the genre-mode proxy engine 1108 transmits the news story about Libya to the device 112, the genre-mode proxy engine 1108 records how much data the genre-mode proxy engine 1108 sends to the device 112. The genre-mode proxy engine 1108 then reports to the billing system 1112 of the wireless or data service 1104 provider the amount of data the genre-mode proxy engine 1108 transmitted to the device 112 so that the billing system 1112 does not charge for the amount of data the genre-mode proxy engine 1108 transmitted. This example demonstrates some of the complexities of operating the aggregation system 108 in conjunction with some wireless or data service providers deploying genre-mode proxy engines 1108. For example, if a first user 116 shares a video item on an Internet service 126 of which a second user 116 is also a user, but only one of the two users 116 is a subscriber to a genre-mode plan that encompasses that item, then the link to the video item received by the user interface 312 used by the first user 116 will be different from the link received by the user interface 312 used by the second user 116, as one link will refer to the video item at its source Internet service 126, while the other link will refer to the video item via the genre-mode proxy engine 1108. As more wireless or data service providers deploy genre-mode proxy engines 1108, the number of disparate links that all refer to the same video item increases; the aggregation system 108, or a system associated with the aggregations system 108, keeps track of the video links that reference a video item and is responsible for sending the correct such video link to each user 116; the aggregation system 108 is also responsible for providing a correct version of the link when a user 116 shares the video item to an Internet service 126, plays the video item on a different device that is not included within the genre-mode subscription plan of the user 116 (for example, on a device 112 the user 116 also owns that is serviced by a different wireless or data service provider), and in other cases.


Referring next to FIG. 11D, an embodiment of a process 1162 for providing contracted video content through an aggregation system 108 is shown. The depicted portion of the process 1162 for providing contracted video content through an aggregation system 108 begins in block 1164 where the aggregation system 108, through the user interface 312, receives a subscription for providing contracted video content. In block 1166 the aggregation system 108 authenticates the user 116 and in block 1168 the aggregation system 108 receives a device-specific or premises-specific identifier for the device 112 the user 116 is using. The aggregation system 108 associates the device-specific or premises-specific identifier with a wireless or data service account in block 1170. In block 1172, the aggregation system 108 records that the user 116 selected a feed item that linked to contracted video content. In block 1174, the aggregation system 108, through the user interface 312, records an amount of data used to provide the contracted video content. And in block 1176, the aggregation system 108 reports to a wireless or data service provider the amount of data the device 112 used to view the contracted video content. As previously discussed, while a genre mode can optionally be comprised of particular content associated with a content category or other classification, a genre mode can also be comprised of content that is associated with particular contractual terms, expected performance or content fidelity, content availability, on-device content storage, or other features associated with the device 112, user's services, network or network services, content services, or other aspects of the user's 116 experience. Consequently, for clarity it should be noted that the genre-mode proxy engine 1108, video-content store 1124, billing system 1112, and the various stores of data including subscription records 1116 and data-usage records 1120 are also not limited to particular content associated with a content category or other classification, but rather may operate in conjunction with content that is associated partly, or only, with particular contractual terms, expected performance or content fidelity, content availability, on-device content storage, or other features associated with the device 112, user's services, network or network services, content services, or other aspects of the user's experience.


The functions associated with the genre-mode proxy engine 1108, the video-content store 1124, the billing system 1112, and the various stores of data including subscription records 1116 and data-usage records 1120 can be technically implemented through any of, all of, or any combination of: execution as part of the user interface 312; as part of software functionality on the device 112; as part of the aggregation system 108; as part of a system associated with the aggregation system 108; as part of an Internet service 126 associated with the aggregation system 108 and/or the user 116; as part of, or in conjunction with, a content management system, shared content management system, or other system associated with a service feed 206; as a standalone system or programming interface; as a standalone Internet service 126; through a programming interface or other digital interface of the device 112, the operating system executing on the device 112, or other software executing on the device 112; through a programming interface or other digital interface available in conjunction with the network connected, directly, indirectly, or through an intermediate network, to the user device 112.


The visual representation of the genre modes available, the selected genre mode, and other genre mode related characteristics may optionally be implemented as an icon, array of icons, or sub-array of icons, as a separate indicator, message, pull-down control, keyword control, or symbol, conditionally indicated to the user 116, or not indicated to the user 116. When more than one genre mode is available to the user 116, the selected genre mode may be continuously, periodically, conditionally, or partially synchronized, or not synchronized, from one device used by the user 116 to another device 112 used by the user 116.


In an optional aspect of the primary and other embodiments, a user can optionally, conditionally, or non-conditionally share, or prohibit sharing of, in real-time, near real-time, retrospectively, or in aggregate, some or all of her icons 830 and/or tiled icons 830-6, 830-7, other user interface elements, components, contents, messages, or characteristics, or selection of genre or other mode, and/or correlated or uncorrelated Feed Items, Feeds, as well as associated actions, user actions, and responses to user actions, with one or more other users of the aggregation system 108, with one or more other users of another Internet service 206, such as a social networking service 126, or with one or more users of another service enabled by the user's device or by interconnection of the user's device with another system or service. Such sharing can be implemented automatically, periodically, continuously, as a result of an action or selection by the user or another user, or on another basis. For example, a user 116 could optionally share her tiled icons 830-6, 830-7 along with any Feed Item filtering with another user 116 of the aggregation system 108, so that the receiving user could see and, at her option adopt, some or all of the icons 830, tiled icons 830-6, 830-7, icon combinations, or icon configurations, along with the correlated Feeds, of the sharing user. Such sharing could be implemented by allowing the sharing user to send some or all of her icon configuration to the receiving user, or by enabling the sharing user to publisher her icon configuration or a portion of it so that any other user can see and optionally adopt some or all of it, or by enabling the receiving user to request, and the sharing user to allow or not allow, access to the sharing user's icon configuration, or by any similar process. As another example, a user 116 could optionally share, in real-time or near real-time, with other users of the aggregation system 108 or with other users of a social networking service, each icon selection action that she takes, such that other users would be notified of the icons 830, tiled icons 830-6, 830-7, and/or Feeds selected by the sharing user, and optionally of the device 112 the sharing user is using to access the aggregation system 108, from moment to moment as the sharing user uses the aggregation system 108.


In addition, a user can optionally, conditionally, or non-conditionally allow or not allow, in real-time, near real-time, retrospectively, or in aggregate, sharing to her of some or all of the icons 830, tiled icons 830-6, 830-7, Feeds, other user interface elements, components, contents, messages, or characteristics, or selection of genre or other mode, and/or correlated or uncorrelated Feed Items, as well as associated actions, user actions, and responses to user actions, from one or more other users of the aggregation system 108, from one or more other users 116 of another Internet service 206, such as a social networking service, or from one or more users 116 of another service enabled by the user's device or by interconnection of the user's device 112 with another system or service.


In an optional aspect of the primary and other embodiments, the operator of a digital service can optionally, conditionally, or non-conditionally permit, prohibit, limit, determine permitted accessing and/or sharing devices 112, services, locations 120, or modes, or otherwise control access to and/or sharing of, in real-time, near real-time, retrospectively, or in aggregate, some or all of the icons 830 and/or tiled icons 830-6, 830-7, other user interface 312 elements, components, contents, messages, or characteristics, or selection of genre or other mode, and/or correlated or uncorrelated Feed Items, Feeds, as well as associated actions, user 116 actions, and responses to user 116 actions, available to users 116 of the digital service via the aggregation system 108, and including inclusion of such in a directory of available feeds, items or other content. As an example, an operator of a digital service could prohibit any sharing of any user 116 action, permit sharing of all feed items with other users 116 of its digital service, and permit sharing of some feed items by its users 116 with other users who are not users of the digital service while prohibiting such sharing of certain other feed items; such controls can permit the operator of a digital service to control sharing alternatives available to its users 116 for its content, control the exposure of its users' 116 actions when interacting with its content, and otherwise maintain a more controlled and/or secure environment concerning its users 116 and content within the broader aggregation system 108. Similarly, visibility of, and/or the availability of, a digital service's feeds, feed items, icons 830 and/or tiled icons 830-6, 830-7, other user interface 312 elements, components, contents, messages, or characteristics, or selection of genre or other mode, and/or correlated or uncorrelated Feed Items, Feeds, as well as associated actions, user 116 actions, and responses to user actions, or other content or digital service configuration information or indicators can be limited to only those users who have been authenticated to the digital service, for example by providing user credentials such as a username and password for the digital service, including authentication through a directory service, an identification authority, or through a similar user identification or registration function, to the digital service or to related digital services. Upon authentication, the digital service can return to the aggregation system 108 the specific configuration of feeds, feed items, icons 830 and/or tiled icons 830-6, 830-7, other user interface elements, or other content or digital service configuration information or indicators authorized for the user 116, which can then be effected by the aggregation system 108; subsequent modifications of the user's 116 specific configuration can be communicated to, and effected by, the aggregation system 108; and any subsequent expiration or revocation of the user's 116 access to the digital service can be communicated to, and effected by, the aggregation system 108.


In the primary and other embodiments, implementation, configuration, synchronization, coordination, management, and sharing of icons 830, and/or groupings of icons 830 and/or tiled icons 830-6, 830-7, and/or other user interface elements, components, contents, messages, or characteristics, or genre or other mode, and/or correlated or uncorrelated Feed Items, as well as associated actions, user actions, and responses to user actions, can be implemented through any of, all of, or any combination of, a direct data or programming interface between the user interface 312, the user's device 112, and/or an interface element available on the user's device, such as the operating system, web browser, another application, or other device facility, and the feed presentation interface operating on the device; a data or programming interface between the visual user interface 312, the user's device 112 and/or an interface element available on the user's device 112, such as the operating system, web browser, another application, or other device facility, and the aggregation system 108 or other control system associated with the aggregation system 108; a data or programming interface between an intermediate system communicating directly or indirectly with the visual user interface 312, the user's device 112 and/or an interface element available on the user's device 112, such as the operating system, web browser, another application, or other device facility, and the feed presentation interface operating on the device; a data or programming interface between an intermediate system communicating directly or indirectly with the user interface 312, the user's device 112 and/or an interface element available on the user's device, such as the operating system, web browser, another application, or other device facility, and the aggregation system 108 or other control system associated with the aggregation system 108; a data or programming interface communicating directly or indirectly between the aggregation system 108 and an Internet service 206 or another system or service; a data or programming interface communicating directly or indirectly between the aggregation system 108 and an Internet service 126 or another system or service, utilizing user access credentials to access the aggregation system 108, the Internet service 126, and/or another system or service; or another data or programming interface that communicates the contents of, or information about, the icons 830, tiled icons 830-6, 830-7, and/or other user interface elements, components, contents, messages, or characteristics, or genre or other mode, and/or Feed Items, or other information associated with one or more users 116 of the device 112 or user interface 312.


In an optional aspect of the primary embodiment, the user 116 has the option of selecting regular viewing mode, which plays each video in the selective feed 220 in full as presented (that is, plays the first video, then plays the next video, then plays the next video) or can select a quick-play viewing mode activated by a quick-play control 754, which plays one or more excerpts of each video, rather than the full videos, in scan sequence. In this optional aspect of the primary embodiment, the excerpts may be of a specific length, may be of selectable length by the user 116, may be of a length selected by the aggregation system 108, or may be of a length separately selected for each feed item 332 by the aggregation system 108 for each. In this optional aspect of the primary embodiment, the user 116 has the option of clicking on a play-in-full icon, which then initiates playback of the full feed item 332 from the beginning; upon completion, the aggregation system 108 will stay in regular viewing mode of the active viewing pane 708 for the next feed item 332 in the user's selective feed 220, or in another optional aspect of the primary embodiment, the aggregation system 108 will return to quick-play viewing mode for the next feed item 332. When the user 116 selects quick-play viewing mode or alters the settings (length of excerpt, etc.) of quick-play viewing mode, the presentation of the user's selective feed 220 is filtered to include only those feed items 332 for which the necessary excerpt(s) is(are) available, thus presenting the user 116 a selective feed 220 that functions properly in this mode.


In another optional aspect of the primary embodiment, content publishers and/or Internet services 126 may be offered the option of prohibiting quick-play viewing mode or of specifying one or more excerpts to be presented in quick-play viewing mode. If a content publisher 126 has elected to prohibit quick-play viewing mode, when the user 116 selects this viewing mode the presentation of the user's Feed is additionally filtered to include only those Feed Items for which the content publisher 126 has not prohibited quick-play viewing mode, thus presenting the user 116 a Feed that functions properly in this mode. If a content publisher 126 has elected to specify one or more excerpts to be presented in quick-play viewing mode, when the user 116 selects this mode the presentation of the user's Feed is additionally filtered to include only those Feed Items for which the specified excerpt matches the quick-play viewing mode settings, or alternatively, the user's settings are overridden and the content publisher's 126 selected excerpt is presented even though it does not meet the user's quick-play viewing mode settings.


In another optional aspect of the primary embodiment, content publishers 126 may be offered the option of prohibiting quick-play viewing mode on specific devices 112 or specifying the excerpt to be used on a particular device 112 in quick play viewing mode. If a content publisher 126 has elected to prohibit quick-play viewing mode on specific devices 112, when the user 116 selects quick-play viewing, the presentation of the user's Feed is additionally filtered to include only those Feed Items for which the content publisher 126 has not prohibited quick-play viewing mode on the device 112 the user 116 is using for playback, thus presenting the user 116 a Feed that functions properly in this mode. If a content publisher 126 has elected to specify one or more excerpts to be presented in quick-play viewing mode on a particular device 112, when the user 116 selects this mode the presentation of the user's Feed is additionally filtered to include only those Feed Items for which the content provider's 126 specified excerpt for the device 112 being used by the user 116 matches the quick-play viewing mode settings, or alternatively, the user's settings are overridden and the content publisher's 126 selected excerpt for the device 112 being used by the user 116 is presented even though it does not meet the user's quick-play viewing mode settings.


In the primary embodiment, the Feed presented to the user 116 may optionally be modified (expanded or narrowed) based on the capabilities of the device 112 in use by the user 116 to effectively render the video content that comprises, is contained in, is referred to by, or is otherwise indicated by, the Feed Items in the Feed. In the primary embodiment, the ability to effectively render the video content is determined in absolute terms, that is, either the device 112 can render it or the device 112 cannot; in another embodiment, the ability to effectively render the video content is determined in qualitative terms, such as based on how well the device 112 can render the video content, based on the relative quality of the video playback in the context of the device's overall capabilities, or based on the relative quality of the video playback in the context of the particular user's or a typical user's normal usage of the device 112. In some embodiments, the Internet service 126 can specify a minimum quality of service such that their video is rendered at an adequate quality and if the user device 112 is not capable of the specified minimum quality, those Feed Items are removed, hidden or disabled from the Feed.


In an optional aspect of the primary and other embodiments, the device 112 can notify the aggregation system 108 when it receives a Feed Item that does not reference renderable video, or that references video that renders poorly, or that references video that is blocked or prohibited from playing or that otherwise does not play properly or with adequate quality of service (QoS). The aggregation system 108 can evaluate the notifications received from multiple devices 112, including the number of notifications that have been received (including optionally receiving just one notification); the frequency with which the notifications are received; the changes in velocity of the notifications; the geographic, network, domain, subdomain, or other locations from which the notifications are received; the format, encoding, bitrate, or content attribute; the device or devices 112, class of device 112, software or firmware version of the device 112 from which the notifications are received; or other factors associated with the notifications received; and remove the Feed Item from the Feed of some or all users 116, and optionally remove other related, similar, or otherwise correlated Feed Items from the Feed of some or all users 116. For example, a Feed Item may stop rendering properly on a set top box device 112, but render appropriately on tablet computers 112. For Feeds played on set top box devices 112, the Feed Item would be removed or disabled, but would remain in a Feed sent to a tablet computer 112. Where the players 112 report problems that correlate to one of the above factors, similarly situated users 116 could have that Feed Item disabled. Additionally, support personnel associated with the aggregation system 108 could be notified so that the rendering failure could be corrected, for example by contacting the provider of the service feed in which the Feed Item originated, by updating or otherwise modifying the user interface 312, by modifying the rendering system 112 so that the affected Feed Item(s) can be properly viewed, or by other corrective action. For example, a service feed provider may change its video player software or video encoding techniques such that the Feed Items are no longer playable on the rendering system 112. Support personnel could correct the interface software that retrieves video from the service feed provider's Internet domain or from the service feed provider's feed to enable the video from the service feed provider to play correctly in the rendering system 112. Feed Items 332 that were disabled could be re-enabled after this correction is made and the previously unrenderable Feed Items were reprocessed and made available to the relevant Feeds.


In an optional aspect of the primary embodiment, the Feed presented to the user 116 may optionally be modified (expanded or narrowed) based on the user's Feed Items that are accessible or accessed and the device 112 in use by the user 116, based on policies, attributes, or characteristics associated with the Feed Items, including the preferences or settings specified by any of, all of, or any combination of the producer of, publisher of, distributor of, contributor to, or other party affiliated with one or more items or the content contained in, or referenced by, one or more Feed Items, or by one or more Internet services 126 that contributed one or more feed items, or the content contained in, or referenced by, one or more Feed Items, to the feed. In an optional aspect of the primary embodiment, the feed presented to the user 116 may optionally be modified (expanded or narrowed) based on the user's Feed Items and the device 112 in use by the user 116, based on policies, attributes, or characteristics associated with the device 112, including the preferences or settings specified by the manufacturer of, distributor of, or other party affiliated with the device 112. In another optional aspect of the primary embodiment, the Feed presented to the user 116 may optionally be modified (expanded or narrowed) based on the user's Feed Items and the network or network segment to which the device 112 in use by the user 116 is attached, based on policies, attributes, or characteristics associated with the network or network segment, including the preferences or settings specified by the network or network segment operator, including a network operator, an enterprise or other organization, or an operator of a home or other premises network.


In the primary embodiment, the user 116 can view a subset of the Feed and/or playback of the video content that comprises, is contained in, is referred to by, or is otherwise indicated by, the Feed Items in the Feed based on (including or excluding) all of, any of, or any combination of: the Internet service(s) 126 from which one or more Feed Items were obtained; the user(s) 116 or other entity(ies) associated with the Internet service(s) 126 from which one or more Feed Items were obtained; the source(s) where one or more Feed Items were referenced; the source(s) where one or more Feed Items were published; the source(s) where one or more Feed Items were first published; one or more lists or categories of Internet services 126; one or more lists or categories of users of one or more Internet services 126; one or more lists or categories of sources where Feed Items are referenced, published, or first published; one or more topics to which one or more Feed Items refer; one or more categories of topics or within which one or more topics are included; one or more time ranges, timeframes, sequences, or dates; one or more ratings, either globally or within one or more Internet services 126; activity related to one or more Feed Items; or other criteria associated with one or more Feed Items.


In an optional aspect of the primary embodiment, the user 116 can attach one or more devices 112, such as connected consumer electronics equipment, video game consoles, smartphones, set top boxes, pad/tablet computers, and other devices, to his or her user account with the aggregation system 108. In the primary embodiment, the user 116 navigates to a code available on the device 112 she desires to connect to her account, then enters that code into her account through the user interface 312. In an alternative method for connecting a device 112 to her account, the user 116 navigates to a sign-in screen on the device 112 she wishes to connect and enters her username and password, thereby signing into the aggregation system 108 from the desired device 112. In another method for connecting a device 112 to a user's account, the device 112 is configured before shipment to connect to her account, based on information she provides or that is otherwise available, for example at the time of placing the order. Under any of these or other methods, the aggregation system 108 of the primary embodiment then identifies the device type, unique identification information, and other technical and configuration characteristics, identifies the device 112 as connected to the user's account, and provides the appropriately configured Feeds, properly formatted service feed Items, other user interface parameters and elements, operational parameters, controls and commands, and other content and data to the device 112, and accepts data, input, and other appropriately formatted (and, if desired, authenticated) entries from the device 112. In one embodiment, a device 112 can only be attached to a single user account with the aggregation system 108; in another embodiment, a device 112 can be attached to multiple user accounts of the aggregation system 108.


In an optional aspect of the primary embodiment, the aggregation system 108 determines one or more home regions, locations, or other geographic characteristics of a user 116, or of a device 112, or the combination of a user 116 and device 112, with any appropriate level or range of geographic or cultural precision, such as a global region (e.g., North America, Western Europe), continent, country, state, county, city, postal code, designated marketing area (DMA), census tract, language, zone, or other cultural environs. The home regions, locations, or other geographic characteristics can then be used to filter, prioritize, select, or make substitutions for, some or all feed items, or versions of feed items, or versions of content associated with feed items, such as video content, presented in or with the Feed for a user 116, for example to select a version of a Feed Item that is presented in a language specific to, or appropriate for, a region, location, or characteristic, or that contains a content version tailored to, or appropriate for, a region, country, or location, or substitute one such version of a Feed Item for another, or as another example to filter out a Feed Item 332 that is not appropriate for, or is prohibited for legal or regulatory reasons in, a country or location. In another embodiment of this optional aspect of the primary embodiment, the user 116 can specify her home region, location, or other geographic characteristics. In yet another embodiment, the aggregation system 108 determines one or more home regions, locations, or characteristics of a user 116, the user 116 can also specify her home region, location, or other geographic characteristics, and the aggregation system 108 can determine when, under what conditions, and/or for which Feed Items to use the home region, location, or other geographic characteristics specified by the user 116 and when, under what conditions, and/or for which Feed Items to use the home regions, locations, or other geographic characteristics determined by the aggregation system 108. In one embodiment, the Internet service 126 can specify a home region, location, or other geographic characteristics on a per service feed 206 or per Service feed item 308, which is communicated to the aggregation system 108 and can be used by the aggregation system 108 independently, or in conjunction with, the home region, location, or other geographic characteristics determined by the aggregation system 108, or the home region, location, or other geographic characteristics specified by the user 116, or both.


In an optional aspect of the primary embodiment, the user interface 312 of the aggregation system 108 presents the user 116 with a list of, or array, comprising one or more of the devices 112 connected to the aggregation system 108, optionally including the manufacturer, model, device type, carrier, unique identifier, and/or other relevant descriptive data; allows the user 116 to provide customized names or identifiers to each device 112 (such as “John's smartphone” or “Living Room TV”); enables the user 116 to manage each device 112, including to cancel the connection of that device 112 to the user's account; enables the user 116 to manage which of his or her Feeds, subsets of feeds, lists of items, or other category or subset of Feed Items is available on each device 112, and under what label or title; enables the user to identify or save Feed Items for a specific device or devices 112, for example, while browsing the web via a web browser or while reviewing her Feed from a connected smartphone, identify or save a video for viewing on the device “Living Room TV” or on the group of devices “TVs at Home”; enables the user 116 to manage the lengths of items, content of items, category of items, or other item attributes that will determine or influence which content or Feed Items are available on that device 112; allows the user 116 to control one connected device 112 from another, such as controlling a connected Blu-Ray player from a connected smartphone; control how one or more Feeds, subset(s) of the Feed(s), or group of content or Feed Items is/are filtered and/or presented on the device or another device 112; and enables the user 116 to save, rollback changes to, or recover prior versions of, such configurations, information, settings, or controls associated with one or more devices 112.


In an optional aspect of the primary and other embodiments, the aggregation system 108 accesses multiple Internet services 206 by accessing a single shared content management system. The aggregation system 108 may use a single system-level access technique, such as a token, sign-in sequence, shared secret key, public key, digital signature, or other authorization technique, to access the shared content management system, or may use an individual system-level access technique to access the shared content management system for each authorized Internet service 206 associated with the shared content management system, or may access the shared content management system without any system-level access control. The aggregation system 108 can use common access, interface and processing steps and techniques for all Internet services 206 associated with a particular shared content management system, while still identifying the separate Internet services 206 associated with the shared content management system and identifying, and maintaining the association of, Feed Items and other associated information (such as metadata) with the proper Internet service 206 associated with the shared content management system. The aggregation system 108 may similarly access multiple shared content management systems concurrently or sequentially. If a given Internet service 206 is associated with more than one shared content management system, the aggregation system 108 can optionally maintain separation of the Feed Items and other associated information from some or all of the shared content management systems associated with the Internet service 126, or can merge some or all of them into a single Feed of content and/or associated information associated with the Internet service 126. If a given Internet service 126 migrates from one shared content management system to another shared content management system, the aggregations system 108 can access the new shared content management system using any new required system-level access techniques required and can optionally merge some or all of the Feed Items and other associated information into a single Feed of content and/or associated information associated with the Internet service 126.


In an optional aspect of the primary and other embodiments, the operator of the aggregation system 108 or another service provider can provide any of, some of, all of, or any combination of technical optimization, digital advertising execution, user activity reporting, and synchronization with other applications for providers of content Feeds, Internet services, or other content, data, or services to the aggregation system 108.


Technical optimization includes, but is not limited to, audio and/or video encoding and/or transcoding, at one encoded bitrate or at multiple encoded bitrates; audio and/or video encoding and/or transcoding to adapt files for delivery to particular devices, including detecting the device 112 and selecting an appropriate technical format associated with the device 112; segmenting encoded files into appropriate segment sizes for delivery adapted to various devices 112 and/or various network connectivity conditions, so that files are encoded in the proper format and protocol for particular devices, and/or so that overall segment lengths are appropriate for a given device, given the heterogeneous memory, processor, buffer, and other technical characteristics of different devices 112, and/or so that higher bitrate segments can be requested and/or delivered when more network throughput is available, while lower bitrate segments can be requested and/or delivered when less network throughput is available; file transmission, or delegation of file transmission to one or more selected data services providers or data, storage, or computing infrastructure providers; and identifying a pause point when a user 116 pauses viewing of an item for continued viewing later, calculating a resume point from the pause point plus an offset so that resumed viewing begins at a point prior to the actual pause point, correlating the pause point and/or resume points in one encoded and/or segmented version of the item to the equivalent pause and/or resume points in another encoded and/or segmented version of the item.


Digital advertising execution includes, but is not limited to, issuing one or more appropriately formatted advertising requests to one or more advertising services or servers before, after, during, or in conjunction with a content request, play, other user action, or independently of a user action; identifying the appropriate advertising service or server to issue advertising requests to, including allocating advertising requests among multiple advertising services or servers for a given content request or play or among a series of content requests or plays; and including based on the service feed source, content publisher, content distributor, or other entity associated with the content, device, network, or user; generating, retrieving, sending and/or receiving parameters associated with digital advertising from data files or tables, or in URIs, content tags, embed codes, scripting languages, or programming calls; incorporating digital or other advertisements into the content experience, including displaying or inserting audio, video, graphic, or other advertisement content before, after, during, in overlay, in alphablend, in conjunction with, or independently of, audio, video, graphic, or other content; controlling the presentation and/or effects of controls, such as the availability of a skip or fast forward control, based on information, instructions, and/or parameters received from one or more advertising services or servers or related services or servers; and reporting started, partially completed, completed, or otherwise characterized advertisement views to one or more advertising services or servers, measurement services or servers, and/or other services or servers.


User activity reporting includes, but is not limited to, issuing appropriately formatted URL requests, pixel requests, data messages, commands, or other data interactions to one or more measurement servers or services, analytics servers or services, reporting servers or services, or other servers or services. The activity reporting could be used by the aggregation system 108 and optionally provided back to the Internet services 126 for their Feeds and/or Feed Items.


Synchronization with other applications includes, but is not limited to, linking between the user interface 312 or user device 112 and one or more other applications; linking specifically from a given Feed or Feed Item to one or more other applications; including in the linking process an identification of the user's identity, in the context of the aggregation system, the provider of the other application(s), or the provider of another Internet service 126; including in the linking process an identification of what content or other item, or location within the user interface 312 or user device 112, or user action the user selected, viewed, interacted with, or performed that resulted in, or was associated with, linking to the one or more other applications; prompting, from the user interface 312 or user device 112, the download of one or more other applications; and notification, in the user interface 312 or user device 112, of the availability of one or more other applications or services.


Technical optimization, digital advertising execution, user activity reporting, and synchronization with other applications can be technically implemented through any of, all of, or any combination of: execution as part of the user interface 312; as part of software functionality on the device 112; as part of the aggregation system 108; as part of a system associated with the aggregation system 108; as part of an Internet service 126 associated with the aggregation system 108 and/or the user 116; as part of, or in conjunction with, a content management system, shared content management system, or other system associated with a service feed 206; as a standalone system or programming interface; as a standalone Internet service 126; through a programming interface or other digital interface of the device 112, the operating system executing on the device 112, or other software executing on the device 112; through a programming interface or other digital interface available in conjunction with the network connected, directly, indirectly, or through an intermediate network, to the user device 112.


In one implementation of this aspect of the primary and other embodiments, technical optimization, digital advertising execution, and user activity reporting are provided by the operator of the aggregation system 108. In this implementation, a service feed provider enables access to an XML feed of video content items as video service feed items are published or otherwise become available; enables access to its digital advertising server; enables access to an XML feed of its digital advertisements; provides a configuration for its content delivery service; and provides one or more reporting service URLs or beacons. The operator of the aggregation system 108 receives the XML feed of video content items from the service feed provider; encodes and/or transcodes the video feed items into one or more suitable encoded file formats, each at one or more bitrates, preparing the video content for playback on some or all of the devices supported by the aggregation system 108; where supported by the device 112 and/or expected delivery conditions, segments the encoded files into one or more segment lengths suitable for some or all of the devices 112 supported by the aggregation system 108; and associates one or more Internet URLs or other content identifiers with each encoded file or segment. The operator of the aggregation system 108 also receives the XML feed of advertisements and similarly prepares the advertisements for playback on some or all of the devices 112 associated with the aggregations system 108. The operator of the aggregation system 108 then provides in the feed sent to user devices appropriate URIs for that device 112, manifests containing appropriate URIs for that device 112, or alternatively intermediate URIs, or manifests containing intermediate URIs that will lead, through HTTP redirection or other similar techniques, to appropriate URIs for that device 112. In this manner, when a content item, URI, intermediate URI, or manifest containing URIs or intermediate URIs is requested by the user, it will be requested from the aggregation system 108 or a system associated with the aggregation system 108, rather than directly from the Internet service 126; in addition, a content item, URI, intermediate URI, or manifest containing URIs or intermediate URIs can be associated with one or more data services providers or data, storage, or computing infrastructure providers for delegation of file transmission, wherein the data services provider or data, storage, or computing infrastructure provider is associated with the Internet service 126, feed item provider, or related digital service, and optionally wherein one or more URIs, intermediate URIs, or manifests containing URIs or intermediate URIs is configured by the aggregation system to identify the feed provider, feed item provider, or related digital service, or its associated account, to the data services provider or data, storage, or computing infrastructure provider, and/or to or to configure in advance, in whole or in part, the facilities to be used by the data services provider or data, storage, or computing infrastructure provider; note also that such delegations can be made by the operator of the aggregation system 108 among multiple data services provider or data, storage, or computing infrastructure providers associated with the Internet service 126, feed item provider, or related digital service, and can be conditioned on the user 116, the user's device 112, network connection, or location 120, the selected genre mode in use by the user 116, or any other aspect of the user's 116 configuration or use of the user interface 312. For example, the operator of the aggregation system 108 can execute delegation of file transmission for a particular Internet service 126 to one data services provider when the user is in a given genre mode, and a different data services provider when the user 116 is in a second genre mode. The operator of the aggregation system 108 can operate systems that encode, transcode, and/or segment files, can utilize an outside service that encodes, transcodes, and/or segments files, or can utilize an outside service that provides URIs, intermediate URIs, manifests containing URIs, and/or manifests containing intermediate URIs that identify the content in a form appropriate for the device 112.


Continuing with this implementation, a URI sent to the device 112 can include or encode parameters associated with digital advertising management, options, processes, or alternatives, which can then be passed through to digital advertising servers or services, either directly or after combination with other information or parameters. Alternatively, the parameters can be retrieved from a file or table, can be generated, or can otherwise be determined. These parameters can influence or control the selection of advertising servers or services for some or all of the available advertising units, the trafficking of advertisements into available advertising units, or other aspects of the digital advertising process.


Continuing with this implementation, before, during, after, or in conjunctions with content selection or playback by the user 112, the operator of the aggregation system 108 or associated system can then issue a request to the advertising server or service identified by the Internet service 126, receive in response a designation of which advertisement to insert before, after, or into, or display in conjunction with, the content during the content playback experience, and can insert or display the correct advertisement, at the correct position, in a properly encoded and segmented form, into the playback experience on behalf of the Internet service 126. The advertisement can be inserted by any of, all of, or any combination of: the user interface 312, the user's device 112, by inserting URLs or intermediate URLs referencing the advertisement into manifests sent to the user's device 112, by inserting manifests containing URLs or intermediate URLs referencing the advertisement into the sequence of manifests sent to the user's device 112, or directly into the content sent to the user's device 112, either at the time the content is requested or in a preparation step before the content is requested. At, during, after, or in conjunction with the playback or display of the advertisement, the operator of the aggregation system 108 can then report completion of the advertisement playback or display to one or more advertising servers or services or other reporting servers or services, identified by or associated with the Internet service 126, on behalf of the Internet service 126. The operator of the aggregation system 108 can also report progress through, completion of, and other analytical characteristics of the content video playback activity of the user to one or more reporting and/or measurement servers or services identified by, or associated with, the Internet service 126, on behalf of the Internet service 126.


This implementation can support multiple Internet services 126, providing independent XML feeds of content items as they are published or available and XML feeds of advertisements, utilizing different data services providers (while also supporting multiple Internet services 126 that use the same data services provider, by identifying to the data services provider the applicable Internet service 126 configuration or account associated with each file transmission, storage, encode, optimization, or other data service), employing different advertising servers or services (while also supporting multiple Internet services 126 that use the same advertising servers or services, by identifying to the advertising measurement server or service the Internet service 126 on whose behalf the operator of the aggregation system 108 is reporting), and employing different reporting and/or measurement servers or services (while also supporting multiple Internet services 126 using the same reporting and/or measurement servers or services, by identifying to the reporting and/or measurement server or service the Internet service 126 on whose behalf the operator of the aggregation system 108 is reporting). This implementation can concurrently support multiple different user interfaces 312 operating on multiple different devices 112 interacting with multiple advertising servers or services and multiple reporting and/or measurement servers or services on behalf of multiple Internet services 126, or independently of any individual Internet service 126. This implementation can concurrently support file transmission and/or delegation of file transmission to multiple data, storage, or computing services providers or data, storage, or computing infrastructures, including transmission of the same file utilizing more than one data, storage, or computing services provider or data, storage, or computing infrastructure based on any of, or any combination of: the user device 112 to which one or more files are transmitted; location 120 of said user device 112; location, throughput, utilization, or performance of one or more components of a data, storage, or computing services provider or data, storage, or computing infrastructure; network or network performance associated with a data, storage, or computing services provider or data, storage, or computing infrastructure, or associated with one or more components of a data, storage, or computing services provider or data, storage, or computing infrastructure; the network to which the device 112 is connected or an intermediate network to which said network is connected, directly or indirectly; throughput, data or packet loss, or other performance characteristic(s) associated with said network, said intermediate network, or the aggregate of some or all networks; a Feed, selective feed 220, subset of feeds, digital service, subset of digital services, type or characteristic of feed or digital service, or genre mode associated with one or more feed items or with one or more files; the version or other aspects of the user interface 312 associated with the user device 112; or other criteria associated with the user device 112 or the file.


Other implementations of this aspect of the primary and other embodiments can provide digital advertising execution and user activity reporting through requests made, and reports sent, by the user interface 312; the user device 112; a component of, facility of, or other program operating on the user device 112; or a network connected, directly or via another network, to the user device 112. In all such implementations the requests and reports can be made either directly to the advertising server(s) or service(s) and/or reporting and/or measurement server(s) or service(s), or to an intermediate server or service operated by the operator of the aggregation system 108 or another service operator. The operator of the aggregation system 108 or another service operator can maintain and/or provide, to the user interface 312, user device 112, or other requesting and reporting servers or services, one or more datasets, data records, data elements, or other input information that identifies for each participating service feed provider the advertising server(s), reporting and/or measurement server(s), request formats, reporting protocols, and other necessary technical and interface information, addresses, protocols, formats, and authentication techniques so that the user interface 312, user device 112 or other requesting and reporting server or service can successfully request and/or report to the correct servers and/or services on behalf of each service feed provider 126. In such implementations, the operator of the aggregation system 108 or other service operator can provide and periodically update one or more datasets, data records, data elements, or other input information thereby enabling the user interface 312, user device 112, or other requesting and reporting servers or services to make multiple requests by accessing the datasets, data records, data elements, or other inputs multiple times between communications with the operator of the aggregation system 108 or other service operator; or, the operator of the aggregation system 108 or other service operator can maintain one or more datasets, data records, data elements, or other input information and enable the user interface 312, user device 112, or other requesting and reporting servers or services to access, interact with, communicate with, or otherwise obtain information as needed from the datasets, data records, data elements, or other input information each time such information is needed; or, the operator of the aggregation system 108 or other service operator can act as a communications hub or point, e.g. a clearinghouse, enabling the user interface 312, user device 112, or other requesting and reporting servers or services to access, interact with, communicate with, or otherwise obtain information as needed, or in advance of as needed, from it, while it in turn accesses the datasets, data records, data elements, or other input information from service feed providers, Internet services 206, shared content management systems, or other sources of such information, as such information is requested, or in advance of such requests. These implementations can concurrently support multiple different user interfaces 312 operating on multiple different devices 112 interacting with multiple advertising servers or services and multiple reporting and/or measurement servers or services on behalf of multiple service feed providers 126, or independently of any individual service feed provider 126.


In another optional aspect of the primary and other embodiments, the operator of the aggregation system 108 can signal advertising load characteristics, or whether or not to insert an advertisement, to multiple service feed providers 126 such that the overall advertising load experienced by a user can be coordinated among multiple service feed providers 126, and so that each service feed provider 126 can receive a share of the total available advertising load. This can help prevent the individual actions of service feed providers 126, in deciding how many advertisements to insert and which video playbacks to insert them into, from combining in an uncoordinated way to saturate the user's playback experience with too many advertisements. In one implementation of this aspect of the primary and other embodiments, the user interface 312 or user device 112 includes a parameter with each requested service feed item 308 that signals whether or not an advertisement should be inserted into the requested content item. In another implementation of this aspect of the primary and other embodiments, the user interface 312, user device 112, aggregation system 108, or other system making requests to an advertising server on behalf of the Internet service 126 includes a parameter with each requested service feed item that signals whether or not an advertisement should be inserted into the requested content item. In another implementation of this aspect of the primary and other embodiments, the user interface 312, user device 112, aggregation system 108, or other system making requests to an advertising server on behalf of the Internet service 126 manages the overall advertising load by not making a request to the advertising server, which results in a content item without an advertisement inserted into it. In any such implementation, the advertising load is managed to an acceptable level for the user while at the same time the available advertising load is distributed among the Internet services 126 according to each service feed provider's share, overall load objectives, or other objectives. In this manner, the user interface 312, user device 112, aggregation system 108, or other system operates to coordinate the advertisement insertions among the participating service feed providers. In other embodiments, the Internet services 126 insert advertising avails into the content item or in metadata where the aggregation system 108 can insert advertising.


In another optional aspect of the primary and other embodiments, the operator of the aggregation system 108, or a system associated with the aggregation system 108, can aggregate and/or correlate user 116 activity data across multiple Feeds, across multiple devices 112, over time, and in other ways, or in any combination. A user's 116 activity can be correlated using one or more available common data elements, for example: user 116 credentials, such as user name and password or other login information, for any Internet service 126; user 116 access credentials for the user interface 312 and/or aggregation system 108; a device 112 identifier; a device-supporting service identifier; a network address, IP address, MAC address, or similar; a user 116 behavior pattern or signature; a data file downloaded to, or stored on, a device 112 or within an application or software on a device 112; or other data element available in common across two or more such correlations. Multiple such correlations can be cross-referenced, further extending the range of correlations that can be made. As one example, user 116 activity information can be correlated across devices 112 for a user 116 who uses social network service credentials, e.g. Facebook Connect™ authentication, to sign in to the user interface 312 executing on a smartphone, tablet, and connected television, by correlating the individual user 116 activity records according to a Facebook™ identifier; this correlation can be implemented in a variety of ways, for example by associating the Facebook™ identifier to an underlying user 116 identifier and storing user 116 activity records by the underlying user 116 identifier as they are created, or by storing user 116 activity records by the Facebook™ identifier and then correlating them when reporting is required, or by another technique. As another example, user 116 activity information can be correlated across devices 112 using a combination of a social network service credentials entered on one device 112, coupled with the Internet services 126 user identifier associated with that device 112 and other devices 112 commonly connected to the Internet service 126, such as extending a user's 116 Facebook™-connected capability by associating the user interface 312 executing on an Apple™ iPhone™, on which she entered her Facebook™ sign-in information, with her user interface 312 executing on her Apple™ iPad™ by using the iCloud™ services interface connected to each via her Apple™ iTunes™ account ID or other Apple™ ID, thereby identifying her (for sign-in, feed and content presentation, customization, user reporting, and other functions) as the same user on both devices 112. This user and her activity on her user interface 312 executing on a non-Apple™, non-iCloud™ connected television could also then be further associated with her when she signs into that connected television with the her Facebook™ identifier; because her connected television is authorized to her multichannel video programming distributor (MVPD) account, if she later visits her MVPD's website and signs into that website with her MVPD username and password, user activity from the MVPD website can now be correlated as well; and loading a browser cookie from the MVPD website that can be read as she browses other websites on the Internet and/or uses applications on her mobile and connected devices 112 and that contains a user identifier, such as a globally unique identifier (GUID), enables correlation of those of her activities as well, including correlation of any other user activities that can be correlated with any of these user identifiers.


In another optional aspect of the primary and other embodiments, the operator of the aggregation system 108, or a system associated with the aggregation system 108, may, as described, correlate and report user 116 activity in many ways, for a variety of purposes and to a range of parties and systems, both in retrospect and in realtime or near-realtime, and may project user 116 activity or other information prospectively. In these instances, it may be necessary or desirable to identify a user 116 or group of users 116 uniquely to each such party or system, to protect the confidentiality of personal, business, or other information, optionally uniquely per device 112 or commonly across some or all devices 112, or a combination. One way this can be accomplished is by associating multiple unique identifiers with a single user 116, or group of users 116, as activity or other information about that user 116 or users 116 is reported or communicated to other parties or systems, such that one party or system receives information about that user 116 or user 116) with one associated user 116 identifier and another party or system receives information about that user 116 or users 116 with a second, different associated user 116 identifier, even though both sets of information refer to the same user 116 or users 116. For example, when a request is sent to an advertising server or service associated with an Internet service 126, it can be advantageous to include a unique user 116 identifier in the request, which then enables more advanced ad trafficking and decision-making logic by the advertising server or service; it will often be advantageous to send, for a single user 116, one unique user 116 identifier in the request sent to a first advertising server or service associated with a first Internet service 126, and a second unique user 116 identifier in the request sent to a second advertising server or service (such as a remnant advertising network) associated with that first Internet service 126 or the request sent to an advertising server or service associated with a second Internet service 126. It may also be advantageous, for a single user 116, to in some cases send a previously-associated unique user 116 identifier, such as the user's 116 identifier associated with the service to which it is being sent, while in other cases send a non-associated unique identifier; for example, if the request is being sent to a Facebook™-operated advertising server or service, the user's 116 Facebook™ identifier, or a unique identifier associated with the user's 116 Facebook™ identifier, may be included in the request, whereas when the request is being sent to a non-Facebook™-operated advertising server or service, a unique identifier that is not, and is not associated with, the user's 116 Facebook™ identifier is sent. For a single user 116, a unique user 116 identifier can be used across devices 112, or a separate unique user 116 identifier can be used for each device 112; this can be implemented consistently for the user 116, or conditionally for the user 116, such that in some cases a unique user 116 identifier is used across all devices 112 and in some cases separate unique user 116 identifiers are used on separate devices 112; for example, this could be conditioned upon participation in a business relationship or in conformance to certain privacy standards, so that requests sent to participating advertising servers or services are sent with a common unique user 116 identifier across devices 112 used by a given user 116, whereas requests sent to non-participating advertising servers or services for the same user 116 are sent with a different unique user 116 identifier for each device 112 used by a given user 116. This could also be conditioned upon user 116 parameters (e.g., user opt-in or opt-out, usage characteristics, etc.), location 120 parameters, device 112, Feeds subscribed or in use, or other conditions. In addition, unique user 116 identifiers can be maintained or changed over time. Multiple unique user 116 identifiers can similarly be used for a single user 116 or group of users 116 in reporting, or providing access to (such as through a query or reporting tool, analytics system, or the like), user 116 activity, user 116 demographics and analytics, and other information about users 116.


In these implementations, the operator of the aggregation system 108, or a system associated with the aggregation system 108, generates and/or stores multiple unique user 116 identifiers for each user 116, along with information indicating which services, devices 112, information recipients, or other entities are associated to, have access to, or otherwise use each unique user 116 identifier, optionally along with other conditional policy parameters or information. Implementation of multiple unique user 116 identifiers for each user 116 can include any of, all of, or any combination of: implementation as part of the user interface 312; as part of the device 112; as part of the aggregation system 108; as part of a system associated with the aggregation system 108; as part of an Internet service 126 associated with the aggregation system 108 and/or the user 116; as another system or programming interface; as another Internet service 126; through a programming interface or other digital interface of the device 112, the operating system executing on the device 112, or other software executing on the device 112; or through a programming interface or other digital interface available in conjunction with the network connected, directly, indirectly, or through an intermediate network, to the device 112.


In an optional aspect of the primary and other embodiments, Feeds can include items added to the Feed that are not feed content items. Additional items can include identifiers of the feed provider, service provider, or other provider, or of the date, day part, season, device, place, network, or other party; introductory, opening, or summary items at the top of a Feed or Feed Item; summary or closing items at the bottom of a Feed, Feed Item, or group of feed items; transitional multimedia items between feed items; and other items added to the feed that are not feed content items.


In an optional aspect of the primary and other embodiments, a service feed presented to a user may be comprised of feed items from more than one service feed 206, presented without attribution to, identification of, or separation by, the contributing content provider. An Internet service 126, for example, could gather feed items from multiple sources and aggregate those feed items into a service feed 206 that is passed to the aggregation system 108.


In an optional aspect of the primary and other embodiments, the Feeds, and/or other Feed Items associated with a user 116 can be accessed, searched, indexed, correlated, or used in responding to search requests made by the user 116, other users 116 associated with or authorized by the user 116, other users 116 of the aggregation system 108 or other users of search services generally. For example, a user 116 may make one or more of or even all their Feeds public such that they could be searched by other users 116.


The search provider can provide to the operator of the aggregation system 108 or a system associated with the aggregation system 108 a user identifier, such as a user name or number, device name or number, global unique identifier associated with a user or device, IP address, host number, or any combination thereof, along with one or more search terms, keywords, categories, or other search indicators. The operator of the aggregation system 108 or other system associated with the aggregation system 108 can provide to the search provider specific feed items that are responsive to the search terms, keywords, categories, or other search indicators, from the service feeds 206, Feed Items associated with the user 116 identified by the user identifier, other users 116 associated with the user 116 identified by the user identifier, or of users 116 of the aggregation system 108. Items responsive to the search terms, keywords, categories or other search indicators can be prioritized, ranked, scored, and/or weighted based on data collected by the operator of the aggregation system 108, including, but not limited to, sharing activity, viewing activity, rating activity, following or subscribing activity, or other user activity regarding one or more feed items, content provider feeds, keywords, or categories, based on activity of the user 116, users associated with the user 116, users of another Internet service 206, or users of the aggregation system 108.


Alternatively, the operator of the aggregation system 108 or other system associated with the aggregation system 108 can provide to the search provider one or more user identifiers, such as user names or numbers, device names or numbers, global unique identifiers associated with users or devices, IP addresses, host numbers, or any combination thereof, along with one or more Internet domains, Internet services, Feeds, keywords associated with one or more Feeds, composition characteristics of Feeds or characteristics of other Feeds, Feed Items associated with each user 116 identified by a user identifier or of other users 116 associated with each user 116 identified by a user identifier.


Alternatively, the operator of the aggregation system 108 or other system associated with the aggregation system 108 can provide to the search provider with one or more Internet domains, Internet services, Feeds, keywords associated with one or more feeds, composition characteristics of feeds or Feeds, characteristics of other Feeds, and/or Feed Items associated with all users 116 or subsets of users 116 of the aggregation system 108.


Search providers can include search service operators, device manufacturers, network access or service providers, software providers, or any other operator of a search service.


Implementation of the interface between the search provider and the operator of the aggregation system 108 or other system associated with the aggregation system 108 can include any of, all of, or any combination of: execution as part of the user interface 312; as part of the device 112; as part of the aggregation system 108; as part of a system associated with the aggregation system 108; as part of an Internet service 206 associated with the aggregation system 108 and/or the user 116; as a system or programming interface of the search provider or a system associated with the search provider; as another system or programming interface; as another Internet service 206; through a programming interface or other digital interface of the device, the operating system executing on the device 112, or other software executing on the device 112; or through a programming interface or other digital interface available in conjunction with the network connected, directly, indirectly, or through an intermediate network, to the user device 112.


In another optional aspect of the primary and other embodiments, activity and/or inactivity associated with a user 116, including (but not limited to) adding, deleting, interacting with, and accessing Feeds or Internet services 126, and/or watching, repetitively watching, sharing, saving, skipping, or deleting feed items, can be employed, directly or indirectly, optionally in combination with data about the Feeds, Internet services 126, and feed items, optionally in combination with similar or dissimilar activity associated with other users 116, optionally in combination with other data, optionally in combination with declared interests of the user 116 and/or other users 116, optionally in combination with associations among users 116 on the aggregation system 108 and/or other Internet services 126 (such as social networking services), and optionally in combination with measurements of effectiveness, to in conjunction with a unified portal, dashboard, or guide service provided on or in association with the device (a “Unified Video Interface” or UVI), that brings together in a unified visual interface movie, television, and other video content from one or more services available via the device or applications installed on the device, to make suggestions or recommendations about content items, channels, features, or other available content on other services that are not the aggregation system 108, associated with the user 116, associated with a device 112, and/or associated with an application (“Other UVI Services”); and to configure content, Feeds, and/or feed items for delivery to the user 116 through the aggregation system 108, user interface 312, any other instance of the user interface 312 associated with the user 116, or other application or service associated with the aggregation system 108 or user interface 312, or otherwise to the user 116. Such a Unified Video Interface could display recommendations derived entirely by, in part by, or in combination with this optional aspect of the primary and other embodiments; and a Feed, one or more feed items, one or more series of feed items, or other content could be provided by the aggregation system 108, to one or more instance of the user interface 312, or otherwise to the user 116, based on content available through Other UVI Services.


As an example of this optional aspect of the primary and other embodiments, the activity of a user 116 who watches a series of feed items associated with a particular movie or television show, or who repetitively watches a particular feed item associated with a particular movie or television show, could be used as the basis of a recommendation of that associated movie or television show communicated to the Unified Video Interface for communication to the user 116 when that movie or television show is available on an Other UVI Service. As another example of this optional aspect of the primary and other embodiments, content available through Other UVI Services could be used to filter or configure one or more Feeds, such as a Feed explicitly identified as associated with the UVI, or not so identified, and/or to prioritize feed items within other feeds, and/or to select, prioritize, configure, or otherwise present promotional or other messages, content, or feed items to the user 116, such as presenting a “What's On Tonight” feed that includes feed items such as trailers, excerpts, and behind the scenes and other related content correlated to the movies and television shows available on Other UVI Services.


In one implementation of this optional aspect of the primary and other embodiments, the aggregation system 108, user interface 312, or other system or software interacting with the aggregations system 108 or user interface 312 would receive from the Unified Video Interface, or a system interacting directly or indirectly with the Unified Video Interface (a “UVI System”), a query or other message, and in response would return a list of recommendations; the query or other message may optionally include candidates, such as newly available items in the other services interfacing to the Unified Video Interface, along with the Other UVI Service(s) associated with each candidate; and the response returned may optionally include a score or weight associated with some or all of the recommendations; and in addition to the response, the aggregation system 108 would create, filter, or deliver a Feed for the user 116 based on the candidates.


As an example of this implementation:

    • a UVI System would periodically send to the aggregation system 108, through the reporting interface 356, a file containing: device 112 identifiers; for each device identifier, a list of candidates, wherein the candidate list included newly released pay-per-view movies from one or more such services received by the device 112 (e.g. new releases on the Video On Demand service received by the device 112), newly released subscription movies from one or more such subscription services (e.g., new releases available on Netflix, if a Netflix app is activated on the device), movies available on subscription channels received by the device 112, and movies available on free-to-watch television channels received by the device 112; for each candidate, one or more Other UVI Service identifiers indicating on which services the candidate is available; and other information, if necessary, such as a pay-per-view price, monthly subscription rate, or other information;
    • the aggregation system 108 would receive the file; correlate the device 112 identifiers to user 116 identifiers; score the candidates listed for each user 116 according to the historical information available about previous actions and watching behavior of the user 116; return to the UVI System a sorted list of candidates, in order from most preferred by the user 116 to least preferred by the user 116, with a score or weight associated with each candidate; and configure a feed for the user 116 of available feed items associated with the candidates, sorted in preferred order or not sorted in preferred order;
    • optionally, the UVI System could then further score the candidates, using other available data or information about user preferences, and create a final score for each candidate that is informed by, but not only by, the score for each candidate for each user 116 as determined by the aggregation system 108; and optionally the UVI System could return this final score to the aggregation system 108;
    • the aggregation system 108 could optionally provide selected feed items to the UVI System, along with the candidate scores or in response to receiving the final scores, or could provide user-specific configured feeds, either in advance or on demand, directly to the Unified Video Interface of each device 112, based on either its scores or on the final scores received from the UVI System; or could provide a user-specific but further configured or condensed feed directly to the Unified Video Interface of each device 112, based on its scores or on the final scores received from the UVI System.


The user 116 experience associated with implementation of this optional aspect of the primary and other embodiments would comprise:

    • recommendations available through the Unified Video Interface, including trailers and related content, and optionally including such content playing automatically and continuously, and spanning multiple recommendations, organized as a single set of recommendations spanning the Other UVI Services or as a set of recommendations for each Other UVI Service, and filtered either to include only Other UVI Services available to the user 116, only Other UVI Services not available to the user 116, or not filtered;
    • a Feed available through the user interface 312 similarly comprising trailers and related content, similarly or dissimilarly organized as a single set of recommendations spanning the Other UVI Services or as a set of recommendations for each Other UVI Service, and similarly or dissimilarly filtered either to include only Other UVI Services available to the user 116, only Other UVI Services not available to the user 116, or not filtered;
    • the Feed also available to the user 116 through any other user interface 312 associated with the user 116, whether or not that user interface 312 executes on the same device as the Unified Video Interface, e.g. the Unified Video Interface executes on a television associated with the user 116, and the Feed is available to a user interface 312 associated with the user 116 executing on a smartphone.


Referring next to FIG. 11E, an embodiment of a process 1180 for reporting data derived from a multi-feed based system is shown. The depicted portion of the process begins in block 1182 where the aggregation system 108 presents a first feed item to a user 116 through a user interface 312, the first feed item linking to video content from a first Internet service 126-1. In block 1184, the aggregation system 108 records an interaction of the user 116 in reference to the first feed item, including activity and/or inactivity of the user 116. In block 1186, the aggregation system 108 presents a second feed item linking to video content from a second Internet service 126-2. In block 1188, the aggregation system 108 records an interaction of the user 116 in reference to the second feed item, including activity and/or inactivity of the user 116. The aggregation system 108 then compiles records of interaction of the user 116 in reference to the first feed item with records of the interaction of the user 116 in reference to the second feed item, block 1190.


In block 1192, the aggregation system 108 receives a query from an outside system. The query from an outside system could be a query from a UVI system. In block 1194, the aggregation system 108 processes the query from the outside system. In block 1196, the aggregation system 108 returns data conforming to the query from the outside system to the outside system.


In an optional aspect of the primary and other embodiments, the aggregation system 108, a system associated with the aggregation system 108, a system associated with the user interface 312 or device 112, a system associated with some or all of the devices 112 on which instances of the user interface 312 execute, a system associated with software operating on some or all of the devices 112 on which instances of the user interface 312 execute, a system associated with one or more files or other data created by, stored on, or processed by some or all of the devices 112 on which instances of the user interface 312 execute, a system associated with some or all service feed providers, a system associated with some or all of the networks connected, directly, indirectly, or through an intermediate network to some or all of the devices on which instances of the user interface 312 execute, or another system or service can receive, accumulate, parse, process, summarize, divide into subsets, and otherwise manipulate data elements, data records, data sets, or other information comprising numerical, statistical, quantitative, qualitative, descriptive, or other information about actions, interactions, events, and other behavior and activities started, stopped, completed, made, or taken by users 116 as they engage with the user interface 312 or device 112, other interfaces to the aggregation system 108 or Internet services 126 connected to the aggregation system 108, Feeds, Feed Items, icons 830, tiled icons 830-6, 830-7, controls, data entry fields, and/or other elements of the user interface 312 or device 112. In addition, such accumulated data can, but need not necessarily, include user authentication method, user identity, anonymized unique user identifiers such as globally unique identifiers, location, date, time, device identifier, network identifier, connectivity mode, operating system and other software component identifiers, user input device identifier, and other information. The accumulated data can be divided into subsets by, and exported to, one or more service feed providers, manufacturers of devices 112 on which instances of the visual user interface 312 execute, developers of other software that executes on devices 112 on which instances of the visual user interface 312 execute, providers of networks connected, directly, indirectly, or through an intermediate network to some or all of the devices 112 on which instances of the visual user interface 312 execute, providers of Internet services 206, advertising agencies, advertising measurement and reporting servers or services, audience measurement and reporting servers or services, or other measurement and reporting servers or services.


Referring next to FIG. 12, an embodiment of a single pane view 1200 of the user interface 312 is shown. In this embodiment, a channel carousel 805 rotates to select a single icon 830-4 denoted by a radio dial 840. The feed pane 712-4 corresponding to the selected icon 830-4 is shown. The user can select a Feed Item in the feed pane 712 that is shown in the video window 702. The video window 702 may be selected to go full screen to occupy the entire single pane view or may automatically do so after playback is begun or after a delay once playback is begun. In this embodiment, the single pane view 1200 is displayed on a television using a built-in player, a set top box, a DVD or Blu-Ray player, a video streaming device, etc.


In an optional aspect of the primary and other embodiments, the aggregation system 108 and/or a user interface 312 may be operate in association, directly or indirectly, with a preference engine 336 that automatically or quasi-automatically selects Feeds for one or more users 116 to be incorporated within the set of Feeds provided to the user 116, and/or that configures, filters, orders, or otherwise influences some or all of the content items presented in Feeds provided to the user 116.


In one implementation of this optional aspect of the primary and other embodiments, the Feeds provided to, associated with, or contributing to the selective feed 220 provided to, or associated with, a given user 116 may be automatically configured as such for the user 116, or initially, subsequently, or periodically recommended to the user 116 (hereinafter, each such automatically configured or recommended Feed is referred to as an “Auto Feed”), based on an association of a Feed to a user, account, entity, item, Feed Item, or other component of another Internet service 126 coupled with an association of that other user, account, entity, item, Feed Item, or other component of the other Internet service 126 with the user 116, and optionally based on service preferences indicated, for example, a user's action, inaction, activity, or other behavior. As an example, a user 116 who is a follower of a media entity on a social networking Internet service 126 could be automatically provided with the Feed associated with that media entity's own Internet service 126 which is independent of the social networking Internet service 126, such as automatically providing a user who has “liked” a media entity's Facebook™ page with that media entity's own service feed 206. As another example, a user 116 who receives a shared video Feed Item on a social networking Internet service 126 and then watches that video Feed item to a specified completion or in its entirety could from that point on (or at least from that point until the user 116 cancels or deletes it) be automatically provided the Feed associated with the Internet service 126 of the media entity associated with the shared video Feed Item.


In this implementation, such associations may be configured as one-to-one, many-to-one, one-to-many, or many-to-many, and can be direct or indirect; continuing with the first example, a user 116 could also be provided with that media entity's own service feed 206 when the user 116 has followed a personality associated with the media entity on a social networking Internet service 126 independent of the media entity's Internet service 126. Further, the Auto Feed can be a filtered subset of the media entity's service feed 206, for example the Auto Feed could be filtered to include only those Feed Items that feature the media personality.


In one technical execution of this Auto Feed implementation, this optional aspect of the primary and other embodiments can be implemented via some of, all of, or a combination of some of the following components and processes:

    • A feed correlation index 340 is used to correlate media entities associated with one or more Internet services 126 with other Internet services 126. In an any-to-any implementation, a given media entity first encountered on Internet service 206 can be correlated to any number of other Internet services 126 (which exist under a common Internet service 126 of record or enterprise of record, or not under a common Internet service 126 of record or enterprise of record); and an independent Internet service 126 can be correlated with any number of media entities associated with an Internet service 126, or any number of media entities some of which are associated with one Internet service 126 and some of which are associated with another Internet service 126.
    • A record from the feed correlation index 340 indicates an Internet service 126 of record for each Feed, group of Feeds, filtered versions of Feeds, or other subset of Feeds, and that specifies the associated correlations. Enterprises in the feed correlation index 340 can be established that group together Internet services 126 of record, so for example, Disney™ could be an enterprise, with separate Internet service 126 of record entries for ABC News™, ESPN™, ABC Family™, and Disney Channel™. A history of all entries, changes, deletes, etc, date and timestamp, and the person who made the change is kept in the feed correlation index 340.
    • A feed policies can be manually or automatically specified as entries in the feed correlation index 340. Policy is implemented by Feed, group of Feeds, filtered versions of Feeds, or other subset of Feeds and sub-policy by correlated to media entity. Policies control how user actions on the correlated Internet service 126 that form the service preferences are translated into Auto Feeds by the preference engine 336 referring to the feed correlation index 340. A policy might specify that when a user takes and otherwise qualifying action with a media entity but has previously deleted the Feed associated with that media entity, the Feed is temporarily added the Auto Feed rather than adding it as a permanently to the Auto Feed, or the policy might nevertheless specify that the Feed is added as a standard or permanent Auto Feed or as a component to Auto Feed. Different Internet services 126 may have different views on whether to automatically provide a Feed to users under different conditions and user scenarios, which can be customized by policy added to one or more records in the feed correlation index 340. A history of all entries, changes, deletes, etc., date and timestamp, and the person who made the record change are kept in one embodiment.
    • An audit function 344 function maintains a history for each user 116 of all Feed-related user actions and events that includes at least: date and timestamp for the action/event; an identifier of the Feed; the action/event (such as add/delete/combine into composite feed/etc); the device 112 on which the action/event occurred (or that the action/event was system generated, the subsystem that generated it, dc); codes that indicate what entity initiated the action/event (the user, the aggregation system 108, another Internet service 126, other systems, etc) and other relevant characterizing information.
    • Through the user interface 312, the user adds Internet services with their associated service credentials 314 to allow authentication of the Internet service 126 to the aggregation system 108 or other system. The preference engine reads her service preferences for media entities from the Internet service 126; identifies the Feeds that correlate to service preferences by query to the feed correlation index 340; and for each of, some of, or all of the media entities associated with her service preferences, unless otherwise indicated by the policy for a correlated Feed, automatically provides the Feed(s) to the user 116 (and writes an event to the audit function 344 for her) if the Auto Feed is not already provided to her.
    • The preference engine 336 periodically reads a user's 116 service preferences for media entities from the Internet service 126 and identifies any new media entities since the last time her service preferences were read from the Internet service 126; identifies the Auto Feeds that correlate to the new service preferences; and for each of, some of, or all of the new service preferences, unless otherwise indicated by the Feed Policy for a correlated Feed, automatically provides the Auto Feed(s) to the user 116 (and writes to the audit function 344) if the Feed is not already provided to her.
    • When a new Internet service 126 or Feed is added to the aggregation system 108, or a new media entity correlation is added to the feed correlation index 340, the preference engine 336 automatically gathers the associated Auto Feed for all users 116 of the aggregation system 108 who: a) have an association with the media entity associated with the Auto Feed, and b) are not already provided the Feed.
    • A self-service component accessible through the user interface 312 allows the authorized personnel operating a given independent Internet service 126 to interactively access the feed correlation index 340 to administer policies and records defining the correlations between media entities with which their independent Internet service 126 is associated and their Feeds, and to otherwise administer the policies and records in the feed correlation index 340 associated with their Feeds. This self-service component includes appropriate user access control, administrative facilities, and audit function 344.
    • A link generation and execution process, to which the independent Internet service 126 operating personnel could configure authentication to their media entities on one or more Internet services 126, policies to control the link generation and execution process, and other configuration data, and the link generation and execution process could then automatically select or generate and then post Feed items to the independent Internet service's media entities on another Internet service 126, and/or execute actions and/or events on behalf of the independent Internet service's 126 media entities. As an example of this optional link generation and execution process, as the independent Internet service 126 sends Feed items to the aggregation system 108, the link generation and execution process could post some or all of the items as entries on its Facebook™ page, presented either in the context of the Internet service 126, the independent Internet service 126, or the aggregation system 108. As another example of this optional link generation and execution process, the link generation and execution process, or an associated process, could monitor Twitter™ and whenever a Feed item from the independent Internet service 126 is contained in a tweet from a Twitter™ user, retweet that tweet.


In another implementation of this optional aspect of the primary and other embodiments, the Auto Feeds for a given user 116 may be based on declared interests of the user 116, activity (such as watching, sharing, or saving feed items) associated with the user 116, activity associated with the user 116 combined with, or correlated to, activity of other users 116, or the response of the user 116 or other users 116 to a given Auto Feed.


Referring next to FIG. 13, an embodiment of a process 1300 for creation of an Auto Feed is shown. The depicted portion of the process begins in block 1304 where the aggregation system 108 records user 116 interactions with various Internet services 126. These Internet services 126 may have service feeds 206 or may expose by other means the interactions and/or service preferences of users 116. Interactions and preferences potentially including which books, music, movies, products, services, web pages, ads, videos, stories, blogs, content topics, other users, brands, organizations, causes, other entities, etc. that the user 116 interacts with, rates, comments on, shares, associates with, subscribes to, or otherwise indicates interest, opinion, association, familiarity, affinity, or negative affinity with, for, or to.


Current, historical or past interactions are often recorded by Internet services 126, for example, reviews, preferences and analytics information. This information may be publically accessible from the Internet service 126, or in some embodiments could be obtained through a feed of analytic data from the Internet service 126. When login is required for access to some or all service preferences, the aggregation system 108 logs into the Internet service 126 in block 1308 using credentials for the user 116. These service preferences are optionally combined with others attributed to the user that may be publically accessible by crawling automatically the Internet services 126 in block 1312.


The service preferences serve as way to automatically determine media entities that the user 116 may have an interest in. The feed correlation index 340 is queried using the service preferences and/or media entities to determine the Feed(s) that relate to those subjects. Before creation of an Auto Feed, the user 116 could be notified or queried if that is desired in block 1320. Where there are multiple feeds for the service preference and/or media entity, those can be combined in block 1324 to form the Auto Feed. Certain feeds could be filtered automatically for a particular Auto Feed, for example, there could be a Feed relating to Olympians generally and a filter for a particular athlete could be performed for those interested in the particular athlete.


In addition to automatic filtering and screening of Feeds, the user can define filters to remove Feed Items from the Auto Feed in block 1328. The filtering can be by keyword or video type and entered by simple rating controls such as “thumbs-up” or “thumbs-down” and the aggregation system 108 would create the appropriate filter. In block 1332, the Auto Feed is presented to the user 116 along with other Feeds. As the user continues to interact with Internet services 126, other service preferences and media entities could be found and corresponding Feeds added to the Auto Feed or additional Auto Feeds created and provided to the user 116.


Although this embodiment gathers all service preferences and media entity information to find Feeds that are aggregated into a single Auto Feed, other embodiments could use the same techniques to create multiple Service Feeds. Each media entity could have its own Auto Feed for example. Media entities could be grouped into category feeds, for example, the athlete media entities could be grouped into one Auto Feed while musician media entities could be automatically placed into another Auto Feed.


The functions associated with creation and presentation of Auto Feeds can be technically implemented through any of, all of, or any combination of: execution as part of the user interface 312; as part of software functionality on the device 112; as part of the aggregation system 108; as part of a system associated with the aggregation system 108; as part of an Internet service 126 associated with the aggregation system 108 and/or the user 116; as part of, or in conjunction with, a content management system, shared content management system, or other system associated with a service feed 206; as a standalone system or programming interface; as a standalone Internet service 126; through a programming interface or other digital interface of the device 112, the operating system executing on the device 112, or other software executing on the device 112; through a programming interface or other digital interface available in conjunction with the network connected, directly, indirectly, or through an intermediate network, to the device 112.


Referring next to FIGS. 14A & 14B, block diagrams shows one embodiment of the NMS 348 interfaced with other portions of the aggregation system 108 and a device 112. A notifications management system (“NMS”) 348 can manage notifications, across some or all devices 112 associated with, and some or all user interfaces 312 operating on some or all devices 112 associated with, users 116. The NMS 348 has a notification engine 1412 that interfaces to the platform-level notification center 1434 on the device 112, or alternatively to another notifications system available on the device 112, such that a notification is created by, entered into, sent to, or sent through the NMS 348 once (or less than the total number of disparate platform-level notifications systems indicated) and is then distributed to all addressed devices 112, and utilizes and/or interfaces to, the heterogeneous group of devices 112 addressed and the heterogeneous group of necessary platform-level notification systems.


This optional aspect of the primary and other embodiments also optionally includes a local notifications repository operating on, or in conjunction with, the user interface 312 or another notifications system available on the device 112, separate and apart from the device's native notification repository, referred to as a user-interface notification center 1430 allowing local notifications to be sent to or through the user interface 312 or the other notifications system without using the platform-level notifications system, and native notifications to be sent to or through the platform-level notification center 1434 and to or through the device's native notification repository. This optional aspect of the primary and other embodiments can limit the presence of local notifications to the subset of notifications sent to or through the platform-level notification center 1434, while still enabling a greater number of notifications to be sent to the user 116 through the user-interface notification center 1430; thereby limiting the potential “noise” experienced by the user 116 if more than a desirable number of notifications is sent via the platform-level notification center 1434; thereby also or alternatively enabling total notifications, including platform-level notifications and local notifications, to exceed any limit on platform-level notifications set by the operator of the device 112 platform or by the user 116 of the device 112, and/or to avoid, partially or entirely, any cost, such as a cost per notification, imposed by the operator of the device 112 platform, and/or to provide a device-level configuration capability to the user 116 that allocates and/or prioritizes notifications among the platform-level notification center 1434 and the user-interface notification center 1430. Platform-level notifications and local notifications may be synchronized, for example, a platform-level notification might be sent to notify the user 116 that there are local notifications waiting for her in the user-interface notification center 1430; or may not be synchronized; or may be synchronized in some cases and not synchronized in other cases.


One technical implementation of the NMS 348 would include some of, all of, or a combination of some of the following components and processes:

    • One or more notification creation processes, which generate notifications for some or all users 116, and some or all devices 112 associated with each such user 116; optionally classifies each generated notification as local or platform-level; and optionally generates any synchronized notifications, for example, generates a platform-level notification when a certain number of local notifications have been sent, or after a certain period of time after a local notification has been sent, or if a user 116 has not accessed user interface notification center 1430 within a certain period, or any combination of these or other criteria;
    • One or more notifications policies indexes 1424, containing rules governing the type (such as local or platform-level), number, frequency, content, and other characteristics of notifications that may be sent by a given Internet service 126 to users 116 associated with that Internet service 126, and/or devices 112 or platforms associated with users 116 associated with that Internet service 126;
    • One or more notification transmission processes, which optionally may be combined with the notification creation processes, each of which transmits platform-level notifications to the device 112 associated with the user 116, in each case using the device-specific identifier associated with the user 116 stored in the notifications index and the platform-level notifications system associated with the notifications platform identifier stored in the notifications index, and/or which transmits local notifications to some or all of the local repositories of the local-notification supporting instances of the user interfaces 312 associated with the user 116.


Utilizing the NMS 348, the operator of the aggregation system 108 could easily, with a single policy or entry, generate and transmit notifications to users 116 across a heterogeneous array of devices 112, with a copy of each notification sent to each user 116 on each device 112 associated with the user 116 using the platform-level notification center 1434 specific to each such device 112; the operator of an Internet service 126 could, if authorized by the operator of the NMS 348, generate and transmit notifications to users 116 associated with the Internet service 126, across a heterogeneous array of devices, with a copy of each notification sent to each user 116 associated with the Internet service 126, on each device 112 associated with the user 116 using the platform-level notifications system specific to each such device; notifications could be sent to the user-interface notification center 1430, to reduce the number of platform-level notifications sent to any given user 116; heterogeneous devices 112 and corresponding platform-level notification centers 1434 are easily supported in a consistent fashion and via a single interface; and more notifications can be sent to more users 116, with more specificity and precision, while at the same time the user 116 experience is maintained or improved.


In one embodiment, the NMS 348 has various stores of data that may be in a database, file system, and/or a memory data structure, which include authorization records 1408, a notification correlation index 1416, a notification history list 1420, and a notification policy index 1424. The data in the various stores can be combined into a single store or divided between a number of stores at a number of locations. The NMS 348 also has a notification interface 1404 and a notification engine 1412. Additionally, the NMS 348 interfaces with several other components of the aggregation system 108, for example, optionally the notification interface 1404 interacts with service interfaces 320, and the notification engine 1412 interacts with a preference engine 336, an aggregation engine 304, one or more user interfaces 312, and one or more devices 112.


The notification interface 1404 receives notification requests. A notification request contains a first field for a notification, the notification being a string of text, an icon, a graphic, and/or a hyperlink to be sent to a user 116 and/or device 112; and the notification request contains a second field for one or more criteria for the notification engine 1412 to apply as the notification engine 1412 processes the notification request. The one or more criteria relate to data about users 116 and/or devices 112 gathered and/or used by the aggregation system 108. The one or more criteria could specify one, some, or all users 116 and/or one, some, or all devices 112 to send the notification to. The one or more criteria could specify a type of device 112 and/or a type of platform to send the notification to, including location 120, fidelity of a rendering system on a device 112, an operating system of a device 112, manufacturer of a device 112, software applications installed on a device 112, and/or a model and/or style of a device 112. The criteria could be based on preference(s) of the user(s) 116, including user 116 comments, user 116 tags, user 116 ratings, and/or user 116 rankings. The criteria could be based on a history of the user(s) 116, including videos watched, types and/or genre of videos watched, service feeds 206 the user 116 has subscribed to, and/or other user 116 activity on the Internet, including browsing history. The one or more criteria could be based on a type of user 116, including age, gender, language, and/or other demographic data.


The notification interface enables Internet services 126 to send notifications to their associated users 116 and/or to define policies that will send notifications to their associated users 116, utilizing local notifications, platform-level notifications, or both, and optionally utilizing local notifications and synchronized platform-level notifications, and to send notifications to users 116 across a heterogeneous set of devices using either local notifications or platform-level notifications or both, and streamlining and simplifying the processes for doing so. The NMS 348 can manage the notifications and distribution to devices 112.


For example, using a generalized scenario illustrating how the notifications function can operate, if Adobe™ wanted to alert users 116 operating Linux on a PC that there was a security update for Flash Player™, Adobe™ would generate a notification request through the notification interface 1404. In the first field of the notification request, Adobe™ would specify a string of text stating there is a security update for Flash Player™ and a hyperlink pointing to an Internet address where a user 116 could download the security update. In the second field of the notification request, Adobe™ would specify criteria that the notification be sent to users 116 that have Flash Player™ on a PC operating Linux.


In another example, a local band could submit a notification request through the notification interface 1404 specifying in the first field of the local band's notification request a string of text stating a time and location where the local band is going to perform in an hour and a graphic depicting the local band's trademark. In the second field of the local band's notification request, the local band could specify criteria that the notification in the first field of the local band's notification request be sent to a user 116 that has watched a music video from a Feed Item within the last month that is of a similar genre as the band performs and the user 116 has a smartphone, where the smartphone location 120 is within a ten-mile radius of the local band's performance location.


The notification interface 1404 can receive a notification request from a third party directly and/or through the service interfaces 320. For example, an Internet service 126 could submit a notification request through the service interfaces 320. When the third party submits a notification request, the third party also provides third-party credentials showing that the third party is authorized to submit the notification request. For example, the third-party credentials showing that the third party is authorized could be a token, sign-in sequence, shared secret key, public key, and/or digital signature. The notification interface 1404 verifies the authority of the third party to submit the notification request by matching the third-party credentials to data in the authorization records 1408 database. After authenticating the notification request made by the third party, the notification interface 1404 passes the notification request to the notification engine 1412.


The notification engine 1412 receives a notification request from the notification interface 1404, as described above, and/or the notification engine 1412 can generate a notification request, as described later below. The notification engine 1412 processes the notification request by using the one or more criteria of the notification request to select users 116 and/or devices 112 to transmit the notification to. To process the notification request, the notification engine 1412 interacts with other components in the NMS 348 and aggregation system 108 described below.


The notification engine 1412 receives preference data about users 116 from the preference engine 336. The preference engine 336, as discussed in the text accompanying the description of FIG. 3B, gathers, tracks, and/or generates preference data about users 116. The notification engine 1412 receives the preference data from the preference engine 336 when the one or more criteria of the notification request relate to a preference of a user 116. For example, a criterion of the notification request could specify that the notification be sent to users 116 who are likely to be Democrats. The preference engine 336 could generate a list of likely Democrats by querying a database, available to the preference engine 336, for users 116 who “like” or “thumbs-up” Democrat politicians and/or “thumbs-down” Republican politicians, the list of likely Democrats comprising a list of user-specific identifiers. The notification engine 1412 would then receive the list of likely Democrats comprising user-specific identifiers from the preference engine 336.


When the notification engine 1412 has a list of user-specific identifiers to send the notification to, the notification engine 1412 requests user-interface-specific identifiers and/or device-specific identifiers from the aggregation engine 304. A user-interface-specific identifier allows the notification engine 1412 to map a particular user 116 to a particular user interface 312. A device-specific identifier allows the notification engine 1412 to map a particular user 116 to a particular device 112. Continuing the example in the previous paragraph about the list of likely Democrats, after the notification engine 1412 receives the list of likely Democrats comprising user-specific identifiers, the notification engine 1412 requests user-interface-specific identifiers and/or device-specific identifiers associated with the user-specific identifiers from the aggregation engine 304. The aggregation engine 304 would then query one or more databases available to the aggregation engine 304 for the user-interface-specific identifiers and/or device-specific identifiers and return the results to the notification engine 1412. With user-interface-specific identifiers and/or device-specific identifiers the notification engine 1412 can transmit the notification to the user interface 312 and/or device 112 of the user 116.


Referring to FIG. 14B, a block diagram shows an embodiment of the notification engine 1412 communicating with the user interface 312 though a user-interface notification center 1430 and with a platform-level notification center 1434 on a device 112. The user interface 312 has an application-level notification center labeled as the user-interface notification center 1430 to handle and/or store notifications that are sent to the user interface 312. A notification sent to the user-interface notification center 1430 is a local notification. The user-interface notification center 1430 could display the local notification in various ways, including under a selectable tab; in a panel and/or pane; as a ticker and/or pop-up on the bottom, top, side, or middle of a display; as an overlay in the video playback window 702; in the active item pane 708; and/or in the feed pane 712. A notification sent to the platform-level notification center 1434 is a platform-level notification. The platform-level notification center 1434 handles and/or stores notifications at a platform level. An example of a platform-level notification center 1434 is Apple's™ iPhone™ swipe-down menu that handles and lists notifications from more than one application. In addition to being able to send local notifications and/or platform-level notifications, the notification engine 1412 can query the user-interface notification center 1430 and/or the platform-level notification center 1434 to obtain data about the status of notifications in the user-interface notification center 1430 and/or the platform-level notification center 1434. For example, the notification engine 1412 could query the platform-level notification center 1434 for the number of notifications received but still marked as unread. Further, the user-interface notification center 1430 and/or the platform-level notification center 1434 could send data to the notification engine 1412. For example, the user-interface notification center 1430 could alert the notification engine 1412 when a user 116 views a local notification.


Referring to FIG. 14C, an embodiment of the user interface 312 that has a notification pane 1438 to display notifications from the user-interface notification center 1430 is shown. The user interface 312 has an active item pane 708, a feed pane 712, site navigation links 716, a content navigation pane 720, and a notification pane 1438. The notification pane 1438 in the embodiment shown is located below the active item pane 708. The notification pane 1438 displays notifications from the user-interface notification center 1430.


Returning to FIG. 14A, in one embodiment the notification engine 1412 can map the one or more criteria of the notification request to a Feed Item using the notification correlation index 1416. The notification correlation index 1416 contains a list of Feed Items and associated words and/or phrases, such as words and/or phrases relating to the Feed Item's source, topic, and/or genre. The notification engine 1412 can pull data about a Feed Item from the preference engine 336, the aggregation engine 304, metadata associated with the video content of the Feed Item, a user 116 through the user interface 312, manual entry by a system operator of the NMS 348, and/or the Internet service 126 providing the Feed Item. Table 1 below is one example of how data may be organized in the notification correlation index 1416. Table 1 shows five columns with column headings: Feed Item ID, Source, Primary, Secondary, and Genre. Under the column heading “Feed Item ID,” are numbers uniquely identifying different Feed Items. Under the column heading “Source,” entries identify where Feed Items were obtained from. Key words and/or phrases are provided under the column heading “Primary.” The key words and/or phrases under the column heading “Primary” have a very strong correlation to the topic of a corresponding Feed Item. There are key words and/or phrases under the column heading “Secondary.” The key words and/or phrases under the column heading “Secondary” relate to a topic of the Feed Item, but may not as strongly correlate to the Feed Item as an entry in the “Primary” column. Entries under the column heading “Genre” further categorize a Feed Item.









TABLE 1







Sample entries in the notification correlation index 1416.











Feed Item ID
Source
Primary
Secondary
Genre





99246859
BBC
hurricane +
hurricane, Sandy,
News




Sandy
destruction, NYSE,





New Jersey, New





York, power outage,





emergency prepared-





ness, . . .


99246860
Nat'l
Serpents +
Cave, dark,
Nature



Geo-
Cave; snake +
snake, reptile,



graphic
cave
fear, . . .


99246861
Tekzilla
Windows 8
Windows, operating
Tech-





system, . . .
nology


. . .
. . .
. . .
. . .
. . .









The notification engine 1412 also interacts with the notification history list 1420. The notification history list 1420 maintains records of notifications transmitted and/or notification requests that did not result in a notification being transmitted. Table 2 below is one example of how data may be organized in the notification history list 1420. Table 2 shows eight columns. Columns one and two provide fields for date and time stamps for an entry. In this example, a second entry was made just two minutes after a first entry. Column three is a field for a user-specific identifier. In this example, all entries are tied to one user 116. The fourth Column is a field for a unique identification number for each notification request. Column five is a field for a unique identification number for each notification that was, or is to be, sent to a user 116. Column six tracts whether the notification was a local notification or a platform-level notification. Column seven records whether a notification was actually sent. Column eight provides a field for notes relating to an entry in the notification history list 1420.









TABLE 2







Sample entries in the notification history list 1420.

















Notification
Notification

Trans-



Date
Time
User ID
request ID
ID
Level?
mitted?
Notes





20120926
0910
52441655
05475741
10002346
local
y



20120926
0912
52441655
05475741
10002653
local
n
not sent









because of









frequency


20120926
1623
52441655
05475741
10003014
local
y
generate









platform-









level









notification









request









05479825


20120926
1623
52441655
05479825
10003015
platform
y


. . .
. . .


. . .
. . .
. . .
. . .









The notification policy index 1424 contains rules for the notification engine 1412 to follow as the notification engine 1412 processes a notification request. Rules in the notification policy index 1424 can be global, such as to apply to all notification requests; or the rules can be for a specific user 116, such as set by the user 116 through the user interface 312. One example of a rule in the notification policy index 1424 could be for the notification engine 1412 to generate a platform-level notification after seven local notifications have been sent and unread by a user 116. If the notification engine sent seven local notifications, and then from a query of the user-interface notification center 1430 determined that those seven local notifications remained unread by the user 116, then the notification engine 1412 would generate a notification request where the notification in the first field in the notification request is text instructing the user 116 to check the user-interface notification center 1430 for messages and in the second field of the notification request set a criterion that the notification in the first field of the notification request should be sent as a platform-level notification. Another example of a rule in the notification policy index 1424 could be a rule that limits the frequency of certain notifications sent to a user 116. For example, a rule could limit notifications sent to a user 116 from a single notification request to no more than one notification sent every four hours. If there was a notification request with a criterion that stipulated the notification engine 1412 transmit a notification to a user 116 who watches a Feed Item correlated to a genre of sports, specifically baseball, then without a rule otherwise the notification engine 1412 would send three similar notifications in a row to a user 116 who watches three videos in a row related to baseball. This might annoy the user 116 and/or cause the user 116 to disregard further notifications. By having the rule that limits the frequency of certain notifications, the user 116 would get only one notification related to the notification request instead of three.


Referring next to FIG. 15, an embodiment for a process 1500 for correlating a criterion in a notification request with a Feed Item is shown. The depicted portion of the process begins in block 1504 where the notification interface 1404 receives a notification request, the notification request containing a first field for a notification and a second field for one or more criteria for the notification engine 1412 to apply as the notification engine 1412 processes the notification request. In block 1508, the notification interface 1404 may optionally authenticate the notification request by accessing the authorization records 1408. The notification engine 1412 then receives the notification request from the notification interface 1404. In block 1512, the notification engine 1412 correlates the notification request to a Feed Item by using the notification correlation index 1416 to map the one or more criteria in the notification request to a Feed Item, establishing a correlated Feed Item.


To determine a user 116 and/or device 112 corresponding to the notification request, block 1516, the notification engine 1412 receives data from the aggregation engine 304 and/or the user interface 312 when the correlated Feed Item is currently, or about to be, viewed by a user 116. The data received from the aggregation engine 304 and/or the user interface 312 can include identification data about the user 116, user interface 312, and/or device 112, such as user-specific identifiers, user-interface-specific identifiers, and/or device-specific identifiers from the user index 352.


In block 1520, the notification engine 1412 then transmits the notification in the first field of the notification request in a timed relation to when the user 116 views, or may view, the correlated Feed Item. For example, the notification engine 1412 may transmit the notification in the notification request when the user 116 starts viewing the correlated Feed Item. Alternately, the notification engine 1412 could transmit the notification a number of seconds and/or minutes after the user 116 starts viewing the correlated Feed Item and while the user 116 is still viewing the correlated Feed Item. Additionally, the notification engine 1412 could transmit the notification after the user 116 starts viewing a correlated Feed Item, regardless of whether or not the user 116 is still viewing the correlated Feed Item. For example, the notification engine 1412 could transmit the notification a minute, several minutes, an hour, and/or several hours after the user 116 begins viewing a correlated Feed Item; and/or the notification engine 1412 could transmit the notification to the user 116 a next time the user 116 logged on the user interface 312. If the notification came the next time the user 116 logged on the user interface 312, the user 116 may not be as distracted as when the user 116 is already watching a video.


The notification engine 1412 could also transmit the notification before the user 116 begins viewing the correlated Feed Item. Components of the aggregation system 108, such as the user interface 312 and/or aggregation engine 304, have data about the selective feed 220 the user 116 is viewing. The aggregation system 108 tracks an order of Feed Items in that selective feed 220, including where the correlated Feed Item falls in the order of Feed Items. The user interface 312 and/or the aggregation engine 304 could signal the notification engine 1412 when the user 116 is viewing the selective feed 220 and the selective feed 220 is about to display the correlated Feed Item. For example, a notification about an availability of discount tickets to a local zoo could be displayed before the user 116 is about to watch a video of a news story about panda bears at the local zoo. That might encourage the user 116 to watch the video of a news story about panda bears at the local zoo.


As an example of how the process 1500 for correlating a criterion in a notification request with a Feed Item may work, a vendor selling flashlights could submit a notification request through the notification interface 1404. The vendor selling flashlights could stipulate that the notification in the first field of the notification request is a string of text advertising a crank-powered flashlight. The vendor selling flashlights could stipulate that the one or more criteria in the notification request include sending the notification advertising a crank-powered flashlight to users 116 viewing a video related to a natural disaster and that the notification advertising a crank-powered flashlight is to be shown seven seconds after the user 116 starts to view the video related to a natural disaster. In addition to submitting the notification request, the vendor selling flashlights could also submit credentials that the vendor selling flashlights is authorized to submit the notification request. The notification interface 1404 would compare the credentials of the vendor selling flashlights to the authorization records 1408 to verify that the vendor selling flashlights was authorized to submit the notification request. The notification interface 1404 would then send the notification request from the vendor selling flashlights to the notification engine 1412. The notification engine 1412 could map the one or more criteria of the notification request to a Feed Item in Table 1 corresponding to Feed Item ID 99246859, a Feed Item about a strong hurricane. When the user 116 has a selective feed 220 that includes the Feed Item about a strong hurricane, the user interface 312 sends the notification engine 1412 a user-interface-specific identifier and the Feed Item ID relating to the Feed Item about a strong hurricane. The notification engine 1412 then transmits the notification, the string of text advertising a crank-powered flashlight, to the user-interface notification center 1430 with instructions that the string of text advertising a crank-powered flashlight is to be shown seven seconds after the user 116 begins viewing the Feed Item about a strong hurricane. The user-interface notification center 1430 would then display the text advertising a crank-powered flashlight seven seconds after the user 116 begins viewing the Feed Item about a strong hurricane. Additionally, the vendor selling flashlights could set the one or more criteria of the notification request to transmit the text advertising the crank-powered flashlight seven hours after the user 116 watched the Feed Item about a strong hurricane. Transmitting the notification hours after the user 116 watched the Feed Item about a strong hurricane could give the user 116 time to think about, and possibly discuss, the strong hurricane and how the user 116 might prepare herself for a hurricane.


Referring next to FIG. 16, an embodiment of a process 1600 for managing notifications is shown. The depicted portion of the process begins in block 1604 where the notification engine 1412 reads a notification request. The notification engine 1412 can receive the notification request from the notification interface 1404, and/or the notification engine 1412 can generate the notification request.


In an embodiment, the notification policy index 1424 contains notification rules on how the notification engine 1412 should handle a notification request. In block 1612, the notification engine 1412 reads one or more of the notification rules that may apply to the notification request. For example, one rule may limit the notification engine 1412 to sending no more than one notification that is an advertisement to a user 116 per hour.


For the notification engine 1412 to apply the notification rules, the notification engine 1412 may need to read a list containing a history of notifications and/or a history of notification requests, block 1616. One source of data the notification engine 1412 can pull from is the notification history list 1420, which contains a history of notifications and/or a history of notification requests. The notification engine 1412 may also query the user-interface notification center 1430 and/or the platform-level notification center 1434 for a list containing a history of notifications, such as how many unread notifications remain in the user-interface notification center 1430 and/or the platform-level notification center 1434, whether a similar notification has been read by a user 116 on another device 112, what notifications from other applications are in the platform-level notification center, and/or a total number of notifications in the user-interface notification center 1430 and/or the platform-level notification center 1434.


In block 1624, the notification engine 1412 determines whether or not to send the notification by applying the notification rules in the notification policy index 1424 based on the data from the notification history list 1420 and, optionally, based on the data from the user-interface notification center 1430 and/or the platform-level notification center 1434. If the notification engine 1412 determines not to send the notification, the notification engine 1412 does not send the notification, block 1628. Conversely, if the notification engine 1412 does determine to send the notification, the notification engine 1412 transmits the notification, block 1632. For example, there may be a rule for sending a user 116 only one notification per day that is an advertisement. The notification engine 1412, after receiving a notification request where the notification in the first field of the notification request is an advertisement, could select a user 116 to send the notification to and query the notification history list 1420 for notifications related to that user 116 that were advertisements. If after discovering the user 116 that day already received an advertisement notification, the notification engine 1412 would not transmit the notification in the first field of the notification request.


In block 1634, whether or not the notification engine 1412 transmits the notification, a rule in the notification policy index 1424 may, optionally, have the notification engine 1412 generate a new notification request. For example, the notification policy index 1424 could contain a rule that after the notification engine 1412 has sent five local notifications, which are all unread, the notification engine 1412 should generate a platform-level notification instructing the user 116 to check the user-interface notification center 1430. After sending five local notifications, and checking that the user-interface notification center 1430 that the messages are unread, the notification engine 1412 would generate a new notification request to send a platform-level notification to the platform-level notification center 1434


In another example, the user 116 could generate a notification request that notifications from other applications that appear in the platform-level notification center 1434 are to be sent to the user-interface notification center 1430. For example, Delta Airlines™ has an Apple™ iPhone™ application that provides notifications relating to flight information, including gate changes, flight delays, and prompts to check in. The notification engine 1412 could query the platform-level notification center 1434 of the Apple™ iPhone™ of the user 116, and pull an unread notification from Delta Airlines™ that the flight the user 116 was booked for is going to be delayed. The notification engine 1412 could then generate a notification request where the first field of the notification request is a copy of the unread notification from Delta Airlines™ that the flight the user 116 was booked on is going to be delayed, and the second field of the notification request is a criterion that the notification in the first field of the notification request be sent as a local notification to the user-interface notification center 1430. That way the user 116 would receive the notification from Delta Airlines™ that the flight the user 116 was booked for is going to be delayed while the user 116 is viewing a selective feed 220.


The functions associated with the NMS 348, the notification engine 1412, and related functions can be technically implemented through any of, all of, or any combination of: execution as part of the user interface 312; as part of software functionality on the device 112; as part of the aggregation system 108; as part of a system associated with the aggregation system 108; as part of an Internet service 126 associated with the aggregation system 108 and/or the user 116; as part of, or in conjunction with, a content management system, shared content management system, or other system associated with a service feed 206; as a standalone system or programming interface; as a standalone Internet service 126; through a programming interface or other digital interface of the device 112, the operating system executing on the device 112, or other software executing on the device 112; through a programming interface or other digital interface available in conjunction with the network connected, directly, indirectly, or through an intermediate network, to the device 112.


Specific details are given in the above description to provide a thorough understanding of the embodiments. However, it is understood that the embodiments may be practiced without these specific details. For example, circuits may be shown in block diagrams in order not to obscure the embodiments in unnecessary detail. In other instances, well-known circuits, processes, algorithms, structures, and techniques may be shown without unnecessary detail in order to avoid obscuring the embodiments.


Also, it is noted that the embodiments may be described as a process which is depicted as a flowchart, a flow diagram, a data flow diagram, a structure diagram, or a block diagram. Although a flowchart may describe the operations as a sequential process, many of the operations can be performed in parallel or concurrently. In addition, the order of the operations may be re-arranged. A process is terminated when its operations are completed, but could have additional steps not included in the figure. A process may correspond to a method, a function, a procedure, a subroutine, a subprogram, etc. When a process corresponds to a function, its termination corresponds to a return of the function to the calling function or the main function.


Furthermore, embodiments may be implemented by hardware, software, scripting languages, firmware, middleware, microcode, hardware description languages, and/or any combination thereof. When implemented in software, firmware, middleware, scripting language, and/or microcode, the program code or code segments to perform the necessary tasks may be stored in a machine readable medium such as a storage medium. A code segment or machine-executable instruction may represent a procedure, a function, a subprogram, a program, a routine, a subroutine, a module, a software package, a script, a class, or any combination of instructions, data structures, and/or program statements. A code segment may be coupled to another code segment or a hardware circuit by passing and/or receiving information, data, arguments, parameters, and/or memory contents. Information, arguments, parameters, data, etc. may be passed, forwarded, or transmitted via any suitable means including memory sharing, message passing, token passing, network transmission, etc.


For a firmware and/or software implementation, the methodologies may be implemented with modules (e.g., procedures, functions, and so on) that perform the functions described herein. Any machine-readable medium tangibly embodying instructions may be used in implementing the methodologies described herein. For example, software codes may be stored in a memory. Memory may be implemented within the processor or external to the processor. As used herein the term “memory” refers to any type of long term, short term, volatile, nonvolatile, or other storage medium and is not to be limited to any particular type of memory or number of memories, or type of media upon which memory is stored.


Moreover, as disclosed herein, the term “storage medium” may represent one or more memories for storing data, including read only memory (ROM), random access memory (RAM), magnetic RAM, core memory, magnetic disk storage mediums, optical storage mediums, flash memory devices and/or other machine readable mediums for storing information. The term “machine-readable medium” includes, but is not limited to portable or fixed storage devices, optical storage devices, wireless channels, and/or various other storage mediums capable of storing that contain or carry instruction(s) and/or data.


While the principles of the disclosure have been described above in connection with specific apparatuses and methods, it is to be clearly understood that this description is made only by way of example and not as limitation on the scope of the disclosure.

Claims
  • 1. A video processing system for providing users personalized video content feeds from videos available on the Internet, the video processing system comprising: one or more hardware servers;a first service feed that: is acquired by the one or more hardware servers from a first Internet service that is accessible from the Internet; andcomprises a first plurality of feed items, wherein each feed item of the first plurality of feed items includes a separately resolvable link to a content object available from the Internet;a second service feed that: is acquired by the one or more hardware servers from a second Internet service that is accessible from the Internet; andcomprises a second plurality of feed items, wherein each feed item of the second plurality of feed items includes a separately resolvable link to a content object available from the Internet;an aggregation system that is configured to: identify a first separately resolvable link in a first feed item, of the first plurality of feed items;retrieve a first content object, wherein the first content object is referenced by the first separately resolvable link;identify a first additional separately resolvable link contained within the first content object;determine that the first additional separately resolvable link is a link to a video content object;identify a second separately resolvable link in a second feed item, of the second plurality of feed items;retrieve a second content object, wherein the second content object is referenced by the second separately resolvable linkidentify a second additional separately resolvable link contained within the second content object;determine that the second additional separately resolvable link is a link to a video content object; andgenerate a selective feed comprising the first additional separately resolvable link and the second additional separately resolvable link.
  • 2. The video processing system for providing users personalized video content feeds from videos available on the Internet as recited in claim 1, wherein the aggregation system is further configured to: identify that a content object comprises executable code;receive the executable code;execute the executable code to receive and identify a third additional separately resolvable link contained within the content object;determine that the third additional separately resolvable link is a link to a video content object; andgenerate the selective feed further comprising the third additional separately resolvable link.
  • 3. The video processing system for providing users personalized video content feeds from videos available on the Internet as recited in claim 2, wherein the executable code is JavaScript that is normally activated within a browser.
  • 4. The video processing system for providing users personalized video content feeds from videos available on the Internet as recited in claim 1, wherein the first content object referenced by the first separately resolvable link is a web page, RSS feed, or XML file.
  • 5. The video processing system for providing users personalized video content feeds from videos available on the Internet as recited in claim 1, wherein: the first separately resolvable link redirects via an HTTP redirect to a redirect URL; andthe aggregation system is further configured to access the redirect URL and retrieve the first content object referenced by the first separately resolvable link.
  • 6. The video processing system for providing users personalized video content feeds from videos available on the Internet as recited in claim 1, wherein the aggregation system is further configured to: identify a third separately resolvable link;determine that the third separately resolvable link is a link to a video content object already available by another link in the selective feed; anddetermine not to include the third separately resolvable link in the selective feed because the third separately resolvable link would be a duplicate link.
  • 7. The video processing system for providing users personalized video content feeds from videos available on the Internet as recited in claim 1, wherein the aggregation system is further configured to: identify a third separately resolvable link;determine that the third separately resolvable link is a link to a video from a third Internet service;receive a user and/or device preference;identify the third Internet service as inconsistent with the user and/or device preference; andomit the third separately resolvable link from the selective feed based on the third Internet service being inconsistent with the user and/or device preference.
  • 8. The video processing system for providing users personalized video content feeds from videos available on the Internet as recited in claim 1, wherein the aggregation system is further configured to: select a third feed item that has a third separately resolvable link to a third content object;initiate a first request for the third content object, wherein: the first request is made using the third separately resolvable link;the first request is made identifying as a first user-agent configuration; andthe first user-agent configuration comprises a hardware configuration, a software configuration, and/or a network connection configuration;receive a first response, wherein the first response comprises a first version of the third content object;initiate a second request for the third content object, wherein: the second request is made using the third separately resolvable link;the second request is made identifying as a second configuration, different from the first user-agent configuration; andthe second configuration comprises a hardware configuration, a software configuration, and/or a connection configuration;receive a second response, wherein: the second response comprises a second version of the third content object; andthe first version of the third content object is different from the second version of the third content object; andgenerate the selective feed comprising a separately resolvable link associated with the second version of the third content object based on a user device requesting the selective feed and the user device having a configuration similar to the second configuration.
  • 9. A video processing system for providing users personalized video content feeds from videos available on the Internet, the video processing system comprising: one or more hardware servers;a service feed that: is acquired by the one or more hardware servers from a first Internet service that is accessible from the Internet; andcomprises a plurality of feed items, wherein each of the plurality of feed items include a separately resolvable link to a content object available from the Internet;an aggregation system that is configured to: select a first feed item, of the plurality of feed items, that has a first separately resolvable link to a first content object;initiate a first request for the first content object, wherein: the first request is made using the first separately resolvable link;the first request is made identifying as a first user-agent configuration; andthe first user-agent configuration comprises a hardware configuration, a software configuration, and/or a network connection configuration;receive a first response, wherein the first response comprises a first version of the first content object;initiate a second request for the first content object, wherein: the second request is made using the first separately resolvable link;the second request is made identifying as a second configuration, different from the first user-agent configuration; andthe second configuration comprises a hardware configuration, a software configuration, and/or a connection configuration;receive a second response, wherein: the second response comprises a second version of the first content object; andthe first version of the first content object is different from the second version of the first content object;generate a first version of the selective feed comprising a separately resolvable link associated with the first version of the first content object;transmit the first version of the selective feed to a first end-user device;generate a second version of the selective feed comprising a separately resolvable link associated with the second version of the first content object; andtransmit the second version of the selective feed to a second end-user device.
  • 10. The video processing system for providing users personalized video content feeds from videos available on the Internet as recited in claim 9, wherein the first user-agent configuration is different from the second configuration based on having a different user agent, device type, media player type, functionality, software or device capability, network type, network connectivity, software or device characteristic, and/or device capacity.
  • 11. The video processing system for providing users personalized video content feeds from videos available on the Internet as recited in claim 9, wherein the first version of the first content object is different from the second version of the first content object based on format, protocol, and/or a first additional separately resolvable link being different from a second additional separately resolvable link.
  • 12. The video processing system for providing users personalized video content feeds from videos available on the Internet as recited in claim 9, wherein the aggregation system is further configured to store the first version of the first content object and/or the second version of the first content object.
  • 13. The video processing system for providing users personalized video content feeds from videos available on the Internet as recited in claim 9, wherein the aggregation system is further configured to store additional separately resolvable links associated with additional versions of the first content object.
  • 14. The video processing system for providing users personalized video content feeds from videos available on the Internet as recited in claim 9, wherein the aggregation system is configured to make a third request for the first content object using a third configuration and receive a third version of the first content object.
  • 15. The video processing system for providing users personalized video content feeds from videos available on the Internet as recited in claim 9, wherein the aggregation system is further configured to: identify a second separately resolvable link;determine that the second separately resolvable link is a link to a video content object already available by another link in the first selective feed; anddetermine not to include the second separately resolvable link in the first selective feed because the second separately resolvable link would be a duplicate link.
  • 16. The video processing system for providing users personalized video content feeds from videos available on the Internet as recited in claim 9, wherein the aggregation system is further configured to: identify a second separately resolvable link;determine that the second separately resolvable link is to a video from a second Internet service;receive a user and/or device preference for a user of the first end-user device;identify that the second Internet service as inconsistent with the user and/or device preference for the user of the first end-user device;omit the second separately resolvable link from the first selective feed based on the second Internet service being identified as inconsistent with the user and/or device preference for the user of the first end-user device.
  • 17. The video processing system for providing users personalized video content feeds from videos available on the Internet as recited in claim 9, wherein the aggregation system is further configured to: identify a second separately resolvable link in a second feed item;retrieve a second content object, wherein the second content object is referenced by the second separately resolvable link;identify a first additional separately resolvable link contained within the second content object;determine that the first additional separately resolvable link is a link to a video content object;generate the first selective feed comprising the first additional separately resolvable link.
  • 18. A method for providing users personalized video content feeds from videos available on the Internet, the method comprising: acquiring a first service feed that: is acquired from a first Internet service that is accessible from the Internet; andcomprises a first plurality of feed items, wherein each feed item of the first plurality of feed items includes a separately resolvable link to a content object available from the Internet;acquiring a second service feed that: is acquired from a second Internet service that is accessible from the Internet; andcomprises a second plurality of feed items, wherein each feed item of the second plurality of feed items includes a separately resolvable link to a content object available from the Internet;identifying a first separately resolvable link in a first feed item, of the first plurality of feed items;retrieving a first content object, wherein the first content object is referenced by the first separately resolvable link;identifying a first additional separately resolvable link contained within the first content object;determining that the first additional separately resolvable link is a link to a video content object;identifying a second separately resolvable link in a second feed item, of the second plurality of feed items;retrieving a second content object, wherein the second content object is referenced by the second separately resolvable linkidentifying a second additional separately resolvable link contained within the second content object;determining that the second additional separately resolvable link is a link to a video content object; andgenerating a selective feed comprising the first additional separately resolvable link and the second additional separately resolvable link.
  • 19. The method for providing users personalized video content feeds from videos available on the Internet as recited in claim 18, the method further comprising: identifying that a content object comprises executable code;receiving the executable code;executing the executable code to receive and identify a third additional separately resolvable link contained within the content object;determining that the third additional separately resolvable link is a link to a video content object; andgenerating the selective feed further comprising the third additional separately resolvable link.
  • 20. The method for providing users personalized video content feeds from videos available on the Internet as recited in claim 18, the method further comprising: selecting a third feed item that has a third separately resolvable link to a third content object;initiating a first request for the third content object, wherein: the first request is made using the third separately resolvable link;the first request is made identifying as a first user-agent configuration; andthe first user-agent configuration comprises a hardware configuration, a software configuration, and/or a network connection configuration;receiving a first response, wherein the first response comprises a first version of the third content object;initiating a second request for the third content object, wherein: the second request is made using the third separately resolvable link;the second request is made identifying as a second configuration, different from the first user-agent configuration; andthe second configuration comprises a hardware configuration, a software configuration, and/or a connection configuration;receiving a second response, wherein: the second response comprises a second version of the third content object; andthe first version of the third content object is different from the second version of the third content object; andgenerating the selective feed comprising a separately resolvable link associated with the second version of the third content object based on a user device requesting the selective feed and the user device having a configuration similar to the second configuration.
CROSS-REFERENCE TO RELATED APPLICATION

This application is a continuation of U.S. patent application Ser. No. 14/184,991, filed Feb. 20, 2014, which is a continuation of U.S. patent application Ser. No. 13/717,597, filed Dec. 17, 2012, entitled “AUTOMATIC SELECTION OF DIGITAL SERVICE FEED,” which is a non-provisional of U.S. Patent Application No. 61/733,870, filed Dec. 5, 2012; application Ser. No. 13/717,597 is a continuation-in-part of application Ser. No. 13/469,717, which is a continuation of U.S. patent application Ser. No. 13/460,305 filed Apr. 30, 2012, which is a continuation of PCT/US2012/35854, filed Apr. 30, 2012 and a continuation-in-part of U.S. patent application Ser. No. 13/296,183, filed Nov. 14, 2011, which is related by priority to Australian Application No. 2011202182 and PCT/US2011/034653, and all of which are incorporated herein by reference in their entirety.

US Referenced Citations (20)
Number Name Date Kind
6151601 Papierniak et al. Nov 2000 A
6446262 Malaure et al. Sep 2002 B1
7558833 Sherwood Jul 2009 B2
8495693 St. John-Larkin Jul 2013 B2
8583759 Harrison et al. Nov 2013 B2
8613015 Gordon et al. Dec 2013 B2
8706841 Gordon et al. Apr 2014 B2
20060173985 Moore Aug 2006 A1
20070083536 Darnell Apr 2007 A1
20070198738 Angiolillo Aug 2007 A1
20080168503 Sparrell Jul 2008 A1
20090125582 Marcus May 2009 A1
20100058416 LaFreniere Mar 2010 A1
20110029666 Lopatecki et al. Feb 2011 A1
20110083013 Nice et al. Apr 2011 A1
20110238652 Wolf-Soffer Sep 2011 A1
20110238754 Dasilva et al. Sep 2011 A1
20120210353 Wong et al. Aug 2012 A1
20120278428 Harrison et al. Nov 2012 A1
20120278725 Gordon et al. Nov 2012 A1
Foreign Referenced Citations (1)
Number Date Country
10-2011-0003491 Jan 2011 KR
Non-Patent Literature Citations (4)
Entry
Supplementary European Search Report in EP 12777699.5, mailed Aug. 14, 2014, 10 pages.
International Search Report and Written Opinion of PCT/US2013/073394, mailed on Mar. 17, 2014, 18 pages.
IPRP issued on Jun. 9, 2015 for International Patent Application No. PCT/US2013/073394 filed on Dec. 5, 2013, all pages.
Non-Final Office Action notified on Jul. 2, 2015 for U.S. Appl. No. 14/184,991, filed Feb. 20, 2014, all pages.
Related Publications (1)
Number Date Country
20140337335 A1 Nov 2014 US
Provisional Applications (1)
Number Date Country
61733870 Dec 2012 US
Continuations (4)
Number Date Country
Parent 14184991 Feb 2014 US
Child 14186929 US
Parent 13717597 Dec 2012 US
Child 14184991 US
Parent 13460305 Apr 2012 US
Child 13469717 US
Parent PCT/US2012/035854 Apr 2012 US
Child 13460305 US
Continuation in Parts (2)
Number Date Country
Parent 13469717 May 2012 US
Child 13717597 US
Parent 13296183 Nov 2011 US
Child PCT/US2012/035854 US