IP Library Granted Patent US 10,440,417
Granted Patent B2
US 10,440,417 · App. 15/796,666 · Granted Oct 8, 2019

Systems and methods for providing storage of data on servers in an on-demand media delivery system

Inventors: William L. Thomas (Evergreen, CO); Michael D. Ellis (Boulder, CO); Kevin B. Easterbrook (Gilbert, AZ); M. Scott Reichardt (Tulsa, OK); Robert A. Knee (Lansdale, PA)
Assignee: Rovi Guides, Inc.
H04N21/2743G06F3/0481H04L67/06H04L67/306H04N5/445H04N5/44582H04N5/76H04N7/17318H04N7/17336H04N21/2187H04N21/2541H04N21/25825H04N21/25875H04N21/25891H04N21/26283H04N21/278H04N21/2747H04N21/4122H04N21/42204H04N21/4316H04N21/441H04N21/4627H04N21/47H04N21/4751H04N21/4753H04N21/4755H04N21/47202H04N21/47217H04N21/482H04N21/4821H04N21/4828H04N21/6587H04N5/4401H04N5/775H04N5/781H04N5/85H04N9/8042
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 10,440,417
App. No.
15/796,666
Granted
Oct 8, 2019
Kind
B2
Abstract

A system and method may be provided that allows users to store, retrieve, and manipulate on-demand media content and data stored on a remote server network in an on-demand media delivery system. More particularly, the system may allow a user to access his or her on-demand media account from user equipment in different locations as long as the current user equipment can communicate with a remote server that stores user-specific information. The system upon user selection may freeze the delivery of on-demand media at a particular point and allow the user to resume the media at a later time from some other network location in system. Users may upload personal images or files to an on-demand delivery server for later retrieval and display. Users may be permitted to assign access rights to the uploaded files.

Claims (100)

1. A method for generating for display to a user a plurality of program identifiers in response to a search query received from the user, the plurality of program identifiers comprising a program identifier corresponding to a program previously paused by the user, the method comprising:

playing back a program on first user equipment;

receiving a command at the first user equipment to pause the program;

based on receiving the command:

pausing playback of the program on the first user equipment; and

storing a pause point corresponding to a time at which the command was received;

receiving, at second user equipment, a search query, wherein the search query comprises one of a program type and a text string;

in response to receiving the search query comprising a program type:

accessing a database of programs accessible by the second user equipment, the database comprising a respective indication of a type of each respective program of the programs accessible by the second user equipment;

determining, based on each respective indication of each respective program of the programs accessible by the second user equipment, a subset of programs of the program type, wherein the plurality of program identifiers comprises each program of the subset; and

generating for simultaneous display at the second user equipment a plurality of program identifiers comprising a program identifier corresponding to the program;

in response to receiving the search query comprising a text string:

accessing a database of programs accessible by the second user equipment, the database comprising a plurality of data fields for each respective program of the programs accessible by the second user equipment;

comparing the text string with the data fields of the database for each program;

determining, based on the comparing, a subset of programs having at least one data field including the text string, wherein the plurality of program identifiers comprises each program of the subset; and

generating for simultaneous display at the second user equipment a plurality of program identifiers comprising a program identifier corresponding to the program;

receiving, at the second user equipment, a selection of the program identifier corresponding to the program from the displayed plurality of program identifiers; and

based on receiving, at the second user equipment, the selection of the program identifier corresponding to the program from the displayed plurality of program identifiers, retrieving the pause point, and playing back the program on the second user equipment from a point corresponding to the pause point.

2. The method of claim 1 , the method further comprising, further in response to receiving the search query:

accessing a first database of programs, the first database comprising a first plurality of data fields related to on-demand programs;

accessing a second database of programs, the second database comprising a second plurality of data fields related to user-generated content;

comparing content of the search query with the first plurality of data fields and the second plurality of data fields; and

determining, based on the comparing, a plurality of on-demand programs and a plurality of user-generated content relevant to the search query, wherein the plurality of program identifiers comprises the plurality of on-demand programs and the user-generated content relevant to the search query.

3. The method of claim 1 , wherein:

pausing playback of the program on the first user equipment further comprises storing a content location reference for the program; and wherein

playing back the program on the second user equipment from the point corresponding to the pause point further comprises:

retrieving the content location reference for the program;

accessing a content location corresponding to the content location reference; and

retrieving the program from a location corresponding to the content location reference.

4. The method of claim 1 , further comprising:

further in response to receiving the search query, retrieving a set of program identifiers relevant to the search query;

determining respective access rights associated with each respective program identifier of the set of program identifiers;

comparing the respective access rights associated with each respective program identifier of the set of program identifiers with access rights of the user; and

generating, from the set of program identifiers, based on the comparing, a subset of program identifiers, the subset of program identifiers comprising program identifiers having access rights which match the access rights of the user, wherein the plurality of program identifiers comprises each program identifier of the subset of program identifiers.

5. The method of claim 1 , wherein the first user equipment and the second user equipment are in direct communication over a communications network, wherein the communications network is a public switched telephone network, packet-based network, wireless network, or the Internet.

6. The method of claim 1 , wherein the pause point is further associated with an account associated with a user, the first user equipment, a content location reference, a point in the first program where the user paused the program, or user-specific data.

7. The method of claim 1 , wherein the first user equipment or the second user equipment comprises a mobile device.

8. A system for generating for display to a user a plurality of program identifiers in response to a search query, the plurality of program identifiers including a program identifier corresponding to a program previously paused, the system comprising:

a first user equipment comprising:

a first memory;

a first display device configured to play back a program;

an input device configured to receive commands from a user; and

first control circuitry configured to:

receive a command to pause the program;

based on receiving the command:

pause the program; and

store a pause point corresponding to a time at which the command was received;

a second user equipment device comprising:

a second display device configured to play back the program;

an input device configured to receive commands and input from the user; and

second control circuitry configured to:

receive a search query, wherein the search query comprises one of a program type and a text string;

in response to receiving the search query comprising a program type:

access a database of programs accessible by the second user equipment, the database comprising a respective indication of a type of each respective program of the programs accessible by the second user equipment;

determine, based on each respective indication of each respective program of the programs accessible by the second user equipment, a subset of programs of the program type, wherein the plurality of program identifiers comprises each program of the subset and

generate for simultaneous display a plurality of program identifiers comprising a program identifier corresponding to the program;

in response to receiving the search query comprising a text string:

access a database of programs accessible by the second user equipment, the database comprising a plurality of data fields for each respective program of the programs accessible by the second user equipment;

compare the text string with the data fields of the database for each program;

determine, based on the comparison, a subset of programs having at least one data field including the text string, wherein the plurality of program identifiers comprises each program of the subset; and

generate for simultaneous display a plurality of program identifiers comprising a program identifier corresponding to the program;

receive a selection of the program identifier corresponding to the program from the displayed plurality of program identifiers; and

based on receiving the selection of the program identifier corresponding to the program from the displayed plurality of program identifiers, retrieve the pause point, and play back the program from a point corresponding to the pause point.

9. The system of claim 8 , wherein the second control circuitry is further configured to, further in response to receiving the search query:

access a first database of programs, the first database comprising a first plurality of data fields related to on-demand content;

access a second database of programs, the second database comprising a second plurality of data fields related to user-generated content;

compare content of the search query with the first plurality of data fields and the second plurality of data fields; and

determine, based on the comparison, a plurality of on-demand programs and a plurality of user-generated content relevant to the search query, wherein the plurality of program identifiers comprises the plurality of on-demand programs and the user-generated content relevant to the search query.

10. The system of claim 8 , wherein:

the first control circuitry configured to pause the program is further configured to store a content location reference for the program; and

the second control circuitry configured to play back the program from the point corresponding to the pause point is further configured to:

retrieve the content location reference for the program;

access a content location corresponding to the content location reference; and

retrieve the program from a location corresponding to the content location reference.

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

further in response to receiving the search query, retrieve a set of program identifiers relevant to the search query;

determine respective access rights associated with each respective program identifier of the set of program identifiers;

compare the respective access rights associated with each respective program identifier of the set of program identifiers with access rights of the user; and

generate, from the set of program identifiers, based on the comparison, a subset of program identifiers, the subset of program identifiers comprising program identifiers having access rights which match the access rights of the user, wherein the plurality of program identifiers comprises each program identifier of the subset of program identifiers.

12. The system of claim 8 , wherein the first user equipment and the second user equipment are in direct communication over a communications network, wherein the communications network is a public switched telephone network, packet-based network, wireless network, or the Internet.

13. The system of claim 8 , wherein the pause point is further associated with an account associated with a user, the first user equipment, a content location reference, a point in the first program where the user paused the program, or user-specific data.

14. The system of claim 8 , wherein the first user equipment or the second user equipment comprises a mobile device.

15. A non-transitory computer-readable medium comprising memory having non-transitory computer-readable instructions encoded thereon for generating for display to a user a plurality of program identifiers in response to a search query received from the user, the plurality of program identifiers comprising a program identifier corresponding to a program previously paused by the user, the instructions comprising:

an instruction for playing back a program on first user equipment;

an instruction for receiving a command at the first user equipment to pause the program;

instructions for, based on receiving the command:

pausing playback of the program on the first user equipment; and

storing a pause point corresponding to a time at which the command was received;

an instruction for receiving, at second user equipment, a search query, wherein the search query comprises one of a program type and a text string;

instructions for, in response to receiving the search query comprising a program type:

accessing a database of programs accessible by the second user equipment, the database comprising a respective indication of a type of each respective program of the programs accessible by the second user equipment;

determining, based on each respective indication of each respective program of the programs accessible by the second user equipment, a subset of programs of the program type, wherein the plurality of program identifiers comprises each program of the subset; and

generating for simultaneous display at the second user equipment a plurality of program identifiers comprising a program identifier corresponding to the program;

instructions for, in response to receiving the search query comprising a text string:

accessing a database of programs accessible by the second user equipment, the database comprising a plurality of data fields for each respective program of the programs accessible by the second user equipment;

comparing the text string with the data fields of the database for each program;

determining, based on the comparing, a subset of programs having at least one data field including the text string, wherein the plurality of program identifiers comprises each program of the subset and

generating for simultaneous display at the second user equipment a plurality of program identifiers comprising a program identifier corresponding to the program;

an instruction for receiving, at the second user equipment, a selection of the program identifier corresponding to the program from the displayed plurality of program identifiers; and

an instruction for, based on receiving, at the second user equipment, the selection of the program identifier corresponding to the program from the displayed plurality of program identifiers, retrieving the pause point, and playing back the program on the second user equipment from a point corresponding to the pause point.

Assignments (9)
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 →
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 →
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 Feb 7, 2018
From: THOMAS, WILLIAM L.; ELLIS, MICHAEL D.; EASTERBROOK, KEVIN B.; REICHARDT, M. SCOTT; KNEE, ROBERT A.
To: UNITED VIDEO PROPERTIES, INC.
Reel/Frame 044859/0169 →
MERGER Recorded Feb 7, 2018
From: TV GUIDE, INC.
To: ROVI GUIDES, INC.
Reel/Frame 045297/0471 →
MERGER Recorded Feb 7, 2018
From: UV CORP.
To: TV GUIDE, INC.
Reel/Frame 045297/0210 →
MERGER Recorded Feb 7, 2018
From: UNITED VIDEO PROPERTIES, INC.
To: UV CORP.
Reel/Frame 044859/0540 →
Continuity (10)
Continuation 15252336 · Aug 31, 2016
Continuation 14559781 · Dec 3, 2014
Continuation 14048818 · Oct 8, 2013
Continuation 13023842 · Feb 9, 2011
Continuation 12200593 · Aug 28, 2008
Continuation 09974646 · Oct 9, 2001
Provisional Application 60270351 · Feb 21, 2001
Provisional Application 60252171 · Nov 20, 2000
Provisional Application 60239407 · Oct 11, 2000
Related Publication 20180160163A1 · Jun 7, 2018