Switching Features for Content Sharing Platforms

By using access identifiers (IDs) to transfer sessions in the session switching system of the content sharing platform, the problem of smooth transition of session history and user recent consumption content item sets in the existing system is solved, seamless recovery of sessions and content recommendations are achieved, and the quality and user experience of the platform are improved.

CN115473873BActive Publication Date: 2025-06-24GOOGLE LLC
View PDF 1 Cites 0 Cited by

Patent Information

Application Number
CN202211005012.4
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Priority Date
2017-09-26
Filing Date
2017-09-27
Publication Date
2025-06-24
Estimated Expiration
2037-09-27

AI Technical Summary

Technical Problem

The session switching system of existing content sharing platforms fails to effectively consider the switching characteristics of the user's specific session and access, especially in a smooth transition between session history and the user's recently consumed content item set.

Method used

By using the access identifier (ID) as part of the session switch, make sure the session starts again at the closest end point of the session and restores recommendations related to the recent viewing history of the session.

Benefits of technology

A seamless transition to recovering user sessions on the second client device is realized, reducing the time and communication resources for restoring content sessions, and improving the quality and user experience of the content sharing platform.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN115473873B_ABST
    Figure CN115473873B_ABST
Patent Text Reader

Abstract

The present disclosure relates to switching features for a content sharing platform. Implementations disclose switching features for a content sharing platform. A method includes maintaining a session history of a session that occurs at a first client device, the session history being identified by an access identifier (ID) and including a set of content items most recently viewed on the content sharing platform, determining that a user associated with the session is active on a second client device, transmitting a session continuation notification associated with the access ID of the session and a navigation end point to the second client device, receiving, from the second client device, a request for a viewing page user interface (UI) of a content item corresponding to the navigation end point of the session, and transmitting instructions to the second client device to load the viewing page UI and request an add-on component of the viewing page UI using the access ID.
Need to check novelty before this filing date? Find Prior Art

Description

[0001] Division Explanation

[0002] This application is a divisional application of Chinese Patent Application No. 201780080743.6, with an application date of September 27, 2017. Technical Field

[0003] The present disclosure relates to the field of content sharing platforms, and more particularly to switching features for content sharing platforms. Background Art

[0004] Content sharing platforms and their corresponding websites and mobile applications (“apps”) allow users to play and watch music and videos. As the availability of different media for accessing services or applications such as content sharing platforms increases, requests for these centralized services or applications originate from various sources. Although the access media are different, the fundamental reasons for using the services remain the same. Summary of the Invention

[0005] The following is a brief summary of the present disclosure to provide a basic understanding of some aspects of the present disclosure. The summary is not an extensive overview of the present disclosure. The summary is not intended to identify key or important elements of the present disclosure, nor is it intended to delineate any scope of any specific implementation of the present disclosure or any scope of the claims. The sole purpose of the summary is to present some concepts of the present disclosure in a simplified form as a prelude to the more detailed description that follows.

[0006] In one aspect of the present disclosure, a method includes maintaining a session history of a session occurring at a first client device, the session history being identified by an access identifier (ID) and including a set of content items most recently viewed on a content sharing platform, determining that a user associated with the session is active on a second client device, transmitting a session continuation notification associated with the access ID and a navigation end point of the session to the second client device, receiving from the second client device a request for a viewing page user interface (UI) of a content item corresponding to the navigation end point of the session, and transmitting to the second client device instructions to load the viewing page UI and request additional components of the viewing page UI using the access ID, the additional components including recommended content items to be viewed next identified based on the set of content items most recently viewed associated with the access ID.

[0007] In one implementation, the navigation end point can include an identifier of the last viewed content item on the first client device and a timestamp including a position within the last viewed content item corresponding to the end point of the session at the first client device. Additionally, the access ID can be different from the session ID, where the access ID is associated with a content sharing platform event associated with the first client device and corresponding to the user, and where the occurrence of the content sharing platform event is separated by less than a determined time interval. Further, the session ID can be associated with content sharing platform events occurring on the first client device within a single day.

[0008] In some implementations, the method further includes receiving an indication of a user selection of a switching feature during a session occurring at the first client device and in response to receiving the indication, identifying one or more client devices including at least a second client device as being associated with the user, generating a session continuation notification in response to receiving the indication, and transmitting the session continuation notification to the identified one or more client devices. Additionally, the one or more client devices can be registered with the content sharing platform and identified as being associated with the user.

[0009] In one implementation, the method further includes determining that the content sharing platform is being accessed at the second client device, where the access is associated with the user, identifying a user session on the first client device in response to the determination, identifying the access ID and the navigation end point as corresponding to the session, and generating a session continuation notification. Further, the second client device can, in response to receiving the instruction, load a viewing page UI with additional components on the second client device, where the viewing page UI with additional components allows the session to resume on the second client device. Additionally, the recommended set of content items can be a playlist.

[0010] Computing devices for performing the methods described above and operations of the various implementations described herein are disclosed. A computer-readable medium storing instructions for performing operations associated with the methods described above and the various implementations described herein is also disclosed. BRIEF DESCRIPTION OF THE DRAWINGS

[0011] The present disclosure is illustrated by way of example and not limitation in the figures of the accompanying drawings.

[0012] Figure 1 is a block diagram illustrating an exemplary network architecture in which implementations of the present disclosure can be implemented.

[0013] Figure 2 is a block diagram of a server switching component and a client switching component according to an implementation of the present disclosure.

[0014] Figure 3A and 3BAn exemplary screenshot of a UI for a switching feature of a content sharing platform according to an implementation of the present disclosure.

[0015] Figure 4 A flowchart illustrating a method for implementing a switching feature for a content sharing platform at a server device according to an implementation.

[0016] Figure 5 A flowchart illustrating a method for generating a manually triggered session continuation notification for a switching feature of a content sharing platform according to an implementation.

[0017] Figure 6 A flowchart illustrating a method for providing an automatically generated session continuation notification for a switching feature of a content sharing platform according to an implementation.

[0018] Figure 7 A flowchart illustrating a method for implementing a switching feature of a content sharing platform at a client device according to an implementation.

[0019] Figure 8 A block diagram of an implementation of a computer system according to an implementation. Detailed Description

[0020] Aspects and implementations of the present disclosure are directed to switching features for a content sharing platform. In one implementation, multiple computing devices, such as desktop computing devices and mobile devices including cellular phones and tablet devices, can be utilized to access a content sharing platform. Users are increasingly using different media to access the same services or applications, such as a content sharing platform. For example, a user can consume (e.g., watch, listen to, view, etc.) a series of content items (e.g., videos) of a content sharing platform on a first client device (e.g., via a web browser of the client device or a media viewer provided on an application). This can be referred to as the user's session, viewing session, watching session, access, etc. To provide a convenient and seamless session, the content sharing platform can provide a switching feature to allow the user's session to continue on a second client device used to access the session.

[0021] However, traditional systems for session switching on a content sharing platform do not provide switching features that consider a user's specific session and access. For example, traditional systems do not consider the most recent session history when switching a session from one device to another. Implementations of the present disclosure provide a smooth transition in session switching by transferring an access identifier (ID) as part of the session switch, where the access ID allows the session to resume at the most recent end point of the session and allows the session and content recommendations related to the most recent viewing history of the session to be restored.

[0022] Implementations of the present disclosure provide a switching feature for transferring a session from a first client device to a second client device. The switching feature of implementations of the present disclosure enables a user's session to be resumed on the second client device at the same point where the session ends on the first client device (referred to herein as the navigation end point). Additionally, the session continuation provided by the switching feature in implementations of the present disclosure is based on the set of content items most recently consumed by the user during the session at the first client device, rather than based on the entire viewing history associated with the user on the content sharing platform.

[0023] For example, assume a user typically watches gaming videos and electronic music videos and occasionally watches country music videos. Further, assume that as part of the most recent session on the content sharing platform application, the user primarily consumed country music videos. When the user ends his or her viewing session on the first client device and then initializes the content sharing platform application on the second client device (e.g., the user changes devices from a desktop computer to a mobile device while changing locations), the user may be prompted via the application to continue watching a playlist of country music videos rather than populating the playlist with gaming videos and electronic music videos (even though those videos are based on the user's preferences as recorded in the entire viewing history of the user on the content sharing platform).

[0024] Implementations of the present disclosure provide a technical improvement by introducing a switching feature for the content sharing platform that improves the usability of the content sharing platform. Usability is improved by providing relevant session continuation data such as an exact navigation end point for resuming the session and recommended content items for the session (e.g., based on the most recently consumed content items of the session rather than the entire viewing history of the user). This, in turn, reduces the time and communication resources (by both the client device and the server device) for resuming the content session, thus improving the quality of the content sharing platform, reducing processing time, reducing the utilization of processing resources, and improving the user experience.

[0025] For brevity and conciseness, implementations of the present disclosure generally refer to video. However, the teachings of the present disclosure generally apply to media items and can apply to various types of content or media items, including for example video, audio, text, images, program instructions, and the like.

[0026] Figure 1FIG. illustrates an example system architecture 100 according to one implementation of the present disclosure. The system architecture 100 includes client devices 110A to 110Z, a network 105, a data store 106, a content sharing platform 120, and a server 130. In one implementation, the network 105 may include a public network (e.g., the Internet), a private network (e.g., a local area network (LAN) or a wide area network (WAN)), a wired network (e.g., an Ethernet network), a wireless network (e.g., an 802.11 network or a Wi-Fi network), a cellular network (e.g., a Long Term Evolution (LTE) network), routers, hubs, switches, server computers, and / or combinations thereof. In one implementation, the data store 106 may be a memory (e.g., a random access memory), a cache, a drive (e.g., a hard disk drive), a flash drive, a database system, or another type of component or device capable of storing data. The data store 106 may also include multiple storage components (e.g., multiple drives or multiple databases), which may also be spread across multiple computing devices (e.g., multiple server computers).

[0027] Each of the client devices 110A to 110Z may include a computing device, such as a personal computer (PC), a laptop computer, a mobile phone, a smart phone, a tablet computer, a netbook computer, an Internet-connected television, etc. In some implementations, the client devices 110A to 110Z may also be referred to as “user devices”. Each client device includes a media viewer 111. In one implementation, the media viewer 111 may be an application that allows a user to view content such as images, videos, web pages, documents, etc. For example, the media viewer 111 may be a web browser capable of accessing, retrieving, rendering, and / or navigating content provided by a web server (e.g., a web page such as a HyperText Markup Language (HTML) page, a digital media item, etc.). The media viewer 111 may render, display, and / or present content to the user (e.g., a web page, a media viewer). The media viewer 111 may also display an embedded media player (e.g., a player or an HTML5 player) embedded in a web page (e.g., a web page providing information about a product sold by an online merchant). In another example, the media viewer 111 may be a stand-alone application that allows a user to view digital media items (e.g., digital videos, digital images, e-books, etc.). According to aspects of the present disclosure, the media viewer 111 may be a content sharing platform application for a user to record, edit, and / or upload content for sharing on the content sharing platform, and implement a switching feature for the content sharing platform. In some implementations, the content sharing platform provides a music streaming service, and the media viewer 111 is a music streaming service application that provides music content and implements the switching feature as part of the music streaming service.

[0028] The media viewer 111 may be provided to the client devices 110A through 110Z by the server 130 and / or the content sharing platform 120. For example, the media viewer 111 may be an embedded media player embedded in a web page provided by the content sharing platform 120. In another example, the media viewer 111 may be an application downloaded from the server 130.

[0029] If appropriate, functions described in one implementation as being performed by the content sharing platform 120 may also be performed on the client devices 110A through 110Z in other implementations. Additionally, functions attributed to a particular component may be performed by different components or multiple components operating together. The content sharing platform 120 may also be accessed as a service provided to other systems or devices through appropriate application programming interfaces and is thus not limited to use in a website.

[0030] In one implementation, the content sharing platform 120 may be one or more computing devices (such as rack servers, router computers, server computers, personal computers, mainframe computers, laptop computers, tablet computers, desktop computers, etc.), data storage (e.g., hard disks, memories, databases), networks, software components, and / or hardware components that may be used to provide users with access to media items and / or provide media items to users. For example, the content sharing platform 120 may allow users to consume, upload, search, approve ("like"), dislike, and / or comment on media items. The content sharing platform 120 may also include a website (e.g., a web page) or application backend software that may be used to provide users with access to media items.

[0031] In implementations of the present disclosure, a "user" may be represented as a single individual. However, other implementations of the present disclosure include a "user" as an entity controlled by a set of users and / or an automated source. For example, a set of individual users united as a community in a social network may be considered a "user". In another example, an automated consumer may be an automated ingestion pipeline of the content sharing platform 120, such as a topic channel.

[0032] The content sharing platform 120 may host data content, such as media items 121. The data content may be digital content selected by a user, digital content provided by a user, digital content uploaded by a user, digital content selected by a content provider, digital content selected by a broadcaster, etc. Examples of media items 121 may include, but are not limited to, digital videos, digital movies, digital photos, digital music, website content, social media updates, e-books, e-magazines, digital newspapers, digital audio books, e-journals, web blogs, Really Simple Syndication (RSS) feeds, digital comic books, software applications, etc. In some implementations, the media items 121 are also referred to as content items.

[0033] Media item 121 can be consumed via the Internet and / or via a mobile device application. For simplicity and brevity, online video (also referred to hereinafter as video) is used as an example of media item 121 throughout the document. As used herein, "media", "media item", "online media item", "digital media", "digital media item", "content", and "content item" can include electronic files that can be executed or loaded using software, firmware, or hardware configured to present digital media items to an entity. In one implementation, content sharing platform 120 can use data store 106 to store media item 121.

[0034] In one implementation, server 130 can be one or more computing devices (e.g., rack-mounted servers, server computers, etc.). In one implementation, server 130 can be included in content sharing platform 120. Server 130 can include server switching component 140 to implement switching features for content sharing platform 120. In some implementations, client devices 110A - 110Z can include client switching component 115 that works in conjunction with (or in some implementations independently of) server switching component 140 to provide switching features for content sharing platform 120. Client switching component 115 can perform implementations of the present disclosure independently of server switching component 140 of server 130, or can work in conjunction with server switching component 140. Although the following description may refer to server switching component 140 performing implementations of the present disclosure, it should be understood that the functionality of server switching component 140 can be similarly performed by client switching component 115 at client devices 110A - 110Z alone or in conjunction with client switching component 115 at client devices 110A - 110Z.

[0035] In one implementation, a user can consume (e.g., watch, listen to, view, etc.) a series of content items (e.g., videos) on a first client device 110A - 110Z (e.g., via a media viewer 111 provided on a web browser or an application of the client device 110A - 110Z). This can be referred to as the user's session, viewing session, watching session, access, etc. When the session ends on the first client device, the server switching component 140 and / or the client switching component 115 enable a switching feature for the content sharing platform such that the session can be resumed on another client device 110A - 110Z (i.e., the second client device). The switching feature provided by the server switching component 140 and / or the client switching component 115 enables the user's session to be resumed on the second client device 110A - 110Z at the same point (referred to herein as the navigation end point) where the session ended on the first client device. Additionally, the session continuation provided by the switching feature in the implementations of the present disclosure is based on the set of content items most recently consumed by the user during the session at the first client device, rather than based on the entire viewing history associated with the user on the content sharing platform.

[0036] For example, assume that the user typically watches gaming videos and electronic music videos and occasionally watches country music videos. Further, assume that as part of a recent session on the content sharing platform application, the user predominantly consumed country music videos. When the user ends his or her viewing session on the first client device and then initializes the content sharing platform application on the second client device (e.g., the user changes devices from a desktop computer to a mobile device when changing locations), the user can be prompted via the application to continue watching a playlist of country music videos rather than populating the playlist with gaming videos and electronic music videos (even though those videos are based on the user's preferences logged based on the entire viewing history of the user on the content sharing platform). Additionally, the switching feature of the implementations of the present disclosure prevents the videos most recently watched by the user during the session at the first client device from being included as recommended content in the playlist. This prevents duplicate content items from being presented to the user when the user changes client devices.

[0037] In some implementations, the server switching component 140 of the server 130 can interact with the content sharing platform 120 to provide the implementations of the present disclosure. Further descriptions of the server switching component 140 and the client switching component 115 and their specific functions are described in Figure 2 more detail below.

[0038] Although the implementations of the present disclosure have been discussed in the context of a content sharing platform and providing a switching feature for the content sharing platform, the implementations can generally also be applied to any type of social network that provides connections between users. The implementations of the present disclosure are not limited to content sharing platforms that provide channel subscriptions to users.

[0039] Further to the above description, controls can be provided to the user that allow the user to select whether and when information about the systems, programs, or features described herein (e.g., information about the user's social network, social actions or activities, occupation, user preferences, or the user's current location) can be collected, and whether content or communications can be sent to the user from the server. Additionally, certain data can be processed in one or more ways before storage or use to remove personally identifiable information. For example, the user's identity can be processed so that personally identifiable information cannot be determined for the user, or in the case of location information being obtained, the user's geographical location can be generalized (such as processed to a city, ZIP code, or state level) so that the user's specific location cannot be determined. Thus, the user can control what information about the user is collected, how that information is used, and what information is provided to the user.

[0040] Figure 2 FIG. is a block diagram illustrating a server switching component 140 and a client switching component 115 according to one implementation of the present disclosure. As discussed above, the server switching component 140 can interact with a single social network or can be used between multiple social networks (e.g., provided as a service of a content sharing platform used by other third - party social networks). In one implementation, the server switching component 140 includes a session history recorder 210, a switching detector 220, a switching notification generator 230, and a switching instruction generator 240. Without loss of generality, more or fewer components can be included in the server switching component 140. For example, two of the modules can be combined into a single module, or one of the modules can be divided into two or more modules. In one implementation, one or more of the modules can be present on different computing devices (e.g., different server computers, a single client device, or distributed among multiple client devices, etc.). Additionally, one or more of the modules can be present on different content sharing platforms, third - party social networks, and / or external servers.

[0041] The server switching component 140 is communicatively coupled to the client switching component 115 and the data store 106. For example, the server switching component 140 can be coupled to the client switching component 115 and the data store 106 via a network (e.g., the network 105 as Figure 1 illustrated).

[0042] In one implementation, the client switching component 115 includes a switching notifier 250, a switching request generator 260, and a switching implementer 270. Without loss of generality, more or fewer components may be included in the client switching component 115. For example, two of the modules may be combined into a single module, or one of the modules may be divided into two or more modules. In one implementation, one or more of the modules may be present on different computing devices (e.g., different server computers, a single client device, or distributed among multiple client devices, etc.). Additionally, one or more of the modules may be present on different content sharing platforms, third-party social networks, and / or external servers.

[0043] The data store 106 may be a memory (e.g., random access memory), a cache, a drive (e.g., hard disk drive), a flash drive, a database system, or another type of component or device capable of storing data. The data store 106 may also include multiple storage components (e.g., multiple drives or multiple databases) that may span multiple computing devices (e.g., multiple server computers). The data store 106 includes content item data 290, event log data 291 (which may further include a session identifier (ID) 292, an access ID 293, and a viewing history 294), and user data 295.

[0044] As discussed above, the server switching component 140 and the client switching component 115, individually and / or in combination, enable a session for a list of content items generated by a program, as described above, to be switched (i.e., transferred) from one client device to another client device. As part of a session on a content sharing platform, a user may consume (e.g., watch, listen to, view, etc.) a series of content items of the content sharing platform on a first client device (e.g., a video from the content item data 290 of the data store 106). When the session ends on the first client device, the server switching component 140 and / or the client switching component 115 enables a switching function for the content sharing platform such that the session may resume / continue on a second client device at the navigation end point where the session ended on the first client device. Each of the user's first client device and second client device may include the client switching component 115 for enabling the switching feature in the implementations of the present disclosure. Additionally, the session continuation provided by the switching feature in the implementations of the present disclosure is based on the set of content items most recently consumed by the user during the session at the first client device, rather than on the entire viewing history associated with the user on the content sharing platform.

[0045] When a session occurs on the first client device, the session logger 210 of the server switching component 140 records the user's actions during the session, including a series of content items consumed by the user during the session. The session logger 210 records each event (e.g., viewing history 294 representing the user's viewing of a content item, etc.) in the event log data 291 of the data store 106. Each event (e.g., viewing history 294) and the session ID 292 representing the user are recorded in the event record data 291 and each such event is also recorded together with a separate access ID 293.

[0046] The session ID 292 can be associated with any interaction of the user with the content sharing platform via a single client device within a single day. Interactions on different days from the same client device are associated with a new session ID 292 compared to the session ID 292 of the user's interaction on the previous day from the same client device. Additionally, interactions of the user on the same day on different client devices are associated with different session ID 292s.

[0047] The access ID 293 includes user interactions with the content sharing platform on a single client device that occur within a determined time interval of each other (e.g., each interaction in the access ID 293 is not separated by inactivity greater than the determined time interval). If the determined time interval is exceeded between interactions, a new access ID is assigned to the next user interaction with the content sharing platform on the same client device on the same day. Thus, if the user interacts with the content sharing platform on the client device at discrete time intervals during a single day, the session ID 292 can include multiple access IDs 293 (i.e., the interactions of each access ID are separated by an inactive time greater than a threshold amount). If events occur at a determined interval and are not separated by a threshold amount of time, each event recorded for the user on the same device is associated with the same access ID 293. The access ID 293 is refreshed (i.e., a new access ID 293 is generated) when the user closes the application or stops interacting with the content sharing platform for a determined period of time.

[0048] At the end of a session on a first client device (e.g., closing a content sharing application, no activity on a content sharing platform for a determined period, etc.), the session can be transferred (e.g., continued, resumed, switched, etc.) to a second client device of the user. In one implementation, a switch detector 220 of a server switch component 140 can identify when a session has ended on one client device (e.g., the first client device) and / or when the user associated with the session has become active on another client device (e.g., the second client device). The switch detector 220 can utilize event log data 291 to identify the end of the session on the first client device and / or the resumption of activity of the user on the second client device.

[0049] Implementations of the present disclosure provide two variations on how a session can be transferred from one client device to another. In a first variation, when the switch detector 220 determines that the second client device is accessing the content sharing platform on behalf of the user, a switch notification generator 230 automatically creates a session continuation notification and transmits the session continuation notification to the second client device. For example, the switch detector 220 can determine that a user identifier (ID) associated with the user is received as part of an event corresponding to the second client device (e.g., logging into an application on the content sharing platform, requesting a content feed, etc.). In one implementation, the switch detector 220 determines that content associated with the content sharing platform (e.g., a home page, a feed, etc.) is being requested from the second client device (e.g., when a content sharing platform application is initialized by the user on the second client device). The switch detector 220 examines the event log data 291 to identify whether there is a previous access to the content sharing platform associated with the user, where the previous access includes consumption of multiple content items and occurred within a determined period (e.g., within the last two to three hours).

[0050] In response to the switch detector 220 identifying a most recent access that meets the above criteria, the switch notification generator 230 creates a session continuation notification and transmits the session continuation notification to the second client device. The session continuation notification can be displayed to the user via the content sharing platform application. In one implementation, a switch notifier 250 of a client switch component 115 receives the session continuation notification from the switch notification generator 230 and causes the session continuation notification to be displayed. In some implementations, the session continuation notification can be displayed as a system notification on the second client device. The session continuation notification can include a prompt asking the user whether they want to resume and / or continue the previous session identified by the switch detector 220.

[0051] Figure 3ADescribes an example screenshot of a session notification UI 300 including an automatically generated handover notification according to an implementation of the present disclosure. The UI 300 can be displayed to notify the user that a session previously held on another client device can continue or resume on the user's current client device. In some implementations, the UI 300 can include a playback section 310 for providing playback of a content item (e.g., obtained from the content item data 290 of the data store 106). The UI 300 can also include a content item description section 320 that includes identification information (e.g., obtained from the content item data 290) corresponding to the content item provided for playback in the playback section 310. The UI 300 can further include a session continuation notification section 330.

[0052] In some implementations, the session continuation notification section 330 can include text 332 notifying the user that the content item identified in section 310, section 320 was previously being viewed on another client device (“Device A”). The text also prompts the user as to whether to continue the session associated with the previously viewed content item identified in section 310, section 320. The session continuation notification section 330 includes a button 334 that, when selected, allows the session (associated with the previously viewed content item identified in sections 310, 320) to resume (e.g., continue, switch, etc.) on the client device presenting the UI 300. The session continuation notification section 330 also includes a link 336 (e.g., a Hypertext Transfer Protocol (HTTP) link, a hyperlink, etc.) that allows the user to decline the session continuation notification 330 and continue a new session on the current client device presenting the UI 300.

[0053] Return reference Figure 2 , in a second variation, upon receiving an indication that the user has selected a handover feature (e.g., the user clicks a button or selects a link associated with the handover feature) on a first client device, a session continuation notification can be generated by the handover notification generator 230. When the user selects the handover feature (e.g., via a link or button representing the handover feature provided in the user interface (UI) of the content sharing application), the handover notifier 250 generates a Remote Procedure Call (RPC) and transmits the Remote Procedure Call (RPC) to the handover detector 220. Then, the handover detector 220 triggers the handover notification generator 230 to send the session continuation notification to one or more client devices associated with the user. In one implementation, the handover notification generator 230 is responsible for syndicating the session continuation notification to the client devices of users registered to receive notifications from the content sharing platform. The client devices of users registered with the content sharing platform can be identified based on the user data 295 of the data store 106.

[0054] Figure 3B An example screenshot of a UI 350 that enables manual switching of user sessions on a content sharing platform according to an implementation of the present disclosure is described. The UI 350 may include a media player 360 that plays back a content item and a content item information section 370. The content item information section 370 may detail identification information of the currently accessed content item shown in the media player 360. The content item information section 370 may include, but is not limited to, information such as the title of the content item, the content owner of the content item, the release date of the content item, the duration of the content item, the number of views of the content item, the number of "likes" (e.g., thumbs up) of the content item, the number of "dislikes" (e.g., thumbs down) of the content item, etc.

[0055] In one implementation, the UI 350 includes a switch icon 380. The switch icon 380 may be part of the media player 360. As Figure 3B shown, the switch icon 380 is part of the control area of the media player 360 located at the bottom of the media player 360. In one implementation, when a viewer hovers over the switch icon 380 or selects the switch icon 380, a drop-down menu 385 may be shown to the viewer. The drop-down menu 385 may provide the viewer with further information about the switching feature. For example, the viewer may select the drop-down menu 385 to cause the current viewing session to switch to another client device. In some implementations, the drop-down menu 385 may detail other potential client devices to which the viewing session may be switched. When the switch icon 380 or the drop-down menu 385 associated with the switch icon 380 is selected, a push notification for resuming the current viewing session (associated with the content item identified in parts 360, 370) may be generated and the push notification may be transmitted to another client device associated with the user. Other positions and configurations of the switch icon 380, including the type of the drop-down menu 385 and other notifications, different from those described with reference to the UI 350, may also be used in implementations of the present disclosure.

[0056] Return to reference Figure 2 , in both the first variation and the second variation described above, the session continuation notification includes a payload. The payload includes an access ID 293 associated with the identified session and a navigation end point. In one implementation, the navigation end point is a timestamp identifying the position within the content item being viewed at which the session ends on the first client device. The payload data may be obtained by the switch notification generator 230 from the event log data 291.

[0057] As discussed above, the switch notifier 250 of the client switch component 115 at the second client device receives the session continuation notification and causes the session continuation notification to be displayed. The session continuation notification can be displayed as a notification within the UI of the content sharing platform application or browser application at the second client device and / or can be a system notification generated on the second client device. The session continuation notification can include a prompt asking the user whether they want to resume and / or continue the previously identified session identified by the switch detector 220.

[0058] The user can choose to continue the session via the session continuation notification provided at the second client device, for example, by selecting a link or clicking a button of the session continuation notification. In response to receiving an indication to continue the session (i.e., session switch), the switch request generator 260 of the client switch component 115 on the second client device can extract the access ID and the navigation end point from the payload of the session continuation notification and generate a client request for a new viewing page corresponding to the received navigation end point. The generated client request can also include the extracted access ID. The switch request generator 260 transmits the client request to the server switch component 140.

[0059] Once the client request is received at the server switch component 140, the switch instruction generator 240 can generate a switch instruction for session continuation. The switch instruction can include instructions for: (1) loading the viewing page corresponding to the navigation end point, and (2) requesting additional components for the viewing page. Regarding loading the viewing page, the instruction can identify the content items to be loaded as part of the viewing page, where the content items correspond to the navigation end point of the session. In one implementation, the content item can be the content item that the user last consumed (e.g., when the user was in the middle of viewing the content item). In some implementations, the content item can be the next content item of the session (e.g., when the user is at the end of the last consumed content item in the session or between the viewed content items in the session).

[0060] Regarding requesting additional components, these attachment components can include a set of recommended content items to be viewed next. In one implementation, the set of recommended content items can be in the form of a playlist. The recommendation generator 245 of the switch instruction generator 240 can identify the set of recommended content items. The recommendation generator 245 can identify the set of recommended content items based on the set of most recently consumed content items associated with the access ID. The set of most recently consumed content items associated with the access ID can be obtained from the event log data 291 (e.g., from the viewing history 294) and can refer to those content items that the user most recently consumed in the session to be continued on the second client. The recommendation generator 245 can use these most recently consumed content items to seed the generation of the set of recommended content items.

[0061] A description of how to generate a recommended set of content items (e.g., a playlist) is as follows. First, the recommendation generator 245 obtains a collection of seed content items (e.g., content items associated with access ID 293) and identifies other user sessions that have consumed any of the seed content items and any playlists that contain any of the content items. Next, the other user sessions and playlists are weighted by the number of seed content items included in each of the other user sessions and playlists. Then, an initial set of content items is generated, where the content items in the initial set that are not seed content items have also been viewed by the user or are also included in a playlist. Finally, the content items in the initial set are scored and sorted based on the weights of the other user sessions / playlists and the number of user sessions / playlists in which the content items are included. This results in a set of content items that closely match the seed content items and can be used as a recommendation from the recommendation generator.

[0062] Once the client switching component 115 at the second client device receives a switching instruction from the server switching component 140, the switching implementer 270 can execute the switching instruction to resume and / or continue a session on the second client device. When the switching instruction is executed, the switching implementer 270 causes a viewing page including the recommended set of content items to be viewed next to be loaded in the UI of an application (e.g., a browser application or a content sharing platform application) on the second client device.

[0063] In one implementation of the present disclosure, after a session has been switched to a second client device as described above, user events can be recorded in the event log data 291. The user events record the pairing of the original access ID of the first client device with the new access ID of the second client device. This pairing can be used to daisy-chain sessions together such that if a user goes from client device A to client device B to client device C, the content items consumed on client devices A and B are seeded into a continuing playlist (i.e., the recommended set of content items) on client device C.

[0064] Figure 4 FIG. is a flowchart of a method 400 for implementing switching features for a content sharing platform at a server device according to an implementation of the present disclosure. The method 400 can be executed by processing logic including hardware (e.g., circuits, dedicated logic, programmable logic, microcode, etc.), software (e.g., instructions running on a processor to perform hardware emulation), or a combination thereof.

[0065] For simplicity of explanation, the methods of the present disclosure are depicted and described as a series of acts. However, acts in accordance with the present disclosure can occur in various orders and / or concurrently and can occur in conjunction with other acts not presented and described herein. Moreover, not all illustrated acts may be required to implement the methods in accordance with the disclosed subject matter. Additionally, those skilled in the art will understand and appreciate that the methods can alternatively be represented as a series of interrelated states via a state diagram or events. Further, it should be understood that the methods disclosed in this specification can be stored on an article of manufacture to facilitate transporting or transferring such methods to a computing device. As used herein, the term "article of manufacture" is intended to encompass a computer program accessible from any computer-readable device or storage medium. In one implementation, method 400 can be performed by a server switching component 140 as shown in Figure 1 and Figure 2 .

[0066] Method 400 begins at block 410, where a session history of a user session is maintained, where the session history occurs at a first client device. At block 420, it is determined that the session has moved from the first client device to a second client device. Subsequently, at block 430, a session continuation notification is transmitted to the second client device, where the session continuation notification is associated with an access ID and a navigation end point of the session at the first client device.

[0067] At block 440, a request is received from the second client device, where the request is for a viewing page UI of a content item corresponding to the navigation end point of the session. Finally, at block 450, instructions are transmitted to the second client device, where the instructions are for loading the viewing page UI and requesting additional components of the viewing page UI using the access ID. In one implementation, the additional components include recommended content items to be viewed next identified based on a set of most recently viewed content items associated with the access ID.

[0068] Figure 5 is a flowchart of a method for generating a manually triggered session continuation notification for a switching feature of a content sharing platform in accordance with some implementations of the present disclosure. Method 500 can be performed by processing logic including hardware (e.g., circuits, dedicated logic, programmable logic, microcode, etc.), software (e.g., instructions running on a processor to perform hardware emulation), or a combination thereof. In one implementation, method 500 can be performed by a server switching component 140 as shown in Figure 1 and Figure 2 .

[0069] Method 500 begins at block 510, where an indication of a selection of a switching feature is received from a first client device, where the first client device is associated with a session of a user of a content sharing platform. In one implementation, the selection is a user selection at the first client device of a button, icon, or link representing the switching feature. At block 520, in response to receiving the indication at block 510, one or more other client devices are identified as being associated with the user. Then, at block 530, an access ID corresponding to the session on the first client device and a navigation end point of the session are identified.

[0070] Subsequently, at block 540, a session continuation notification including a payload having the access ID and the navigation end point is generated. Finally, at block 550, the generated session continuation notification is transmitted to one or more other client devices.

[0071] Figure 6 is a flowchart illustrating a method 600 for providing an automatically generated session continuation notification for a switching feature of a content sharing platform according to some implementations of the present disclosure. Method 600 may be performed by processing logic including hardware (e.g., circuits, dedicated logic, programmable logic, microcode, etc.), software (e.g., instructions running on a processor to perform hardware emulation), or a combination thereof. In one implementation, method 600 may be performed by a server switching component 140 as shown in Figure 1 and Figure 2 shown.

[0072] Method 600 begins at block 610, where it is determined that a content sharing platform is being accessed on a first client device, and the access is associated with a user of the content sharing platform. At block 620, the most recent session of the user on the content sharing platform is identified. In one implementation, the most recent session occurred within a determined time threshold and is maintained on a client device different from the first client device.

[0073] Subsequently, at block 630, an access ID corresponding to the identified session and a navigation end point of the session are identified. Then, at block 640, a session continuation notification is generated, where the session continuation notification includes a payload having the access ID and the navigation end point. Finally, at block 650, the generated session continuation notification is transmitted to the first client device.

[0074] Figure 7 is a flowchart illustrating a method 700 for implementing a switching feature for a content sharing platform at a client device according to some implementations of the present disclosure. Method 700 may be performed by processing logic including hardware (e.g., circuits, dedicated logic, programmable logic, microcode, etc.), software (e.g., instructions running on a processor to perform hardware emulation), or a combination thereof. In one implementation, method 700 may be performed by a server switching component 140 as shown inFigure 1 and Figure 2 executed by the client switching component 115 shown in

[0075] Method 700 begins at block 710, where a content sharing platform is accessed from a first client device. The content sharing platform may be accessed, for example, via a content sharing platform application on the first client device or via a web browser of the first client device. At block 720, a session continuation notification is received, where the session continuation notification includes an access ID and a navigation end point of a user's session that occurred at a second client device. The user's session is associated with the content sharing platform.

[0076] Subsequently, at block 730, in response to the session continuation notification, a first request for a viewing page UI of a content item corresponding to the navigation end point is transmitted. The request may be transmitted from the first client device to a server device of the content sharing platform. At block 740, instructions for loading the viewing page UI and requesting additional components of the viewing page UI using the access ID are received. The additional components may include recommended content items to be viewed next (e.g., a playlist) identified based on a set of most recently viewed content items associated with the access ID.

[0077] Then, at block 750, a second request for additional components of the viewing page UI is transmitted, where the request includes the access ID. At block 760, the additional components of the viewing page UI are received in response to the second request. Finally, at block 770, the viewing page UI is loaded, where the viewing page UI includes the recommended content items to be viewed next. The recommended content items are identified using the access ID.

[0078] Figure 8A graphical representation of a machine in an exemplary form of a computer system 800 is illustrated, in which a set of instructions for causing the machine to implement any one or more of the methods discussed herein can be executed within the computer system 800. In an alternative implementation, the machine can be connected (e.g., networked) to other machines in a local area network (LAN), intranet, extranet, or the Internet. The machine can operate in a client-server network environment with the capabilities of a server or client machine, or as a peer computer in a peer-to-peer (or distributed) network environment. The machine can be a personal computer (PC), tablet PC, set-top box (STB), personal digital assistant (PDA), cellular phone, web application, server, network router, switch, or bridge, or any machine capable of executing a set of instructions (sequential or otherwise) that specify actions to be taken by that machine. Further, although only a single machine is illustrated, the term "machine" shall also be taken to include any collection of machines that individually or jointly execute a set of instructions (or multiple sets) to perform any one or more of the methods discussed herein. In one implementation, the computer system 800 can represent a server (such as server 102) or a client (such as client 110A - 110Z) of a switching component 850 that performs a switching component 140 or a client switching component 115 as described with reference to Figure 1 and Figure 2 .

[0079] The exemplary computer system 800 includes a processing device 802, a main memory 804 (e.g., read only memory (ROM), flash memory, dynamic random access memory (DRAM) such as synchronous DRAM (SDRAM) or Rambus DRAM (RDRAM), etc.), a static memory 806 (e.g., flash memory, static random access memory (SRAM), etc.), and a data storage device 808 that communicate with each other via a bus 830. Any signals provided via the various buses described herein can be time-division multiplexed with other signals and provided via one or more common buses. Additionally, the interconnection between circuit components or modules can be shown as a bus or a single signal line. Alternatively, each of the buses can be one or more single signal lines, and / or each of the single signal lines can be a bus.

[0080] The processing device 802 represents one or more general-purpose processing devices, such as a microprocessor, a central processing unit, etc. More specifically, the processing device may be a complex instruction set computing (CICS) microprocessor, a reduced instruction set computing (RISC) microprocessor, a very long instruction word (VLIW) microprocessor, or a processor implementing other instruction sets or a combination of instruction sets. The processing device 802 may also be one or more special-purpose processing devices, such as an application specific integrated circuit (ASIC), a field programmable gate array (FPGA), a digital signal processor (DSP), a network processor, etc. The processing device 802 is configured to execute processing logic 826 for performing the operations and steps discussed herein.

[0081] The computer system 800 may further include a network interface device 808. The computer system 800 may also include a video playback unit 810 (e.g., a liquid crystal display (LCD) or a cathode ray tube (CRT)), an alphanumeric input device 812 (e.g., a keyboard), a cursor control device 814 (e.g., a mouse), and a signal generation device 816 (e.g., a speaker).

[0082] The data storage device 818 may include a computer-readable storage medium 828 (also referred to as a machine-readable storage medium) on which is stored one or more instruction sets 822 (e.g., software) that include any one or more of the functions described herein. The instructions 822 may also exist, in whole or in part, within the main memory 804 and / or within the processing device 802 during execution by the computer system 800; the main memory 804 and the processing device 802 also constitute a machine-readable storage medium. The instructions 822 may be further transmitted and received via the network interface device 808 over the network 820.

[0083] As described herein, the computer-readable storage medium 828 may also be used to store instructions for performing a method for providing switching features of a content sharing platform. Although the computer-readable storage medium 828 is shown as a single medium in the exemplary implementation, the term "computer-readable storage medium" should be considered to include a single medium or multiple media (e.g., a centralized or distributed database and / or associated caches and servers) that store one or more instruction sets. A machine-readable medium includes any mechanism for storing information in a form readable by a machine (e.g., a computer), such as software, a processing application. Machine-readable media may include, but are not limited to, magnetic storage media (e.g., a floppy disk); optical storage media (e.g., a CD-ROM); magneto-optical storage media; read only memory (ROM); random access memory (RAM); erasable programmable memory (e.g., EPROM and EEPROM); flash memory; or another type of medium suitable for storing electronic instructions.

[0084] The foregoing description sets forth numerous specific details, such as examples of specific systems, components, methods, etc., to provide a good understanding of several implementations of the present disclosure. However, it will be apparent to those skilled in the art that at least some implementations of the present disclosure may be practiced without these specific details. In other instances, well-known components or methods have not been described in detail, or well-known components or methods have been presented in a simple block diagram format to avoid unnecessarily obscuring the present disclosure. Thus, the specific details set forth are merely exemplary. Specific implementations may differ from these exemplary details and still be within the scope of the present disclosure.

[0085] References throughout this specification to "one implementation" or "an implementation" mean that a particular feature, structure, or characteristic described in connection with the implementation is included in at least one implementation. Thus, the appearances of the phrases "in one implementation" or "in an implementation" in various places throughout this specification are not necessarily all referring to the same implementation. Furthermore, the term "or" is intended to mean an inclusive "or" rather than an exclusive "or".

[0086] Although the operations of the methods herein are shown and described in a particular order, the order of each method's operations may be altered so that certain operations may be performed in the reverse order or certain operations may be performed at least partially concurrently with other operations. In another implementation, the instructions or sub-operations of different operations may be in an intermittent and / or alternating manner.

Claims

1. A method for session switching on a content sharing platform, comprising: Maintaining a session history of a session occurring at a first client device, the session history including a set of content items most recently consumed on the content sharing platform, wherein maintaining the session history includes, for each event of the session: Recording a session identifier ID, wherein the session ID is associated with a content sharing platform event, wherein the content sharing platform event is associated with a user associated with the session and occurs and is recorded in event record data on the first client device on the same day; and Recording an access ID different from the session ID, the access ID being associated with a content sharing platform event, the content sharing platform event being associated with the first client device and corresponding to the user, wherein the occurrence of the content sharing platform event associated with the access ID is separated by less than a determined time interval, and wherein the access ID is recorded in the event record data; Determining that the user associated with the session is active on a second client device; Transmitting, by a processing device, a session continuation notification including a payload to the second client device, the payload including the access ID of the session at the first client device and a navigation end point; Receiving, in response to the session continuation notification, a request for a content item corresponding to the navigation end point of the session from the second client device; and Transmitting, by the processing device, an instruction to the second client device for: Loading a content item corresponding to the navigation end point of the session at the first client device; and Requesting additional components of the content item using the access ID, wherein the access ID is obtained from the event record data, the additional components including recommended content items to be consumed next identified based on the set of most recently consumed content items associated with the access ID, wherein the recommended content items include playlists.

2. The method according to claim 1, wherein the navigation end point comprises: The identifier of the last consumed content item on the first client device and a timestamp of a position corresponding to a stop point of the session at the first client device included in the last consumed content item.

3. The method according to claim 1, further comprising: Receiving an indication of a user selection of a switching feature during the session occurring at the first client device; And In response to receiving the indication: Identifying one or more client devices including at least the second client device as being associated with the user; Generating the session continuation notification in response to receiving the indication; And Transmitting the session continuation notification to the identified one or more client devices.

4. The method according to claim 1, wherein the one or more client devices are registered at the content sharing platform and are identified as being associated with the user.

5. The method according to claim 1, further comprising: Determining that the content sharing platform is being accessed at the second client device, wherein the access is associated with the user; Identify the session of the user on the first client device in response to the determination; Identify the access ID and the navigation end point as corresponding to the session; And Generate the session continuation notification.

6. The method according to claim 1, wherein the second client device loads the content item and the add-on on the second client device in response to receiving the instruction, and wherein the content item and the add-on allow the session to resume on the second client device.

7. A client device, comprising: A memory; And A processing device coupled to the memory, wherein the processing device is configured to: Access a content sharing platform via an application executed by the processing device, the access on behalf of a user of the client device and associated with a session history, the session history including a set of content items most recently consumed on the content sharing platform, wherein each event of the session history is associated with: A session identifier ID, wherein the session ID is associated with a content sharing platform event, wherein the content sharing platform event is associated with the user associated with the session and occurs and is recorded in event record data on the client device on the same day; and An access ID different from the session ID, the access ID being associated with a content sharing platform event, the content sharing platform event being associated with the client device and corresponding to the user, wherein the occurrence of the content sharing platform event associated with the access ID is separated by less than a determined time interval, and wherein the access ID is recorded in the event record data; Receive a session continuation notification including a payload, the payload including the access ID and the navigation end point of the session of the user that occurred on another client device, the session being associated with the content sharing platform; Transmit a first request for a content item corresponding to the navigation end point of the session; In response to the first request, receive an instruction to load the navigation end point of the session and request an add-on for the content item using the access ID, wherein the access ID is obtained from the event record data, and the add-on includes a recommended content item to be consumed next identified based on the set of most recently consumed content items associated with the access ID; Transmit a second request for the add-on of the content item, the second request including the access ID; and In response to receiving the add-on, provide the recommended content item to be consumed next, wherein the recommended content item includes a playlist.

8. The client device according to claim 7, wherein the application is at least one of the following: a content sharing platform application or a browser application.

9. The client device according to claim 7, wherein the navigation end point includes: An identifier of the content item last consumed on the other client device and a timestamp of a position corresponding to a stop point of the session at the other client device included in the last consumed content item.

10. The client device according to claim 7, wherein the content item and the add-on component allow the session to resume on the client device.

11. The client device according to claim 7, wherein the session continuation notification is generated in response to a user selection of a switching feature at the other client device during the session that occurs at the other client device.

12. The client device according to claim 7, wherein the session continuation notification is generated in response to an automatic detection of the access to the content sharing platform at the application of the client device.

13. A non-transitory machine-readable storage medium storing instructions that, when executed, cause a processing device to perform operations, the operations including: Maintaining a session history of a session that occurs at a first client device, the session history including a set of content items most recently consumed on a content sharing platform, wherein maintaining the session history includes, for each event of the session: Recording a session identifier ID, wherein the session ID is associated with a content sharing platform event, wherein the content sharing platform event is related to a user associated with the session and occurs and is recorded in event record data on the first client device on the same day; and Recording an access ID different from the session ID, the access ID being associated with a content sharing platform event, the content sharing platform event being associated with the first client device and corresponding to the user, wherein the occurrence of the content sharing platform event associated with the access ID is separated by less than a determined time interval, and wherein the access ID is recorded in the event record data; Determining that the user associated with the session is active on a second client device; Transmitting, by the processing device, a session continuation notification including a payload to the second client device, the payload including the access ID of the session at the first client device and a navigation end point; Receiving, in response to the session continuation notification, a request for a content item corresponding to the navigation end point of the session from the second client device; and Transmitting, by the processing device, instructions to the second client device for: Loading a content item corresponding to the navigation end point of the session at the first client device; and Requesting an add-on component for the content item using the access ID, wherein the access ID is obtained from the event record data, and the add-on component includes a recommended content item to be consumed next identified based on the set of content items most recently consumed associated with the access ID, wherein the recommended content item includes a playlist.

14. The non-transitory machine-readable storage medium according to claim 13, wherein the navigation end point includes: The identifier of the most recently consumed content item on the first client device and a timestamp of a position corresponding to a stop point of the session at the first client device included in the most recently consumed content item.

15. The non-transitory machine-readable storage medium according to claim 13, wherein the operations further include: Receiving an indication of a user selection of a handover feature during the session occurring at the first client device; And In response to receiving the indication: Identifying one or more client devices including at least the second client device as being associated with the user; Generating the session continuation notification in response to receiving the indication; And Transmitting the session continuation notification to the identified one or more client devices.

16. The non-transitory machine-readable storage medium according to claim 13, wherein, The operation further includes: Determining that the content sharing platform is being accessed at the second client device, wherein the access is associated with the user; Identifying the session of the user on the first client device in response to the determination; Identifying the access ID and the navigation end point as corresponding to the session; and Generating the session continuation notification.

17. The non-transitory machine-readable storage medium according to claim 13, wherein the second client device loads the content item with the additional component on the second client device in response to receiving the instruction, and wherein the content item with the additional component allows the session to resume on the second client device.

Citation Information

Patent Citations

  • Providing persistent activity sessions across client devices

    US20160173540A1