IP Library Granted Patent US 9,661,361
Granted Patent B2
US 9,661,361 · App. 13/623,031 · Granted May 23, 2017

Systems and methods for live media content matching

Inventor: Matthew Sharifi (Zurich, CH)
Assignee: GOOGLE INC.
H04N21/2353H04N21/23418H04N21/251H04N21/4668H04N21/84
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,661,361
App. No.
13/623,031
Granted
May 23, 2017
Kind
B2
Abstract

Systems and methods for matching live media content are disclosed. At a server, obtaining first media content from a client device, herein the first media content corresponds to a portion of media content being played on the client device, and the first media content is associated with a predefined expiration time; obtaining second media content from one or more content feeds, wherein the second media content also corresponds to a portion of the media content being played on the client device; in accordance with a determination that the second media content corresponds to a portion of the media content that has been played on the client device: before the predefined expiration time, obtaining third media content corresponding to the media content being played on the client device, from the one or more content feeds; and comparing the first media content with the third media content.

Claims (67)

1. A method comprising:

at a server having one or more processors and memory storing one or more programs for execution by the one or more processors:

at or around a same time during a predefined time window based on differential network delays between the server, one or more live content feeds and a client device:

obtaining a plurality of first media content items from the one or more live content feeds, wherein the server is continually monitoring the live content feeds so as to obtain the first media content items in near real time; and

obtaining a second media content item from the client device, wherein the second media content item corresponds to a portion of media content being played on the client device, wherein the second media content item is obtained in near real time;

determining that the second media content item does not match any of the plurality of first media content items;

in response to the determination:

temporarily retaining at the server the second media content item for at least a predefined period;

attempting to obtain a third media content item from the one or more live content feeds within the predefined period after obtaining the second content item, wherein the third media content item was not obtained by the server when then second media content item was obtained;

in accordance with a successful attempt to obtain the third media content item from the one or more live content feeds within the predefined period after obtaining the second content item:

obtaining information identifying the third media content item; and

matching the third media content item to the second media content item;

in response to the matching: providing the information to the client device; and

in accordance with an unsuccessful attempt to obtain the third media content item from the one or more live content feeds within the predefined period after obtaining the second content item:

returning a mismatch or an error message.

2. The method of claim 1 , further comprising:

obtaining a first content fingerprint corresponding to the second media content item; and

obtaining a second content fingerprint corresponding to the third media content item;

wherein matching the third media content item to the stored second media content item comprises matching the second content fingerprint to the first content fingerprint.

3. The method of claim 2 , wherein each content fingerprint includes at least one of: average zero cross rate, estimate tempo, average spectrum, spectral flatness, prominent tones cross a set of bands, or bandwidth.

4. The method of claim 1 , wherein the media content is one of: a clip of a video stream or audio stream, or a predefined number of frames of a video stream.

5. The method of claim 1 , further comprising releasing the first media content from memory after the predefined retention period.

6. The method of claim 1 , wherein the information provided includes other media content related to the media content.

7. The method of claim 1 , wherein the information provided includes promotional material related to the media content.

8. A server system, comprising:

one or more processors;

memory; and

one or more programs, wherein the one or more programs are stored in the memory and configured to be executed by the one or more processors, the one or more programs including instructions for:

at or around a same time during a predefined time window based on differential network delays between the server, one or more live content feeds and a client device:

obtaining a plurality of first media content items from the one or more live content feeds, wherein the server is continually monitoring the live content feeds so as to obtain the first media content items in near real time; and

obtaining a second media content item from the client device, wherein the second media content item corresponds to a portion of media content being played on the client device, wherein the second media content item is obtained in near real time;

determining that the second media content item does not match any of the plurality of first media content items;

in response to the determination:

temporarily retaining at the server the second media content item for at least a predefined period;

attempting to obtain a third media content item from the one or more live content feeds within the predefined period after obtaining the second content item, wherein the third media content item was not obtained by the server when then second media content item was obtained;

in accordance with a successful attempt to obtain the third media content item from the one or more live content feeds within the predefined period after obtaining the second content item:

obtaining information identifying the third media content item; and

matching the third media content item to the second media content item;

in response to the matching: providing the information to the client device; and

in accordance with an unsuccessful attempt to obtain the third media content item from the one or more live content feeds within the predefined period after obtaining the second content item:

returning a mismatch or an error message.

9. The server system of claim 8 , wherein the one or more programs further comprise instructions for:

obtaining a first content fingerprint corresponding to the second media content item; and

obtaining a second content fingerprint corresponding to the third media content item;

wherein matching the third media content item to the stored second media content item comprises matching the second content fingerprint to the first content fingerprint.

10. The server system of claim 9 , wherein each content fingerprint includes at least one of: average zero cross rate, estimate tempo, average spectrum, spectral flatness, prominent tones cross a set of bands, or bandwidth.

11. The server system of claim 8 , wherein the media content is one of: a clip of a video stream or audio stream, or a predefined number of frames of a video stream.

12. A non-transitory computer readable storage medium storing one or more programs configured for execution by a computer system with one or more processors and memory, the one or more programs comprising instructions for:

at or around a same time during a predefined time window based on differential network delays between the server, one or more live content feeds and a client device:

obtaining a plurality of first media content items from the one or more live content feeds, wherein the server is continually monitoring the live content feeds so as to obtain the first media content items in near real time; and

obtaining a second media content item from the client device, wherein the second media content item corresponds to a portion of media content being played on the client device, wherein the second media content item is obtained in near real time;

determining that the second media content item does not match any of the plurality of first media content items;

in response to the determination:

temporarily retaining at the server the second media content item for at least a predefined period;

attempting to obtain a third media content item from the one or more live content feeds within the predefined period after obtaining the second content item, wherein the third media content item was not obtained by the server when then second media content item was obtained;

in accordance with a successful attempt to obtain the third media content item from the one or more live content feeds within the predefined period after obtaining the second content item:

obtaining information identifying the third media content item; and

matching the third media content item to the second media content item;

in response to the matching: providing the information to the client device; and

in accordance with an unsuccessful attempt to obtain the third media content item from the one or more live content feeds within the predefined period after obtaining the second content item:

returning a mismatch or an error message.

13. The computer readable storage medium of claim 12 , wherein the one or more programs further comprise instructions for:

obtaining a first content fingerprint corresponding to the second media content item; and

obtaining a second content fingerprint corresponding to the third media content item;

wherein matching the third media content item to the stored second media content item comprises matching the second content fingerprint to the first content fingerprint.

14. The computer readable storage medium of claim 13 , wherein each content fingerprint includes at least one of: average zero cross rate, estimate tempo, average spectrum, spectral flatness, prominent tones cross a set of bands, or bandwidth.

15. The computer readable storage medium of claim 12 , wherein the media content is one of: a clip of a video stream or audio stream, or a predefined number of frames of a video stream.

Assignments (2)
CHANGE OF NAME Recorded Oct 2, 2017
From: GOOGLE INC.
To: GOOGLE LLC
Reel/Frame 044097/0658 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 16, 2013
From: SHARIFI, MATTHEW
To: GOOGLE INC.
Reel/Frame 030811/0156 →
Continuity (1)
Related Publication 20140082651A1 · Mar 20, 2014