IP Library › Granted Patent US 10,834,158
Granted Patent B1
US 10,834,158 · App. 15/934,291 · Granted Nov 10, 2020

Encoding identifiers into customized manifest data

Inventors: David Wayne Bourgoyne (Fall City, WA); Amarsingh Buckthasingh Winston (Seattle, WA); Lei Li (Kirkland, WA); Yongjun Wu (Bellevue, WA)
Assignee: Amazon Technologies, Inc.
H04L65/601G06T1/0021H04L65/4084G06T2201/0061
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,834,158
App. No.
15/934,291
Granted
Nov 10, 2020
Kind
B1
Abstract

Techniques are described for encoding information in manifest data in a way that enables identification of a version of media content. Such a capability may be used to identify dynamic content inserted into the media content for the purpose of tracking the effect of the dynamic content on user generated feedback. This capability might also be used to identify a user or device associated with a particular copy of the media content for anti-piracy purposes.

Claims (63)

1. A method, comprising:

receiving credentials from a first client device;

obtaining, based on the credentials, a first identifier corresponding to the first client device;

receiving a first request for playback of media content, the first request being generated by the first client device;

identifying master manifest data for the media content, the media content corresponding to a plurality of durations, each duration corresponding to a different temporal range of the media content, the master manifest data indicating a first plurality of playback options for each duration, the first plurality of playback options for each of at least some of the durations corresponding to both a first edge server and a second edge server, wherein each of the playback options corresponds to a content fragment, one or more video frames of each of selected ones of the content fragments having a version indicator encoded therein, the version indicator distinguishing between a first version and a second version for a particular content fragment;

encoding the first identifier into first customized manifest data by selecting, for each duration of a first subset of the durations, fewer than all of the first plurality of playback options indicated by the master manifest data for that duration, the selected playback options for each duration of the first subset of the durations corresponding to only one of the first and second edge servers;

providing the first customized manifest data to the first client device;

receiving requests from the first client device corresponding to the durations in the first subset of the durations; and

providing, for each duration of the first subset of the durations, either a first version of the corresponding fragment using the first edge server or a second version of the corresponding content fragment using the second edge server based on the version indicator encoded in the first customized manifest data.

2. The method as recited in claim 1 , further comprising:

receiving a copy of a version of the media content generated by the first client device using the first customized manifest data, the copy including at least some of the selected content fragments; and

determining the first identifier based on the version indicators encoded in the video frames of the selected content fragments.

3. The method of claim 2 , wherein the version indicators over the first subset of the durations are representative of the first identifier.

4. The method as recited in claim 3 , further comprising selecting the first subset of the durations based on the first identifier.

5. A method, comprising:

receiving a first request for playback of media content, the first request being generated by a first client device;

receiving a first identifier corresponding to the first client device, the first identifier being unrelated to hardware playback capabilities of the first client device;

identifying master manifest data for the media content, the media content corresponding to a plurality of durations, each duration corresponding to a different temporal range of the media content, the master manifest data indicating a first plurality of playback options for each duration, the first plurality of playback options for each of at least some of the durations corresponding to a plurality of edge servers;

encoding the first identifier into first customized manifest data by selecting, for each duration of a first subset of the durations, fewer than all of the first plurality of playback options indicated by the master manifest data for that duration, the selected playback options for each duration of the first subset of the durations corresponding to only one of the edge servers, the selecting being done in a first pattern over the first subset of the durations, the first pattern representing the first identifier; and

providing the first customized manifest data to the first client device.

6. The method as recited in claim 5 , further comprising selecting the first subset of the durations based on the first identifier.

7. The method as recited in claim 5 , further comprising:

receiving a second request for playback of the media content, the second request being generated by a second client device;

receiving a second identifier for the second client device, the first identifier and the second identifier corresponding to different values for a first attribute of the first client device and the second client device;

encoding the second identifier into second customized manifest data by selecting, for each duration of a second subset of the durations, fewer than all of the plurality of playback options indicated by the master manifest data for that duration, the selecting being done in a second pattern over the second subset of durations, the second pattern representing the second identifier.

8. The method as recited in claim 7 , wherein the first subset of the durations and the second subset of the durations are the same.

9. The method as recited in claim 5 , wherein the first identifier corresponds to one of a geographic location, a user preference, a user behavior, a user identity, or a user account.

10. The method as recited in claim 5 , further comprising:

identifying a constraint based on the first identifier, wherein the selecting fewer than all of the playback options for each duration of the first subset of the durations is based in part on the constraint.

11. The method as recited in claim 5 , wherein the selecting fewer than all of the playback options for each duration of the first subset of the durations results in playback, by the first client device, of a version of the media content corresponding to the first identifier.

12. The method as recited in claim 5 , wherein each of the playback options represented in the first customized manifest data for each duration of the first subset of the durations corresponds to a content fragment, one or more video frames of each of selected ones of the content fragments having a version indicator encoded therein, the version indicators over the first subset of the durations being representative of the first identifier.

13. The method of claim 12 , further comprising:

receiving a copy of a version of the media content generated by the first client device using the first customized manifest data, the copy including at least some of the selected content fragments; and

determining the first identifier based on the version indicators encoded in the video frames of the selected content fragments.

14. The method as recited in claim 5 , further comprising:

receiving feedback on a version of the media content generated by the first client device using the first customized manifest data;

receiving, in conjunction with the feedback, a value corresponding to the first identifier for the first client device; and

determining, based on the first customized manifest data, the version of the media content associated with the feedback.

15. A system comprising:

one or more processors and memory configured to:

receive a first request for playback of media content, the first request being generated by a first client device;

receive a first identifier corresponding to the first client device, the first identifier being unrelated to hardware playback capabilities of the first client device;

identify master manifest data for the media content, the media content corresponding to a plurality of durations, each duration corresponding to a different temporal range of the media content, the master manifest data indicating a first plurality of playback options for each duration, the first plurality of playback options for each of at least some of the durations corresponding to a plurality of edge servers;

encode the first identifier into first customized manifest data by selecting, for each duration of a first subset of the durations, fewer than all of the first plurality of playback options indicated by the master manifest data for that duration, the selected playback options for each duration of the first subset of the durations corresponding to only one of the edge servers, the selecting being done in a first pattern over the first subset of the durations, the first pattern representing the first identifier; and

provide the first customized manifest data to the first client device.

16. The system as recited in claim 15 , the one or more processors and memory further configured to select the first subset of the durations based on the first identifier.

17. The system as recited in claim 15 , the one or more processors and memory further configured to:

receive a second request for playback of the media content, the second request being generated by a second client device;

receive a second identifier for the second client device, the first identifier and the second identifier corresponding to different values for a first attribute of the first client device and the second client device;

encode the second identifier into second customized manifest data by selecting, for each duration of a second subset of the durations, fewer than all of the plurality of playback options indicated by the master manifest data for that duration, the selecting being done in a second pattern over the second subset of durations, the second pattern representing the second identifier.

18. The system as recited in claim 17 , wherein the first subset of the durations and the second subset of the durations are the same.

19. The system as recited in claim 15 , wherein the first identifier corresponds to one of a geographic location, a user preference, a user behavior, a user identity, or a user account.

20. The system as recited in claim 15 , the one or more processors and memory further configured to:

identify a constraint based on the first identifier, wherein the selecting fewer than all of the playback options for each duration of the first subset of the durations is based in part on the constraint.

21. The system as recited in claim 15 , wherein the selecting fewer than all of the playback options for each duration of the first subset of the durations results in playback, by the first client device, of a version of the media content corresponding to the first identifier.

22. The system as recited in claim 15 , wherein each of the playback options represented in the first customized manifest data for each duration of the first subset of the durations corresponds to a content fragment, one or more video frames of each of selected ones of the content fragments having a version indicator encoded therein, the version indicators over the first subset of the durations being representative of the first identifier.

23. The system of claim 22 , the one or more processors and memory further configured to:

receive a copy of a version of the media content generated by the first client device using the first customized manifest data, the copy including at least some of the selected content fragments; and

determine the first identifier based on the version indicators encoded in the video frames of the content fragments.

24. The system as recited in claim 15 , the one or more processors and memory further configured to:

receive feedback on a version of the media content generated by the first client device using the first customized manifest data;

receive, in conjunction with the feedback, a value corresponding to the first identifier for the first client device; and

determine, based on the first customized manifest data, the version of the media content associated with the feedback.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 5, 2018
From: BOURGOYNE, DAVID WAYNE; WINSTON, AMARSINGH BUCKTHASINGH; LI, LEI; WU, YONGJUN
To: AMAZON TECHNOLOGIES, INC.
Reel/Frame 045445/0965 →
Cited By (6)
US 12,190,915 US 12,267,376 US 12,301,956 US 12,328,488 US 12,579,808 US 12,633,120