IP Library Granted Patent US 10,986,149
Granted Patent B2
US 10,986,149 · App. 16/573,090 · Granted Apr 20, 2021

Methods, systems, and media for delivering manifestless streaming media content

Inventors: Tristan Schmelcher (Sammamish, WA); William Cyr (Boston, MA); Thomas DeWeese (Boxborough, MA); Nils Krahnstoever (Brookline, MA); Matthew Carson (San Francisco, CA); Pawel Jurczyk (Newton, MA); Thomas Dinger (Waltham, MA); Jeffrey Calow (Arlington, MA)
Assignee: Google LLC
H04L65/4092H04L65/4084H04N21/2187H04N21/84H04N21/8586
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,986,149
App. No.
16/573,090
Granted
Apr 20, 2021
Kind
B2
Abstract

Methods, systems, and media for delivering manifestless streaming media content are provided. In some embodiments, the method comprises: receiving, from a user device, a request for a URL corresponding to a format of a live stream that is provided in a plurality of formats, wherein the live stream comprises a plurality of segments for each of the plurality of formats and wherein each segment of the plurality of segments comprises a respective sequence number; resolving the request to a specific segment of the live stream based on the URL, wherein the resolving comprises: identifying the format of the live stream associated with the request from the plurality of formats based on the URL; identifying a sequence number associated with the request based on the URL; and identifying a segment of the plurality of segments corresponding to the identified format and having a sequence number matching the identified sequence number; loading a segment file corresponding to the specific segment; and returning the segment file to the user device in a response to the request.

Claims (47)

1. A method for delivering live streaming content, the method comprising:

receiving, from a user device, a request for a URL corresponding to a format of a live stream that is provided in a plurality of formats, wherein the live stream comprises a plurality of segments for each of the plurality of formats and wherein each segment of the plurality of segments comprises a respective sequence number;

resolving the request to a specific segment of the live stream based on the requested URL, wherein the resolving comprises:

identifying the format of the live stream associated with the request from the plurality of formats based on the requested URL;

identifying a sequence number associated with the request based on the requested URL; and

identifying a segment of the plurality of segments corresponding to the identified format and having a sequence number matching the identified sequence number;

loading a segment file corresponding to the specific segment; and

returning the segment file to the user device in a response to the request.

2. The method of claim 1 , wherein the URL comprises a base URL, and wherein the format of the live stream associated with the request is identified from the plurality of formats based on the base URL.

3. The method of claim 1 , wherein the segment file comprises metadata indicating the identified sequence number.

4. The method of claim 1 , wherein the sequence number is identified by determining a current head sequence number for a most recent segment that is available for playback of the one or more segments, wherein the identified sequence number is the current head sequence number and wherein the identified segment is the most recent segment that is available for playback.

5. The method of claim 1 , wherein the sequence number is identified by identifying a sequence number associated with the request that is greater than a sequence number for a most recently complete segment that is available to load based on the URL.

6. The method of claim 5 , further comprising:

iteratively loading one or more portions of the segment file as the one or more portions are being generated; and

iteratively returning the generated one or more portions to the user device in a single response.

7. A system for delivering live streaming content, the system comprising:

a memory; and

a hardware processor coupled to the memory that is configured to:

receive, from a user device, a request for a URL corresponding to a format of a live stream that is provided in a plurality of formats, wherein the live stream comprises a plurality of segments for each of the plurality of formats and wherein each segment of the plurality of segments comprises a respective sequence number;

resolve the request to a specific segment of the live stream based on the requested URL, wherein the resolving comprises:

identifying the format of the live stream associated with the request from the plurality of formats based on the requested URL;

identifying a sequence number associated with the request based on the requested URL; and

identifying a segment of the plurality of segments corresponding to the identified format and having a sequence number matching the identified sequence number;

load a segment file corresponding to the specific segment; and

return the segment file to the user device in a response to the request.

8. The system of claim 7 , wherein the URL comprises a base URL, and wherein the format of the live stream associated with the request is identified from the plurality of formats based on the base URL.

9. The system of claim 7 , wherein the segment file comprises metadata indicating the identified sequence number.

10. The system of claim 7 , wherein the sequence number is identified by determining a current head sequence number for a most recent segment that is available for playback of the one or more segments, wherein the identified sequence number is the current head sequence number and wherein the identified segment is the most recent segment that is available for playback.

11. The system of claim 7 , wherein the sequence number is identified by identifying a sequence number associated with the request that is greater than a sequence number for a most recently complete segment that is available to load based on the URL.

12. The system of claim 11 , wherein the hardware processor is further configured to:

iteratively load one or more portions of the segment file as the one or more portions are being generated; and

iteratively return the generated one or more portions to the user device in a single response.

13. A non-transitory computer-readable medium containing computer-executable instructions that, when executed by a processor, cause the processor to perform a method for delivering live streaming content, the method comprising:

receiving, from a user device, a request for a URL corresponding to a format of a live stream that is provided in a plurality of formats, wherein the live stream comprises a plurality of segments for each of the plurality of formats and wherein each segment of the plurality of segments comprises a respective sequence number;

resolving the request to a specific segment of the live stream based on the requested URL, wherein the resolving comprises:

identifying the format of the live stream associated with the request from the plurality of formats based on the requested URL;

identifying a sequence number associated with the request based on the requested URL; and

identifying a segment of the plurality of segments corresponding to the identified format and having a sequence number matching the identified sequence number;

loading a segment file corresponding to the specific segment; and

returning the segment file to the user device in a response to the request.

14. The non-transitory computer readable medium of claim 13 , wherein the URL comprises a base URL, and wherein the format of the live stream associated with the request is identified from the plurality of formats based on the base URL.

15. The non-transitory computer readable medium of claim 13 , wherein the segment file comprises metadata indicating the identified sequence number.

16. The non-transitory computer readable medium of claim 13 , wherein the sequence number is identified by determining a current head sequence number for a most recent segment that is available for playback of the one or more segments, wherein the identified sequence number is the current head sequence number and wherein the identified segment is the most recent segment that is available for playback.

17. The non-transitory computer-readable medium of claim 13 , wherein the sequence number is identified by identifying a sequence number associated with the request that is greater than a sequence number for a most recently complete segment that is available to load based on the URL.

18. The non-transitory computer-readable medium of claim 17 , the method further comprising:

iteratively loading one or more portions of the segment file as the one or more portions are being generated; and

iteratively returning the generated one or more portions to the user device in a single response.

Continuity (2)
Provisional Application 62732567 · Sep 17, 2018
Related Publication 20200092342A1 · Mar 19, 2020