IP Library Granted Patent US 10,275,395
Granted Patent B2
US 10,275,395 · App. 14/705,938 · Granted Apr 30, 2019

Cloud-based media content management

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,275,395
App. No.
14/705,938
Granted
Apr 30, 2019
Kind
B2
Abstract

A cloud-based media content management system for managing access to media content items is disclosed. Managing access to media content items by a cloud-based media content management system may include, for example, managing uploads of media content items from a population of media devices, reducing duplication of media content data stored in cloud-based storage, and providing user-controlled access to media content items stored in cloud-based storage across any number of user devices. In this context, a cloud-based media content management system and cloud-based storage system generally refer to hosted computing and data storage services that may be accessed by media devices and other devices over a digital network such as the Internet.

Claims (142)

1. A method, comprising:

receiving, by a subset of media devices of a population of media devices, a request to record a media content item;

in response to receiving the request to record the media content item, receiving, by each media device of the subset of media devices, a media content stream corresponding to the media content item;

identifying, by each media device of the subset of media devices, boundaries of a plurality of segments within the media content stream;

receiving, at a cloud storage system, performance measurements of each media device of the subset of media devices;

selecting, by the cloud storage system, based on the performance measurements, a media device of the subset of media devices for upload of one or more particular segments of the plurality of identified segments to the cloud storage system;

receiving, by the media device, from the cloud storage system, instructions to send the one or more particular segments of the plurality of identified segments to the cloud storage system;

sending, by the media device, based on the instructions, the one or more particular segments to the cloud storage system while recording the media content item;

receiving, at the cloud storage system, the one or more particular segments from the media device; and

concurrently with receiving the one or more particular segments from the media device, sending, from the cloud storage system, at least a segment of the one or more particular segments received from the media device to media devices of the population of media devices other than the media device.

2. The method of claim 1 , further comprising:

generating one or more segment identification values for each segment of the plurality of segments;

sending, to the cloud storage system, the one or more segment identification values.

3. The method of claim 1 , further comprising:

generating one or more segment identification values for each of the plurality of segments;

sending, to the cloud storage system, one or more values derived from the one or more segment identification values for each of the plurality of segments.

4. The method of claim 2 , wherein generating the one or more segment identification values for each segment of the plurality of segments includes generating a hash value based on data from the segment.

5. The method of claim 2 , wherein generating the one or more segment identification values for each segment of the plurality of segments includes generating a fingerprint based on data from the segment.

6. The method of claim 2 , wherein the one or more particular segments are one or more first particular segments, and wherein the instructions further include instructions not to send one or more second particular segments of the plurality of identified segments to the cloud storage system.

7. The method of claim 1 , further comprising:

determining, by each media device of the subset of media devices, one or more performance measurements associated with the respective media device, the performance measurements including one or more of:

a signal strength of the media device, a type of network to which the media device is connected, a current network speed, at type of media device; and

sending, by each media device of the subset of media devices, the performance measurements to the cloud storage system.

8. The method of claim 1 , further comprising receiving, at a media device of the subset of media devices, from the cloud storage system, data including instructions for identifying the boundaries of each segment of the plurality of segments within the media content stream.

9. The method of claim 1 , further comprising the media device receiving, at a media device of the subset of media devices, from a second media device of the subset of media devices, data including instructions for identifying the boundaries of each segment of the plurality of segments within the media content stream.

10. The method of claim 1 , further comprising:

receiving, by the media device, a second media content stream;

identifying boundaries of a plurality of segments within the second media content stream; receiving, by the media device, instructions not to send any of the plurality of segments within the second media content stream to a cloud storage system.

11. One or more non-transitory computer-readable storage media, storing instructions, which when executed by one or more processors cause performance of:

receiving, by a subset of media devices of a population of media devices, a request to record a media content item;

in response to receiving the request to record the media content item, receiving, by each media device of the subset of media devices, a media content stream corresponding to the media content item;

identifying, by each media device, boundaries of a plurality of segments within the media content stream;

receiving, at a cloud storage system, performance measurements of each media device of the subset of media devices;

selecting, by the cloud storage system, based on the performance measurements, a media device of the subset of media devices for upload of one or more particular segments of the plurality of identified segments to the cloud storage system;

receiving, by the media device, from the cloud storage system, instructions to send the one or more particular segments of the plurality of identified segments to the cloud storage system;

sending, by the media device, based on the instructions, the one or more particular segments to the cloud storage system while recording the media content item;

receiving, at the cloud storage system, the one or more particular segments from the media device; and

concurrently with receiving the one or more particular segments from the media device, sending, from the cloud storage system, at least a segment of the one or more particular segments received from the media device to media devices of the population of media devices other than the media device.

12. The one or more non-transitory storage media of claim 11 , further comprising:

generating one or more segment identification values for each segment of the plurality of segments;

sending, to the cloud storage system, the one or more segment identification values for each of the two or more segments.

13. The one or more non-transitory storage media of claim 11 , further comprising:

generating one or more segment identification values for each of the plurality of segments;

sending, to the cloud storage system, one or more values derived from the one or more segment identification values for each of the plurality of segments.

14. The one or more non-transitory storage media of claim 12 , wherein generating the one or more segment identification values for each segment of the plurality of segments includes generating a hash value based on data from the segment.

15. The one or more non-transitory storage media of claim 12 , wherein the one or more particular segments are one or more first particular segments, and wherein the instructions further include instructions not to send one or more second particular segments of the plurality of identified segments to the cloud storage system.

16. The one or more non-transitory storage media of claim 11 , further comprising receiving, from the cloud storage system, data including instructions for identifying the boundaries of each segment of the plurality of segments within the media content stream.

17. A system, comprising:

a media device of a population of media devices, the media device comprising:

one or more first processors;

one or more first computer-readable storage media storing instructions which, when executed by the one or more first processors, causes the media device to:

receive a request to record a media content item;

in response to receiving the request to record the media content item, receive a media content stream corresponding to the media content item;

identify boundaries of a plurality of segments within the media content stream;

send performance measurements of the media device to a cloud storage system;

receive instructions to send one or more particular segments of the plurality of identified segments to the cloud storage system;

send, based on the instructions, the one or more particular segments to the cloud storage system while recording the media content item; and

the cloud storage system comprising:

one or more second processors;

one or more second computer-readable storage media storing instructions which, when executed by the one or more second processors causes the cloud storage system to:

receive, from each media device of the population of media devices, performance measurements of each respective media device;

select the media device, based on the performance measurements of the media device, for upload of the one or more particular segments;

receive the one or more particular segments from the media device; and

concurrently with receiving the one or more particular segments from the media device, send at least a segment of the one or more particular segments received from the media device to media devices of the population of media devices other than the media device.

18. The system of claim 17 , wherein execution of the instructions by the one or more first processors further causes the media device to:

generate one or more segment identification values for each segment of the plurality of segments;

wherein the media device sends the one or more segment identification values to the cloud storage system.

19. The system of claim 17 , wherein execution of the instructions by the one or more first processors further causes the media device to:

generate one or more segment identification values for each segment of the plurality of segments;

send, to the cloud storage system, one or more values derived from the one or more segment identification values for each of the plurality of segments.

20. The system of claim 18 , wherein generating the one or more segment identification values for each segment of the plurality of segments includes generating a hash value based on data from the segment.

21. The system of claim 18 , wherein the one or more particular segments are one or more first particular segments, and wherein the instructions further include instructions not to send one or more second particular segments of the plurality of identified segments to the cloud storage system.

22. The method of claim 1 , further comprising in response to receiving the request to record the media content item, tuning to the media content item.

23. The one or more non-transitory computer-readable storage media of claim 11 , further comprising in response to receiving the request to record the media content item, tuning to the media content item.

24. The system of claim 17 , wherein execution of the instructions by the one or more first processors further causes the media device to, in response to receiving the request to record to the media content item, tuning to the media content item.

25. The method of claim 1 , wherein:

in response to receiving the one or more particular segments from the media device, the cloud storage system stores metadata to track media content items recorded by the media device, and wherein sending at least a segment of the one or more particular segments received from the media device further comprises sending at least a segment of the one or more particular segments having metadata indicating that the media content item was recorded by the media device.

26. The one or more non-transitory computer-readable storage media of claim 11 , wherein:

in response to receiving the one or more particular segments from the media device, the cloud storage system stores metadata to track media content items recorded by the media device, and wherein sending at least a segment of the one or more particular segments received from the media device further comprises sending at least a segment of the one or more particular segments having metadata indicating that the media content item was recorded by the media device.

27. The system of claim 17 , wherein:

in response to receiving the one or more particular segments from the media device, the cloud storage system stores metadata to track media content items recorded by the media device, and wherein sending at least a segment of the one or more particular segments received from the media device further comprises sending at least a segment of the one or more particular segments having metadata indicating that the media content item was recorded by the media device.

28. The one or more non-transitory computer-readable storage media of claim 11 , further comprising:

determining, by each media device of the subset of media devices, one or more performance measurements associated with the respective media device, the performance measurements including one or more of:

a signal strength of the media device, a type of network to which the media device is connected, a current network speed, at type of media device; and

sending, by each media device of the subset of media devices, the performance measurements to the cloud storage system.

29. The system of claim 17 , wherein execution of the instructions by the one or more first processors further causes the media device to:

determine one or more-performance measurements associated with the media device, the performance measurements including one or more of:

a signal strength of the media device, a type of network to which the media device is connected, a current network speed, at type of media device; and

send the performance measurements to the cloud storage system.

30. A method, comprising:

receiving, from a plurality of media devices, performance measurements of each respective media device, wherein each media device receives and records a media content stream corresponding to a first media content item in response to a request to record the first media content item, and wherein each media device identifies boundaries of a plurality of segments within the media content stream;

selecting, based on the performance measurements, a media device of the plurality of media devices for upload of one or more particular segments of the plurality of identified segments;

transmitting instructions to the selected media device to send the one or more particular segments of the plurality of identified segments;

receiving, from the selected media device, the one or more particular segments; and

concurrently with receiving the one or more particular segments from the selected media device, sending a segment of the one or more particular segments received from the selected media device to media devices of the plurality of media devices other than the selected media device.

31. The method of claim 30 , further comprising:

receiving one or more segment identification values from each media device of the plurality of media devices.

32. The method of claim 30 , further comprising:

receiving one or more values derived from one or more segment identification values from each media device of the plurality of media devices.

33. The method of claim 31 , wherein the segment identification values include a hash value based on data from the segment.

34. The method of claim 31 , wherein the segment identification values include a fingerprint based on data from the segment.

35. The method of claim 31 , further comprising:

transmitting second instructions to the selected media device not to send one or more second particular segments of the plurality of identified segments.

36. The method of claim 30 , further comprising:

in response to receiving the one or more particular segments from the selected media device, storing metadata to track media content items recorded by the selected media device; and

wherein sending a segment of the one or more particular segments received from the selected media device further comprises sending a segment of the one or more particular segments having metadata indicating that the media content item was recorded by the selected media device.

37. One or more non-transitory computer-readable storage media, storing instructions, which when executed by one or more processors cause performance of:

receiving, from a plurality of media devices, performance measurements of each respective media device, wherein each media device receives and records a media content stream corresponding to a first media content item in response to a request to record the first media content item, and wherein each media device identifies boundaries of a plurality of segments within the media content stream;

selecting, based on the performance measurements, a media device of the plurality of media devices for upload of one or more particular segments of the plurality of identified segments;

transmitting instructions to the selected media device to send the one or more particular segments of the plurality of identified segments;

receiving, from the selected media device, the one or more particular segments; and

concurrently with receiving the one or more particular segments from the selected media device, sending a segment of the one or more particular segments received from the selected media device to media devices of the plurality of media devices other than the selected media device.

38. The one or more non-transitory computer-readable storage media of claim 37 , wherein execution of the instructions further causes performance of:

receiving one or more segment identification values from each media device of the plurality of media devices.

39. The one or more non-transitory computer-readable storage media of claim 37 , wherein execution of the instructions further causes performance of:

receiving one or more values derived from one or more segment identification values from each media device of the plurality of media devices.

40. The one or more non-transitory computer-readable storage media of claim 38 , wherein the segment identification values include a hash value based on data from the segment.

41. The one or more non-transitory computer-readable storage media of claim 38 , wherein the segment identification values include a fingerprint based on data from the segment.

42. The one or more non-transitory computer-readable storage media of claim 38 , wherein execution of the instructions further causes performance of:

transmitting second instructions to the selected media device not to send one or more second particular segments of the plurality of identified segments.

43. The one or more non-transitory computer-readable storage media of claim 37 , wherein execution of the instructions further causes performance of:

in response to receiving the one or more particular segments from the selected media device, storing metadata to track media content items recorded by the selected media device; and

wherein performance of sending a segment of the one or more particular segments received from the selected media device further causes performance of sending a segment of the one or more particular segments having metadata indicating that the media content item was recorded by the selected media device.

44. A cloud storage system, comprising:

one or more processors; and

one or more computer-readable storage media storing instructions which, when executed by the one or more processors, causes the cloud storage system to:

receive, from a plurality of media devices, performance measurements of each respective media device, wherein each media device receives and records a media content stream corresponding to a first media content item in response to a request to record the first media content item, and wherein each media device identifies boundaries of a plurality of segments within the media content stream;

select, based on the performance measurements, a media device of the plurality of media devices for upload of one or more particular segments of the plurality of identified segments;

transmit instructions to the selected media device to send the one or more particular segments of the plurality of identified segments;

receive, from the selected media device, the one or more particular segments; and

concurrently with receiving the one or more particular segments from the selected media device, send a segment of the one or more particular segments received from the selected media device to media devices of the plurality of media devices other than the selected media device.

45. The system of claim 44 , wherein execution of the instructions further causes the cloud storage system to:

receive one or more segment identification values from each media device of the plurality of media devices.

46. The system of claim 44 , wherein execution of the instructions further causes the cloud storage system to:

receive one or more values derived from one or more segments identification values from each media device of the plurality of media devices.

47. The system of claim 45 , wherein the segment identification values include a hash value based on data from the segment.

48. The system of claim 45 , wherein the segment identification values include a fingerprint based on data from the segment.

49. The system of claim 45 , wherein execution of the instructions further causes the cloud storage system to:

transmit second instructions to the selected media device not to send one or more second particular segments of the plurality of identified segments.

50. The system of claim 44 , wherein execution of the instructions further causes the cloud storage system to:

in response to receiving the one or more particular segments from the selected media device, store metadata to track media content items recorded by the selected media device; and

wherein execution to the instructions to send a segment of the one or more particular segments received from the selected media device further causes the cloud storage system to send a segment of the one or more particular segments having metadata indicating that the media content item was recorded by the selected media device.

Assignments (12)
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 TIVO SOLUTIONS, INC.)
Reel/Frame 061788/0401 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 21, 2022
From: ADEIA MEDIA SOLUTIONS INC.
To: ROVI PRODUCT CORPORATION
Reel/Frame 061503/0518 →
CHANGE OF NAME Recorded Oct 21, 2022
From: TIVO SOLUTIONS INC.
To: ADEIA MEDIA SOLUTIONS INC.
Reel/Frame 061744/0964 →
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 →
RELEASE OF SECURITY INTEREST IN PATENT RIGHTS Recorded Nov 25, 2019
From: MORGAN STANLEY SENIOR FUNDING, INC., AS COLLATERAL AGENT
To: TIVO SOLUTIONS INC.
Reel/Frame 051109/0969 →
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 →
CHANGE OF NAME Recorded Jan 25, 2017
From: TIVO INC.
To: TIVO SOLUTIONS INC.
Reel/Frame 041493/0822 →
SECURITY INTEREST Recorded Dec 7, 2016
From: TIVO SOLUTIONS INC.
To: MORGAN STANLEY SENIOR FUNDING, INC., AS COLLATERAL AGENT
Reel/Frame 041076/0051 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 8, 2015
From: DANOVITZ, JOSHUA; KULICK, TODD; STEVENS, PAUL; SINNOTT, JOE; REDMAN, SCOTT; BESSERER, ROLAND
To: TIVO INC.
Reel/Frame 035596/0784 →