IP Library Granted Patent US 9,699,504
Granted Patent B2
US 9,699,504 · App. 14/867,664 · Granted Jul 4, 2017

Systems and methods for identifying a source of media content based on a log of content identifiers

View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 9,699,504
App. No.
14/867,664
Granted
Jul 4, 2017
Kind
B2
Abstract

Systems and methods are described for identifying a content source of media content being transmitted to a viewer in situations when a specific media asset is being transmitted to the viewer from two different content sources nearly simultaneously. For example, if a certain movie is being broadcast at nearly the same time by two different channels, the system is able to identify the channel that the viewer is watching. The system performs the identification by obtaining content identifiers for two different channels, matching the content identifier based on time and then finding a divergent pair of content identifiers by iterating in reverse chronological order through the pairs and comparing the content identifiers. The system then compares the content identifiers to content identifiers in a log that stores content identifiers and timestamps for content that the viewer is consuming. The matching content identifier corresponds to the correct content source.

Claims (78)

1. A method for determining a source of content that the user is presently consuming, the method comprising:

periodically generating fingerprints based on media content that the user is consuming at a given time;

for each generated fingerprint:

determining a content identifier, wherein the content identifier corresponds to a respective media asset; and

storing, in a log, the content identifier and a timestamp, wherein the timestamp corresponds to a time that the fingerprint was generated;

transmitting, to a server, a request to identify a content source corresponding to a media asset, wherein the media asset is consumed by the user at a first time, and wherein the request comprises a fingerprint generated at the first time based on the media asset;

receiving, from the server, a first content source identifier, and a second content source identifier, wherein the first content source identifier and the second content source identifier correspond to a first content source and a second content source, respectively, that are both transmitting the media asset at the first time;

transmitting, to the server, a request for a first plurality of content identifiers and corresponding timestamps and a second plurality of content identifiers and corresponding timestamps, wherein the first plurality of content identifiers and the second plurality of content identifiers correspond to content transmitted by the first content source and by the second content source, respectively;

in response to receiving the first plurality of content identifiers and the second plurality of content identifiers, matching each content identifier from the first plurality of content identifiers with a content identifier from the second plurality of content identifiers to create a plurality of matched pairs of content identifiers, wherein the matching is performed based on a timestamp associated with the respective content identifier;

iterating through each matched pair of content identifiers in reverse chronological order until a first content identifier from the first plurality of content identifiers diverges from a second content identifier from the second plurality of content identifiers, wherein the iterating comprises comparing each content identifier from the first plurality of content identifiers with a matched content identifier from the second plurality of content identifiers;

comparing the first content identifier from the first plurality of content identifiers to a contemporaneous content identifier stored in the log and comparing the second content identifier from the second plurality of content identifiers to the contemporaneous content identifier stored in the log to determine whether the first content identifier from the first plurality of content identifiers or the second content identifier from the second plurality of content identifiers matches the contemporaneous content identifier from the log; and

determining whether the first content source or the second content source is a source of content that the user is presently consuming based on whether the first content identifier from the first plurality of content identifiers or the second content identifier from the second plurality of content identifiers matches the contemporaneous content identifier from the log.

2. The method of claim 1 , wherein the fingerprints generated based on the media content that the user is consuming at the given time are generated on a first device and the log is located at a second device.

3. The method of claim 2 , wherein comparing the first content identifier from the first plurality of content identifiers to the contemporaneous content identifier stored in the log and comparing the second content identifier from the second plurality of content identifiers to the contemporaneous content identifier stored in the log comprises:

transmitting, to the second device, a request for the contemporaneous content identifier, wherein the request comprises a timestamp associated with the first content identifier; and

receiving, from the remote server, the contemporaneous content identifier, wherein the contemporaneous content identifier corresponds to a timestamp closer in time to the timestamp of the first content identifier than to a timestamp of any other content identifier in the log.

4. The method of claim 1 , wherein the request for the first plurality of content identifiers associated with the content transmitted by the first content source and the second plurality of content identifiers associated with the content transmitted by the second content source comprises a time range and an instruction to the server to transmit back content identifiers with corresponding timestamps in the time range.

5. The method of claim 1 , further comprising:

identifying the first content source as the source of content that the user is presently consuming;

generating for display a user-selectable indication of the second content source; and

in response to a user selection of the user-selectable indication, generating for display content from the second content source.

6. The method of claim 1 , wherein matching each content identifier from the first plurality of content identifiers with the content identifier from the second plurality of content identifiers to create the plurality of matched pairs of content identifiers comprises:

indexing the first plurality of content identifiers and the second plurality of content identifiers by time based on respective timestamps; and

matching each content identifier from the first plurality of content identifiers with a corresponding content identifier from the second plurality of content identifiers according to the index.

7. The method of claim 1 , wherein matching each content identifier from the first plurality of content identifiers with the content identifier from the second plurality of content identifiers to create the plurality of matched pairs of content identifiers comprises:

sorting the first plurality of content identifiers in reverse chronological order based on respective timestamps corresponding to content identifiers of the first plurality of content identifiers;

sorting the second plurality of content identifiers in reverse chronological order based on respective timestamps corresponding to content identifiers of the second plurality of content identifiers; and

matching each content identifier from the first plurality of content identifiers with a corresponding content identifier from the second plurality of content identifiers according to the sorting order.

8. The method of claim 1 , wherein comparing the first content identifier from the first plurality of content identifiers to the contemporaneous content identifier stored in the log and comparing the second content identifier from the second plurality of content identifiers to the contemporaneous content identifier stored in the log comprises:

determining a timestamp corresponding to the first content identifier from the first plurality of content identifiers;

searching for the contemporaneous content identifier by identifying a content identifier in the log that corresponds to a timestamp closer in time to the timestamp of the first content identifier than to a timestamp of any other content identifier in the log; and

comparing both the first content identifier and the second content identifier with the contemporaneous content identifier.

9. The method of claim 1 , further comprising:

generating a media fingerprint based on media content being transmitted;

identifying a media asset corresponding to the media fingerprint by cross-referencing a time the fingerprint was generated and a content source corresponding to the media fingerprint with scheduling data;

performing a search for the media asset in a database that stores media asset identifiers and corresponding content identifiers;

based on the search returning no results, generating a content identifier for the media asset corresponding to the media fingerprint.

10. The method of claim 1 , wherein the log of fingerprints is located on a device where the fingerprint generated based on the media content that the user is consuming at the given time is generated.

11. A system for determining a source of content that the user is presently consuming, the system comprising:

Communications circuitry; and

control circuitry configured to:

periodically generate fingerprints based on media content that the user is consuming at a given time;

for each generated fingerprint:

determine a content identifier, wherein the content identifier corresponds to a respective media asset; and

store, in a log, the content identifier and a timestamp, wherein the timestamp corresponds to a time that the fingerprint was generated;

transmit, to a server, a request to identify a content source corresponding to a media asset, wherein the media asset is consumed by the user at a first time, and wherein the request comprises a fingerprint generated at the first time based on the media asset;

receive, from the server, a first content source identifier, and a second content source identifier, wherein the first content source identifier and the second content source identifier correspond to a first content source and a second content source, respectively, that are both transmitting the media asset at the first time;

transmit, to the server, a request for a first plurality of content identifiers and corresponding timestamps and a second plurality of content identifiers and corresponding timestamps, wherein the first plurality of content identifiers and the second plurality of content identifiers correspond to content transmitted by the first content source and by the second content source, respectively;

in response to receiving the first plurality of content identifiers and the second plurality of content identifiers, match each content identifier from the first plurality of content identifiers with a content identifier from the second plurality of content identifiers to create a plurality of matched pairs of content identifiers, wherein the matching is performed based on a timestamp associated with the respective content identifier;

iterate through each matched pair of content identifiers in reverse chronological order until a first content identifier from the first plurality of content identifiers diverges from a second content identifier from the second plurality of content identifiers, wherein the iterating comprises comparing each content identifier from the first plurality of content identifiers with a matched content identifier from the second plurality of content identifiers;

compare the first content identifier from the first plurality of content identifiers to a contemporaneous content identifier stored in the log and comparing the second content identifier from the second plurality of content identifiers to the contemporaneous content identifier stored in the log to determine whether the first content identifier from the first plurality of content identifiers or the second content identifier from the second plurality of content identifiers matches the contemporaneous content identifier from the log; and

determine whether the first content source or the second content source is a source of content that the user is presently consuming based on whether the first content identifier from the first plurality of content identifiers or the second content identifier from the second plurality of content identifiers matches the contemporaneous content identifier from the log.

12. The system of claim 11 , wherein the fingerprints generated based on the media content that the user is consuming at the given time are generated on a first device and the log is located at a second device.

13. The system of claim 12 , wherein the control circuitry is further configured, when comparing the first content identifier from the first plurality of content identifiers to the contemporaneous content identifier stored in the log and comparing the second content identifier from the second plurality of content identifiers to the contemporaneous content identifier stored in the log, to:

transmit, to the second device, a request for the contemporaneous content identifier, wherein the request comprises a timestamp associated with the first content identifier; and

receive, from the remote server, the contemporaneous content identifier, wherein the contemporaneous content identifier corresponds to a timestamp closer in time to the timestamp of the first content identifier than to a timestamp of any other content identifier in the log.

14. The system of claim 11 , wherein the request for the first plurality of content identifiers associated with the content transmitted by the first content source and the second plurality of content identifiers associated with the content transmitted by the second content source comprises a time range and an instruction to the server to transmit back content identifiers with corresponding timestamps in the time range.

15. The system of claim 11 , wherein the control circuitry is further configured to:

identify the first content source as the source of content that the user is presently consuming;

generate for display a user-selectable indication of the second content source; and

in response to a user selection of the user-selectable indication, generate for display content from the second content source.

16. The system of claim 11 , wherein the control circuitry is further configured, when matching each content identifier from the first plurality of content identifiers with the content identifier from the second plurality of content identifiers to create the plurality of matched pairs of content identifiers, to:

index the first plurality of content identifiers and the second plurality of content identifiers by time based on respective timestamps; and

match each content identifier from the first plurality of content identifiers with a corresponding content identifier from the second plurality of content identifiers according to the index.

17. The system of claim 11 , wherein the control circuitry is further configured, when matching each content identifier from the first plurality of content identifiers with the content identifier from the second plurality of content identifiers to create the plurality of matched pairs of content identifiers, to:

sort the first plurality of content identifiers in reverse chronological order based on respective timestamps corresponding to content identifiers of the first plurality of content identifiers;

sort the second plurality of content identifiers in reverse chronological order based on respective timestamps corresponding to content identifiers of the second plurality of content identifiers; and

match each content identifier from the first plurality of content identifiers with a corresponding content identifier from the second plurality of content identifiers according to the sorting order.

18. The system of claim 11 , wherein the control circuitry is further configured, when comparing the first content identifier from the first plurality of content identifiers to the contemporaneous content identifier stored in the log and comparing the second content identifier from the second plurality of content identifiers to the contemporaneous content identifier stored in the log, to:

determine a timestamp corresponding to the first content identifier from the first plurality of content identifiers;

search for the contemporaneous content identifier by identifying a content identifier in the log that corresponds to a timestamp closer in time to the timestamp of the first content identifier than to a timestamp of any other content identifier in the log; and

compare both the first content identifier and the second content identifier with the contemporaneous content identifier.

19. The system of claim 11 , wherein the control circuitry is further configured to:

generate a media fingerprint based on media content being transmitted;

identify a media asset corresponding to the media fingerprint by cross-referencing a time the fingerprint was generated and a content source corresponding to the media fingerprint with scheduling data;

perform a search for the media asset in a database that stores media asset identifiers and corresponding content identifiers;

based on the search returning no results, generate a content identifier for the media asset corresponding to the media fingerprint.

20. The system of claim 11 , wherein the log of fingerprints is located on a device where the fingerprint generated based on the media content that the user is consuming at the given time is generated.

Assignments (9)
PARTIAL RELEASE OF SECURITY INTEREST IN PATENTS Recorded Oct 27, 2022
From: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
To: ROVI PRODUCT CORPORATION (AS SUCCESSOR-IN-INTEREST TO ROVI GUIDES, INC.)
Reel/Frame 061786/0768 →
CHANGE OF NAME Recorded Oct 23, 2022
From: ROVI GUIDES, INC.
To: ADEIA GUIDES INC.
Reel/Frame 061746/0981 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 23, 2022
From: ADEIA GUIDES INC.
To: ROVI PRODUCT CORPORATION
Reel/Frame 061747/0001 →
RELEASE OF SECURITY INTEREST Recorded Jun 5, 2020
From: MORGAN STANLEY SENIOR FUNDING, INC.
To: ROVI SOLUTIONS CORPORATION; ROVI TECHNOLOGIES CORPORATION; ROVI GUIDES, INC.; TIVO SOLUTIONS, INC.; VEVEO, INC.
Reel/Frame 053481/0790 →
RELEASE OF SECURITY INTEREST Recorded Jun 5, 2020
From: HPS INVESTMENT PARTNERS, LLC
To: ROVI SOLUTIONS CORPORATION; ROVI TECHNOLOGIES CORPORATION; ROVI GUIDES, INC.; TIVO SOLUTIONS, INC.; VEVEO, INC.
Reel/Frame 053458/0749 →
SECURITY INTEREST Recorded Jun 1, 2020
From: ROVI SOLUTIONS CORPORATION; ROVI TECHNOLOGIES CORPORATION; ROVI GUIDES, INC.; TIVO SOLUTIONS INC.; VEVEO, INC.; INVENSAS CORPORATION; INVENSAS BONDING TECHNOLOGIES, INC.; TESSERA, INC.; TESSERA ADVANCED TECHNOLOGIES, INC.; DTS, INC.; PHORUS, INC.; IBIQUITY DIGITAL CORPORATION
To: BANK OF AMERICA, N.A.
Reel/Frame 053468/0001 →
PATENT SECURITY AGREEMENT Recorded Nov 25, 2019
From: ROVI SOLUTIONS CORPORATION; ROVI TECHNOLOGIES CORPORATION; ROVI GUIDES, INC.; TIVO SOLUTIONS, INC.; VEVEO, INC.
To: MORGAN STANLEY SENIOR FUNDING, INC., AS COLLATERAL AGENT
Reel/Frame 051110/0006 →
SECURITY INTEREST Recorded Nov 22, 2019
From: ROVI SOLUTIONS CORPORATION; ROVI TECHNOLOGIES CORPORATION; ROVI GUIDES, INC.; TIVO SOLUTIONS, INC.; VEVEO, INC.
To: HPS INVESTMENT PARTNERS, LLC, AS COLLATERAL AGENT
Reel/Frame 051143/0468 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 28, 2015
From: MAUGHAN, BENJAMIN H.
To: ROVI GUIDES, INC.
Reel/Frame 036671/0948 →