A method may receive, over a network and at a host's media player that is logged in to a host's media account, a play request from a guest's device. The play request may include a request to play a guest's media item from the guest's media account and may be compliant with a first protocol. In response to receiving the play request, the method may initiate a guest mode on the host's media player, log out the host's media account, and securely store the host's credentials. The method may log in the guest's media account with fewer permissions than the host's permissions. The method may play the guest's media item and establish a connection between the host's media player and the guest's device in accordance with a second protocol. Upon completion of playback, the method may log out the guest's media account and log in the host's media account.
|
11. A host media player device, comprising:
a memory; and
at least one processor configured to:
receive, while the host media player device is logged into a host media account with host permissions, from a guest device that is logged into a guest media account, a play request comprising a request to play a guest media item from the guest media account, the play request being compliant with a first protocol;
responsive to receiving the play request, provide, to a remote server, an identifier of the host media player;
receive, from the remote server, a token for authenticating the guest media device;
responsive to outputting the token for receipt by the guest media device, receive, from the from the remote server, a guest credential of the guest media account;
log in, using the guest credential, to a guest media account of the host media player, the guest media account comprising fewer permissions than the host permissions; and
output, for presentation to a user, the guest media item from the guest media account.
16. A non-transitory computer-readable storage medium comprising instructions that, when executed, cause at least one processor of a host media player device to: receive, while the host media player device is logged into a host media account with host permissions, from a guest device that is logged into a guest media account, a play request comprising a request to play a guest media item from the guest media account, the play request being compliant with a first protocol; responsive to receiving the play request, provide, to a remote server, an identifier of the host media player; receive, from the remote server, a token for authenticating the guest media device; responsive to outputting the token for receipt by the guest media device, receive, from the from the remote server, a guest credential of the guest media account; log in, using the guest credential, to a guest media account of the host media player, the guest media account comprising fewer permissions than the host permissions; and output, for presentation to a user, the guest media item from the guest media account.
1. A method comprising:
receiving, by a host media player that is logged into a host media account with host permissions, from a guest device that is logged into a guest media account, a play request comprising a request to play a guest media item from the guest media account, the play request being compliant with a first protocol;
responsive to receiving the play request, providing, by the host media player, to a remote server, an identifier of the host media player;
receiving, by the host media player, from the remote server, a token for authenticating the guest media device;
responsive to outputting the token for receipt by the guest media device, receiving, by the host media player, from the from the remote server, a guest credential of the guest media account;
logging in, by the host media player, using the guest credential, to a guest media account of the host media player, the guest media account comprising fewer permissions than the host permissions; and
outputting, by the host media player, for presentation to a user, the guest media item from the guest media account.
2. The method of
providing, by the host media player, to the guest media device, an identifier of the host media player;
receiving, by the host media player, from the guest media device, a connection identifier of the guest media player; and
providing to the guest media device, a connection request based on the connection identifier, the connection request compliant with a second protocol different from the first protocol.
3. The method of
providing to the guest media device, an indicator that the guest media item is playing on the host media player.
4. The method of
upon completion of outputting the guest media item for presentation to the user, at least one of:
logging out, by the host media player, the guest media account from the host media player; or
deleting the guest credential.
5. The method of
prior to logging in to the guest media account of the host media player:
storing, by the host media player, a host credential; and
logging out, by the host media player, the host media account from the host media player.
6. The method of
upon completion of outputting the guest media item for presentation to the user, logging in, by the host media player, using the host credential, the host media account to the host media player.
7. The method of
receiving, by the host media player, from the guest device, over a connection in accordance with a second protocol different from the first protocol, a control request to adjust the outputting of the guest media item; and
adjusting, by the host media player, based on the control request, the outputting of the guest media item.
8. The method of
9. The method of
10. The method of
12. The host media player device of
prior to playing the guest media item:
provide, to the guest media device, an identifier of the host media player;
receive, from the guest media device, a connection identifier of the guest media player; and
provide, to the guest media device, a connection request based on the connection identifier, the connection request compliant with a second protocol different from the first protocol.
13. The host media player device of
provide, to the guest media device, an indicator that the guest media item is playing on the host media player.
14. The host media player device of
upon completion of outputting the guest media item for presentation to the user, at least one of:
log out the guest media account from the host media player; or
delete the guest credential.
15. The host media player device of
prior to logging in to the guest media account of the host media player:
store a host credential; and
log out the host media account from the host media player.
17. The non-transitory computer-readable storage medium of
18. The non-transitory computer-readable storage medium of
19. The non-transitory computer-readable storage medium of
20. The non-transitory computer-readable storage medium of
|
This application is a continuation of U.S. application Ser. No. 14/799,873, filed Jul. 15, 2015, now U.S. patent Ser. No. 10/057,245, the entire contents of which are hereby incorporated by reference.
Online media services allow users to access their media on a wide range of devices, including devices owned by other people. For example, when a friend is hosting a guest, the guest may use the host's home media player to access and play music over the internet from the guest's online media account. In many circumstances a guest will remain logged in to the host's media player after accessing a particular song because the guest and friend do not want to go through the log in process again in order to have access to additional music, or because the host's media account does not contain the same type of music. This can result in the guest forgetting she was logged in or getting distracted and not paying attention to other people who may be accessing the media player. Once the guest logs in to the host's media player, any person with access to the media player may access aspects of the guest's media account unless the guest logs out. For example, the guest's purchasing account may be accessed to purchase additional media without the guest's consent, or the guest's credentials may be used to view the guest's confidential data or gain access to other online accounts belonging to the guest. Thus, conventional techniques for allowing users access to their online media content often place users at risk for significant financial, privacy, and data security concerns.
According to an embodiment of the disclosed subject matter, a method may receive, at a host media player that is logged in to a host media account with host permissions, a play request from a guest device that is logged in to a guest media account. The play request may include a request to play a guest media item from the guest media account. The play request may be compliant with a first protocol. In response to receiving the play request compliant with the first protocol, the method may initiate a guest mode on the host media player, log out the host media account from the host media player, and store a host credential of the host media account. The method may log in, based on a guest credential, the guest media account to the host media player with guest permissions that include fewer permissions than the host permissions. The method may play the guest media item from the guest media account.
According to another embodiment of the disclosed subject matter, a method may include detecting in accordance with a first protocol and by a guest media device that is logged in to a guest media account, a host media player that is logged in to a host media account. The method may provide to the host media player, a request compliant with the first protocol to play a guest media item from the guest media account. The method may receive a token from the host media player and provide the token to a remote server. The method may receive over a connection in accordance with a second protocol that is different than the first protocol, an indicator that the guest media item is playing on the host media player.
According to another embodiment of the disclosed subject matter, a method may receive, at a server and from a remote host media player that is logged in to a host media account, a first identifier of a host media player and an authorization code. The method may provide a token to the remote host media player in response to receiving the first identifier and the authorization code. The method may receive the token from a remote guest device that is logged in to a guest media account and provide a guest credential of the guest media account to the remote host media player in response to receiving the token. The guest credential may allow read-only access to a guest media item from the guest media account.
According to another embodiment of the disclosed subject matter, a means is disclosed that may receive, at a host media player that is logged in to a host media account with host permissions, a play request from a guest device that is logged in to a guest media account. The play request may include a request to play a guest media item from the guest media account. The play request may be compliant with a first protocol. In response to receiving the play request compliant with the first protocol, the means may initiate a guest mode on the host media player, log out the host media account from the host media player, and store a host credential of the host media account. The means may log in, based on a guest credential, the guest media account to the host media player with guest permissions that include fewer permissions than the host permissions. The means may play the guest media item from the guest media account.
Additional features, advantages, and embodiments of the disclosed subject matter may be apparent from consideration of the following detailed description, drawings, and claims. Moreover, it is to be understood that both the foregoing summary and the following detailed description are illustrative and are intended to provide further explanation without limiting the scope of the claims.
The accompanying drawings, which are included to provide further understanding of the disclosed subject matter, are incorporated in and constitute a part of this specification. The drawings also illustrate embodiments of the disclosed subject matter, and together with the detailed description serve to explain the principles of embodiments of the disclosed subject matter. No attempt is made to show structural details in more detail than may be necessary for a fundamental understanding of the disclosed subject matter and various ways in which it may be practiced.
To address the issues previously discussed, techniques as described herein may play media items from a guest's media account on a host's media player, while limiting access to the guest media account. For example, a guest's device, such as a smart phone, and a host media player, such as a home streaming movie device, may each adopt a first protocol, such as the discovery and launch protocol (DIAL). The guest device may discover the host media player over a home network, such as a wireless local area network (WLAN), by sending a request having a first value specified by the protocol. The host media player may then enter a “guest mode” based on this request and respond with a second value specified by the protocol that identifies the host media player.
Upon discovery of the host media player, the guest device may submit a play request for a media item accessible via the guest media account. For example the guest may be logged in to their media account through an app on their smart phone. The guest may request that their media account stream a movie to the host media player from the online media library associated with their guest media account.
The guest may be required to log in to an app on the host media player in order for the host media player to be authorized to display the movie. In order to log in to the host media player, the host media player may request a token over the internet from a remote server associated with the guest media account. The remote server may be, for example, a digital media distribution platform and online marketplace that maintains media accounts for users. The guest media account and the host media account may each be maintained by the remote server. The remote server may provide the token to the host media player and the host media player may provide the token to the guest device. For example, the token may be an audio file, and the host media player may play the audio file. The guest device may capture the audio signal and decode the signal into the token. The guest device may then submit the token over the internet to the remote server for validation. The remote server may then validate the token and provide log in credentials of the guest media account over the internet to the host media player. The log in credentials may only carry “read-only” permissions for the requested movie.
The host media player, having entered guest mode, may log out the host media account from the host media player and store the host's credentials securely on the host media player. The host media player may receive the guest credentials and log in the guest media account based on the guest credentials. Guest mode may implement conditions that only allow the host media player to receive read-only permissions and only play the requested movie from the guest media account. The host media player may then play the requested movie from the guest media account.
The methods and systems set forth in this disclosure may be embodied in system components having various relationships. For example,
In some implementations, the host media player and guest device may not be in direct communication with one another. In other implementations, the host media player and guest device may be in direct communication, or may initially not be in direct communication and then transition into a direct communication connection. The host media player and guest device may communicate over a WLAN, over a broader network such as the internet and/or network 140, through audio or light signals, over other network techniques such as the Bluetooth standard, or in any other manner suitable to perform the functions of this disclosure.
The server may be remote from or co-located with the host media player and/or guest device, and may include a single computing device or multiple networked computing devices. The server may be for example a digital media distribution platform that distributes streaming media such as movies, television, video clips, images, music, and other audio. The server may also be an online marketplace that maintains media accounts for users, such as by managing authentication and access to user accounts, maintaining financial data of users, executing transactions, and otherwise operating in a manner suitable to perform the functions of this disclosure. The server may include multiple servers in communication with one another.
The subject matter of this disclosure may be implemented on the host media player, the guest device, and/or the server. For example,
Based on receiving the play request in accordance with the first protocol, the host media player may initiate a guest mode at 220. The host media account may be logged in to the host media player, and the initiation of guest mode may trigger the host media player to log out the host media account at 230. Access to the host media account may be based on one or more authenticated host credentials, and once the host media account is logged out, the host media player may store the host credentials securely at 240. The host credentials may be encrypted and stored locally in the host media player or in a remote secure location. The host media player may receive one or more guest credentials, such as over the internet, and at 250 may log in the guest media account to the host media player based on the guest credentials. Once the guest media account has been logged in to the host media player, the method may play the guest media item at 260.
In some circumstances, the playback of the guest media item may be interrupted such as when an internet connection or power is lost. In such circumstances the guest may want to ensure there is no access to their media account once connectivity or power is restored.
Various methods may be employed to cause guest credentials to be received in order to log in the guest media account to the host media player at 250. For example,
In some implementations, an unmediated network connection may not exist between the guest device and the host media player. A variety of techniques may be employed to provide the token to the guest media device in order to facilitate guest account log in. For example, the token may be a sound file and the host media player may play the sound file as an audio signal. The guest device may capture the audio signal, such as through a microphone, and decode the signal into the token using conventional signal processing techniques. The token may be provided by other techniques such as via network broadcasting or multicasts over the WLAN. The token may also be provided as an emitted light signal such as infrared, as a Bluetooth transmission, or in accordance with any other technique suitable for the subject matter of this disclosure.
Once the guest media device has received the token it may provide the token to the remote server. Upon receipt of the token, the remote server may use the token to authenticate the guest media account. For example, the remote server may compare the received token to the token that was issued to the host media player. The remote server may also use identifying information or other authentication data provided by the guest device and known by the remote server in order to authenticate the guest media account. The remote server may then provide authenticated guest credentials to the host media player at 440, and the host media player may use the guest credentials to log in the guest account to the host media player.
In some implementations the guest device may control the guest media item on the host media player. In order to do so, an additional connection may be established between the host media player and guest device in order to support further functionality. For example although discovery and launch of the necessary applications and modes may be conducted in accordance with the first protocol, additional control of the guest media item may be supported by the establishment of a connection in accordance with a second protocol different from the first protocol.
For example,
Once a connection is established in accordance with the second protocol, an indicator that the guest media item is being played on the host media player may be sent to the guest device. For example the guest media item itself may be displayed or audibly played on the guest device, a toggle button or a light indicator may be activated on an interface of the guest device, or an audio notice may be played on the guest device. At 790 the guest device may provide control requests, such as playback instructions, directly to the host media player. In an example according to an embodiment,
In some implementations a guest may want to ensure her guest account is logged out after completion of playback of the guest media item. Furthermore, the host may want to continue to have access to media items without needing to log in to the host media account again.
As discussed above, the subject matter of this disclosure may be implemented on the host media player, guest device, and/or server.
While the host media player is being discovered by the guest device in accordance with the first protocol, the guest device may also send a media item identifier to the remote server in order to identify the guest media item that the guest wishes to play. For example,
In some implementations, the guest device may receive the token provided by the host media player and decode the token. The guest device may decode the token in order to provide the token to the remote server in a format usable by the server. For example,
As discussed previously, the subject matter of this disclosure may establish a connection between the host media player and guest device in accordance with a second protocol in order to provide functionality such as indicators and controls on the guest device regarding the guest media item. For example,
As discussed above, the subject matter of this disclosure may be implemented on the host media player, the guest device, and/or the server.
Various servers or subcomponents of servers may operate in conjunction to log in the guest media account to the host media player. For example, the host media player may provide an authorization code to a first server. The host media player and the first server may be in communication because the host may have a host media account that is maintained by the first server. The host media player may also provide the authorization code and a host identifier of the host media player to a second server. In response to receiving the authorization code and the host identifier, the second server may, such as at 1420, provide the host media player a token. The host media player may then provide the token to the guest device, such as at 1430, and the guest device may then provide the token to the second server, such as at 1440. In response to receiving the token, the second server may provide the authorization code to the guest device. The guest device may then provide the authorization code to the first server. In response to receiving the authorization code and based on comparing the code to the code previously received from the host media player, the first sever may provide authenticated guest credentials to the host media player. The host media player may then base the log in of the guest media account on the guest credentials. The functionality discussed in this paragraph may be implemented on a single server, such as where the first server and the second server are considered a single server, or across multiple servers.
In addition to logging in the guest media account to the host media player, the server may facilitate a connection between the host media player and the guest device. For example
Similar to the above, various servers or subcomponents of servers may operate in conjunction to facilitate a connection between the host media player and the guest device. For example, in some implementations it may not be feasible to maintain a consistent connection between the host media player and the guest device. As a result, the host media player may repeatedly transmit host identifiers of the host media player to a first server, such as at 1510. The first server may forward transmit these host identifiers to a second server, which may then forward the host identifiers further to the guest device, such as at 1520. The guest device may then respond with the connection identifier to either the second server or the first server, such as at 1530. Either the first sever or the second server may then forward the connection identifier to the host media player, such as at 1540. In response to receiving the connection identifier, the host media player may provide a connection request directly to the guest device in accordance with the second protocol. Similarly to the above, the functionality discussed in this paragraph may be implemented on a single server, such as where the first server and the second server are considered a single server, or across multiple servers.
Implementations of the presently disclosed subject matter may be implemented in and used with a variety of component and network architectures.
The bus 1610 may allow data communication between the central processor 1680 and the memory 1670, which may include read-only memory (ROM) or flash memory (neither shown), and random access memory (RAM) (not shown), as previously noted. The RAM is generally the main memory into which the operating system and application programs are loaded. The ROM or flash memory can contain, among other code, the Basic Input-Output system (BIOS) which controls basic hardware operation such as the interaction with peripheral components. Applications resident with the computer 1600 are generally stored on and accessed via a computer readable medium, such as a hard disk drive (e.g., fixed storage 1640), an optical drive, floppy disk, or other storage medium.
The fixed storage 1630 may be integral with the computing device 1600 or may be separate and accessed through other interfaces. A network interface 1690 may provide a direct connection to a remote server via a telephone link, to the Internet via an internet service provider (ISP), or a direct connection to a remote server via a direct network link to the Internet via a POP (point of presence) or other technique. The network interface 1690 may provide such connection using wireless techniques, including digital cellular telephone connection, Cellular Digital Packet Data (CDPD) connection, digital satellite data connection or the like. For example, the network interface 1690 may allow the computing device to communicate with other computers via one or more local, wide-area, or other networks, as shown in
Many other devices or components (not shown) may be connected in a similar manner (e.g., document scanners, digital cameras and so on). Conversely, all of the components shown in
More generally, various implementations of the presently disclosed subject matter may include or be implemented in the form of computer-implemented processes and apparatuses for practicing those processes. Implementations also may be implemented in the form of a computer program product having computer program code containing instructions implemented in non-transitory and/or tangible media, such as floppy diskettes, CD-ROMs, hard drives, USB (universal serial bus) drives, or any other machine readable storage medium, wherein, when the computer program code is loaded into and executed by a computer, the computer becomes an apparatus for practicing implementations of the disclosed subject matter. Implementations also may be implemented in the form of computer program code, for example, whether stored in a storage medium, loaded into and/or executed by a computer, or transmitted over some transmission medium, such as over electrical wiring or cabling, through fiber optics, or via electromagnetic radiation, wherein when the computer program code is loaded into and executed by a computer, the computer becomes an apparatus for practicing implementations of the disclosed subject matter. When implemented on a general-purpose microprocessor, the computer program code segments configure the microprocessor to create specific logic circuits. In some configurations, a set of computer-readable instructions stored on a computer-readable storage medium may be implemented by a general-purpose processor, which may transform the general-purpose processor or a device containing the general-purpose processor into a special-purpose device configured to implement or carry out the instructions. Implementations may be implemented using hardware that may include a processor, such as a general purpose microprocessor and/or an Application Specific Integrated Circuit (ASIC) that implements all or part of the techniques according to implementations of the disclosed subject matter in hardware and/or firmware. The processor may be coupled to memory, such as RAM, ROM, flash memory, a hard disk or any other device capable of storing electronic information. The memory may store instructions adapted to be executed by the processor to perform the techniques according to implementations of the disclosed subject matter.
The foregoing description, for purpose of explanation, has been described with reference to specific embodiments. However, the illustrative discussions above are not intended to be exhaustive or to limit embodiments of the disclosed subject matter to the precise forms disclosed. Many modifications and variations are possible in view of the above teachings. The embodiments were chosen and described in order to explain the principles of embodiments of the disclosed subject matter and their practical applications, to thereby enable others skilled in the art to utilize those embodiments as well as various embodiments with various modifications as may be suited to the particular use contemplated.
Sivaji, Vishnu, Yastrebenetsky, Peter, Chilton, Patrick
Patent | Priority | Assignee | Title |
Patent | Priority | Assignee | Title |
8813138, | Jun 17 2010 | Guest Tek Interactive Entertainment Ltd. | Method of integrating content on guest device with hospitality media system, and hospitality media system thereof |
8819841, | Jun 26 2012 | GOOGLE LLC | Automated accounts for media playback |
8826373, | Jul 14 2012 | Sharp Kabushiki Kaisha | Methods and systems for sharing digital assets |
20030126211, | |||
20050198693, | |||
20060117379, | |||
20110298596, | |||
20120294445, | |||
20120322384, | |||
20120324076, | |||
20130055324, | |||
20130125233, | |||
20130244772, | |||
20140020071, | |||
20140366102, | |||
20150105046, | |||
20160149891, | |||
20160212103, | |||
EP2328092, | |||
WO2014004206, | |||
WO2014143171, |
Executed on | Assignor | Assignee | Conveyance | Frame | Reel | Doc |
Jan 11 2016 | YASTREBENETSKY, PETER | Google Inc | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 045952 | /0015 | |
Jan 12 2016 | SIVAJI, VISHNU | Google Inc | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 045952 | /0015 | |
Jan 27 2016 | CHILTON, PATRICK | Google Inc | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 045952 | /0015 | |
Sep 30 2017 | Google Inc | GOOGLE LLC | CHANGE OF NAME SEE DOCUMENT FOR DETAILS | 046281 | /0043 | |
May 31 2018 | GOOGLE LLC | (assignment on the face of the patent) | / |
Date | Maintenance Fee Events |
May 31 2018 | BIG: Entity status set to Undiscounted (note the period is included in the code). |
May 20 2022 | M1551: Payment of Maintenance Fee, 4th Year, Large Entity. |
Date | Maintenance Schedule |
Nov 20 2021 | 4 years fee payment window open |
May 20 2022 | 6 months grace period start (w surcharge) |
Nov 20 2022 | patent expiry (for year 4) |
Nov 20 2024 | 2 years to revive unintentionally abandoned end. (for year 4) |
Nov 20 2025 | 8 years fee payment window open |
May 20 2026 | 6 months grace period start (w surcharge) |
Nov 20 2026 | patent expiry (for year 8) |
Nov 20 2028 | 2 years to revive unintentionally abandoned end. (for year 8) |
Nov 20 2029 | 12 years fee payment window open |
May 20 2030 | 6 months grace period start (w surcharge) |
Nov 20 2030 | patent expiry (for year 12) |
Nov 20 2032 | 2 years to revive unintentionally abandoned end. (for year 12) |