IP Library Granted Patent US 10,757,467
Granted Patent B1
US 10,757,467 · App. 15/589,867 · Granted Aug 25, 2020

System and method for synchronized playback of downloaded streams

Inventors: Karen Marie Katz (Portola Valley, CA); Aline Mary Pereira Pinto da Fonseca (Los Angeles, CA); Eduardo Brasao da Fonseca (Los Angeles, CA); Robert Craig Davidorf (San Francisco, CA); Steve Petersen (Los Gatos, CA)
Assignee: Playlist Media, Inc.
H04N21/4305G11B27/002G11B27/10H04N21/4126H04N21/41407H04N21/4307H04N21/6181
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,757,467
App. No.
15/589,867
Granted
Aug 25, 2020
Kind
B1
Abstract

A system for synchronized streaming of media includes a memory and a processor. The processor is operable to establish connections with user applications executing on a plurality of user devices. The processor is further operable to identify a list of user tracks associated with one of the plurality of users stored in the memory. The processor is further operable to stream tracks from the list of user tracks to each of the plurality of user applications synchronously such that each of the plurality of user applications plays the same tracks at approximately the same time. The processor is further operable to receive at least one comment from one of the computing devices. The processors is further operable to send the at least one comment to a remainder of the plurality of computing devices for display through the user applications.

Claims (80)

1. A method comprising:

at a server having a memory and a processor:

establishing connections with user applications executing on a plurality of user devices;

receiving a request from one of the user applications to start a streaming session;

starting a streaming session in response to the request from the one of the user applications;

identifying a list of user tracks stored on the memory selected by a user associated with the one of the user applications;

sending a notification to at least one other user application that the streaming session has started;

receiving a request from the at least one other user application to join the streaming session;

adding the at least one other user application to the streaming session;

adding tracks selected by another user associated with the at least one other user application to the list of user tracks;

streaming tracks from the list of user tracks to each of the plurality of user applications synchronously such that each of the plurality of user applications plays the same track at approximately the same time;

receiving at least one advance track request from one of the user devices;

scheduling an operation to stream a next track in the list of user tracks in response to the at least one advance track request;

generating a timing key associated with the at least one advance track request, wherein the timing key is indicative of the time at which the at least one advance track request was received;

verifying whether the timing key is the most recent timing key generated:

if the timing key is the most recent timing key generated, executing the scheduled operation to stream the next track;

if the timing key is not the most recent timing key generated, canceling the scheduled operation to stream the next track;

receiving at least one comment from one of the user devices; and

sending the at least one comment to a remainder of the plurality of user devices for display through the user applications.

2. The method of claim 1 , wherein the tracks are video.

3. The method of claim 1 , wherein the tracks are music.

4. The method of claim 3 , further comprising:

causing to display a synchronized graphical visualization of the music on each of the plurality of user applications;

causing to display a plurality of effects widgets on each of the plurality of user applications, wherein each of the plurality of effects widgets represents a unique visual effect, and wherein a user selects a desired visual effect by placing the corresponding effects widget into the synchronized graphical visualization; and

in response to a selection of a visual effect by a user, updating the synchronized graphical visualization of the music to reflect the chosen visual effect on the plurality of user applications.

5. The method of claim 1 , wherein streaming tracks is accomplished via loose synchronization.

6. The method of claim 1 , wherein streaming tracks is accomplished via tight synchronization.

7. A system comprising:

a memory; and

a processor operable to:

establish connections with user applications executing on a plurality of user devices;

receive a request from one of the user applications to start a streaming session;

start a streaming session in response to the request from the one of the user applications;

identifying a list of user tracks stored on the memory selected by a user associated with the one of the user applications;

send a notification to at least one other user application that the streaming session has started;

receive a request from the at least one other user application to join the streaming session;

add the at least one other user application to the streaming session;

add tracks selected by another user associated with the at least one other user application to the list of user tracks;

stream content from the list of content to each of the plurality of user applications synchronously such that each of the plurality of user applications plays the same content at approximately the same time;

schedule an operation to stream a next track in the list of user tracks in response to the at least one advance track request;

generate a timing key associated with the at least one advance track request, wherein the timing key is indicative of the time at which the at least one advance track request was received;

verify whether the timing key is the most recent timing key generated:

if the timing key is the most recent timing key generated, execute the scheduled operation to stream the next track;

if the timing key is not the most recent timing key generated, cancel the scheduled operation to stream the next track;

receive at least one comment from one of the user devices; and

send the at least one comment to a remainder of the plurality of user devices for display through the user applications.

8. The system of claim 7 , wherein the tracks are video.

9. The system of claim 7 , wherein the tracks are music.

10. The system of claim 9 , wherein the processor is further operable to:

cause to display a synchronized graphical visualization of the music on each of the plurality of user applications;

cause to display a plurality of effects widgets on each of the plurality of user applications, wherein each of the plurality of effects widgets represents a unique visual effect, and wherein a user selects a desired visual effect by placing the corresponding effects widget into the synchronized graphical visualization; and

in response to a selection of a visual effect by a user, update the synchronized graphical visualization of the music to reflect the chosen visual effect on the plurality of user applications.

11. The system of claim 7 , wherein streaming tracks is accomplished via loose synchronization.

12. The system of claim 7 , wherein streaming tracks is accomplished via tight synchronization.

13. A computer program product comprising:

a computer readable non-transitory storage medium having computer readable program code embodied thereon, the computer readable program code configured for:

establishing connections with user applications executing on a plurality of user devices;

receiving a request from one of the user applications to start a streaming session;

starting a streaming session in response to the request from the one of the user applications;

identifying a list of user tracks stored on the memory selected by a user associated with the one of the user applications;

sending a notification to at least one other user application that the streaming session has started;

receiving a request from the at least one other user application to join the streaming session;

adding the at least one other user application to the streaming session;

adding tracks selected by another user associated with the at least one other user application to the list of user tracks;

streaming content from the list of content to each of the plurality of user applications synchronously such that each of the plurality of user applications plays the same content at approximately the same time;

scheduling an operation to stream a next track in the list of user tracks in response to the at least one advance track request;

generating a timing key associated with the at least one advance track request, wherein the timing key is indicative of the time at which the at least one advance track request was received;

verifying whether the timing key is the most recent timing key generated:

if the timing key is the most recent timing key generated, executing the scheduled operation to stream the next track;

if the timing key is not the most recent timing key generated, canceling the scheduled operation to stream the next track;

receiving at least one comment from one of the user devices; and

sending the at least one comment to a remainder of the plurality of user devices for display through the user applications.

14. The computer program product of claim 13 , wherein the tracks are video.

15. The computer program product of claim 13 , wherein the tracks are music.

16. The computer program product of claim 15 , wherein the computer readable program code is further configured for:

causing to display a synchronized graphical visualization of the music on each of the plurality of user applications;

causing to display a plurality of effects widgets on each of the plurality of user applications, wherein each of the plurality of effects widgets represents a unique visual effect, and wherein a user selects a desired visual effect by placing the corresponding effects widget into the synchronized graphical visualization; and

in response to a selection of a visual effect by a user, updating the synchronized graphical visualization of the music to reflect the chosen visual effect on the plurality of user applications.

17. The computer program product of claim 13 , wherein streaming tracks is accomplished via loose synchronization.

18. The computer program product of claim 13 , wherein streaming tracks is accomplished via tight synchronization.

Assignments (3)
CHANGE OF NAME Recorded Aug 26, 2021
From: PLAYLIST MEDIA, INC.
To: RIFF MEDIA, INC.
Reel/Frame 057324/0592 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 10, 2017
From: KATZ, KAREN MARIE; DAVIDORF, ROBERT CRAIG; PETERSEN, STEVE
To: PLAYLIST MEDIA, INC.
Reel/Frame 043260/0111 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 4, 2017
From: FONSECA, ALINE MARY PEREIRA PINTO DA; FONSECA, EDUARDO BRASAO DA
To: PLAYLIST MEDIA, INC.
Reel/Frame 043197/0882 →
Continuity (1)
Provisional Application 62333457 · May 9, 2016
Cited By (3)
US 12,284,410 US 12,301,958 US 12,335,559