[go: up one dir, main page]
More Web Proxy on the site http://driver.im/

WO2016154735A1 - Systems and methods for organizing and navigating videos between multiple devices - Google Patents

Systems and methods for organizing and navigating videos between multiple devices Download PDF

Info

Publication number
WO2016154735A1
WO2016154735A1 PCT/CA2016/050200 CA2016050200W WO2016154735A1 WO 2016154735 A1 WO2016154735 A1 WO 2016154735A1 CA 2016050200 W CA2016050200 W CA 2016050200W WO 2016154735 A1 WO2016154735 A1 WO 2016154735A1
Authority
WO
WIPO (PCT)
Prior art keywords
video
user
input
playing
watched
Prior art date
Application number
PCT/CA2016/050200
Other languages
French (fr)
Inventor
Ryan ANDAL
Original Assignee
Secret Location Inc.
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Secret Location Inc. filed Critical Secret Location Inc.
Publication of WO2016154735A1 publication Critical patent/WO2016154735A1/en

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/45Management operations performed by the client for facilitating the reception of or the interaction with the content or administrating data related to the end-user or to the client device itself, e.g. learning user preferences for recommending movies, resolving scheduling conflicts
    • H04N21/466Learning process for intelligent management, e.g. learning user preferences for recommending movies
    • H04N21/4661Deriving a combined profile for a plurality of end-users of the same client, e.g. for family members within a home
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/25Management operations performed by the server for facilitating the content distribution or administrating data related to end-users or client devices, e.g. end-user or client device authentication, learning user preferences for recommending movies
    • H04N21/251Learning process for intelligent management, e.g. learning user preferences for recommending movies
    • H04N21/252Processing of multiple end-users' preferences to derive collaborative data
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/436Interfacing a local distribution network, e.g. communicating with another STB or one or more peripheral devices inside the home
    • H04N21/43615Interfacing a Home Network, e.g. for connecting the client to a plurality of peripherals
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/441Acquiring end-user identification, e.g. using personal code sent by the remote control or by inserting a card
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/45Management operations performed by the client for facilitating the reception of or the interaction with the content or administrating data related to the end-user or to the client device itself, e.g. learning user preferences for recommending movies, resolving scheduling conflicts
    • H04N21/4508Management of client data or end-user data
    • H04N21/4532Management of client data or end-user data involving end-user characteristics, e.g. viewer profile, preferences
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/45Management operations performed by the client for facilitating the reception of or the interaction with the content or administrating data related to the end-user or to the client device itself, e.g. learning user preferences for recommending movies, resolving scheduling conflicts
    • H04N21/462Content or additional data management, e.g. creating a master electronic program guide from data received from the Internet and a Head-end, controlling the complexity of a video stream by scaling the resolution or bit-rate based on the client capabilities
    • H04N21/4622Retrieving content or additional data from different sources, e.g. from a broadcast channel and the Internet
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/47End-user applications
    • H04N21/472End-user interface for requesting content, additional data or services; End-user interface for interacting with content, e.g. for content reservation or setting reminders, for requesting event notification, for manipulating displayed content
    • H04N21/47217End-user interface for requesting content, additional data or services; End-user interface for interacting with content, e.g. for content reservation or setting reminders, for requesting event notification, for manipulating displayed content for controlling playback functions for recorded or on-demand content, e.g. using progress bars, mode or play-point indicators or bookmarks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/47End-user applications
    • H04N21/482End-user interface for program selection
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/60Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client 
    • H04N21/65Transmission of management data between client and server
    • H04N21/658Transmission by the client directed to the server
    • H04N21/6587Control parameters, e.g. trick play commands, viewpoint selection

Definitions

  • the following invention or inventions generally relates to organizing and navigating videos.
  • Videos may be viewed by traditional interfaces, like television, cable television and satellite television. Videos may also be viewed using the Internet. Examples of Internet- based video platforms include the trade names YouTube, Netflix and Hulu. A television guide may be used to show a listing of channels and times of shows, and a user is able to navigate through the listing to select a specific channel for viewing. For Internet-based video platforms, categories of videos are listed, and videos are listed by showing a title, description and an image. A user reads the information being listed and may scroll through the listings, and makes a choice based on the provided information to make a video selection. The video selection starts the playing of the video.
  • Some Internet-based video platforms use recommendation algorithms to track user selections and to suggest videos for the user to watch, by displaying these videos in a listing. The user reviews the listing and the information related to the suggested videos. From the listing, the user selects a video to watch.
  • Non-limiting example embodiments of systems and methods for organizing and navigating videos are provided in this summary section. Other example embodiments and aspects of the systems and methods are described in the detailed description or are illustrated in the figures, or both. [0006] In an example embodiment, a method performed by a computing device is provided to navigate videos amongst multiple computing devices.
  • the method includes: displaying a list of one or more users that are currently watching videos and receiving an input selecting one user of the one or more users associated with one or more other computing devices; obtaining a message broadcast comprising video identification information and a current point in time in the video being watched by the selected user; and displaying the same video currently being watched by the selected user, starting at a point in time in the video that is approximately the same as the current point in time in the video obtained from the message broadcast.
  • the method responsive to receiving the input, the method further includes storing in a cache an identifier of the selected user.
  • the message broadcast includes video identification and current viewing activity of multiple users, and after obtaining the message broadcast, the method further includes using the identifier stored in the cache to search for the video identification information and the current point in time in the video being watched by the selected user.
  • the message broadcast is obtained by the computing device at periodic time intervals.
  • the message broadcast is obtained by the computing device at periodic time intervals of approximately 10 seconds.
  • the message broadcast includes a listing of users, their respective online status, their respective category being currently watched, their respective channel within the category being currently watched, their respective video being currently watched, and their respective point in time in the video currently being watched.
  • the method further includes the computing device obtaining a subsequent message broadcast comprising new video identification information of a new video and a new current point in time in the new video being watched by the selected user; and responsive to receiving the subsequent message broadcast,
  • a method performed by a server system for coordinating video viewing amongst multiple devices.
  • the method includes: receiving video identification information of a first video and a point in time in the first video currently being watched by a first user, and storing the same in a live viewing activity database; sending a message broadcast to at least a second device, the message broadcast comprising the video identification information of the first video and the point in time in the first video currently being watched by the first user; and receiving video identification information of the first video and a point in time in the first video currently being watched by the second user, and storing the same in the live viewing activity database, wherein the point in time in the first video currently being watched by the second user is approximately the same as the point in time in the first video currently being watched by the first user.
  • a method performed by a computing system to navigate videos includes: providing a sequence of videos organized within one or more sequence of channels, the one or more sequence of channels organized within one more sequence of categories; and storing one or more rules associated with each of a left input, a right input, an up input, a down input, a double up input and a double down input.
  • the method includes: when playing a current video and detecting the left input, starting to play a previous video in a same channel as the current video; when playing the current video and detecting the right input, starting to play a next video in the same channel as the current video; when playing the current video and detecting the up input, playing a new video in a previous channel compared to the channel of the current video; when playing the current video and detecting the down input, playing a new video in a next channel compared to the channel of the current video; when playing the current video and detecting the double up input, playing a new video in a previous category compared to a category of the current video; and when playing the current video and detecting the double down input, playing a new video in a next category compared to the category of the current video.
  • a computing system is provided and is configured to organize and navigate videos.
  • the computing system includes: a processor; a communication device; a memory comprising video information in which a sequence of videos are organized within one or more sequence of channels, the one or more sequence of channels are organized within one more sequence of categories; and the memory further comprising one or more rules associated with each of a left input, a right input, an up input, a down input, a double up input and a double down input.
  • the processor is configured to at least: when playing a current video and detecting the left input, invoke playing a previous video in a same channel as the current video; when playing the current video and detecting the right input, invoke playing a next video in the same channel as the current video; when playing the current video and detecting the up input, invoke playing a new video in a previous channel compared to the channel of the current video; when playing the current video and detecting the down input, invoke playing a new video in a next channel compared to the channel of the current video; when playing the current video and detecting the double up input, invoke playing a new video in a previous category compared to a category of the current video; and when playing the current video and detecting the double down input, invoke playing a new video in a next category compared to the category of the current video.
  • a method performed by a computing system to navigate videos includes providing a sequence of videos and storing one or more rules associated with a navigation input. The method further includes: when playing a current video and detecting the navigation input, determining if at least a first certain amount of time of the current video has been watched; if not, then automatically starting to play a next video in the sequence of videos starting at a second certain amount of time; and otherwise, automatically starting to play the next video starting at the beginning of the next video.
  • the first certain amount of time is computed as a percentage of an entire length of the current video. For example, the percentage is approximately 90%.
  • the second certain amount of time is computed as a percentage of an entire length of the next video. For example, the percentage is approximately 30%.
  • FIG. 1 is a system diagram showing example components and devices used to organize and navigate videos.
  • FIG. 2 is a diagram showing example data stored in a video content database.
  • FIG. 3 is a diagram showing example components of a user device, and example data stored on the user device.
  • FIGs. 4a and 4b is a diagram showing example data and rules stored in an interaction rules database.
  • FIG. 5 is a diagram showing an example organization of videos by categories and channels.
  • FIGs. 6a and 6b is a flow diagram showing an example series of operations for navigating videos.
  • FIG. 7 is an example graphical user interface, including instructions for navigating videos.
  • FIG. 8 is an example graphical user interface showing categories and selectable channels.
  • FIG. 9 is an example of data in a live viewing activity database.
  • FIG. 10 is a flow diagram showing an example of processor implemented or computer executable instructions for one user synchronizing their viewing activity with another user.
  • FIG. 1 1 is a flow diagram showing an example of processor implemented or computer executable instructions for users synchronizing their viewing activity with each other in a chained manner.
  • FIG. 12 is a diagram showing example data stored in relation to a user account, including favorite video channels.
  • FIG. 13 in an example graphical user interface for watching a video, including controls for navigating the same.
  • FIG. 14 is an example graphical user interface including controls for a user to engage watching with a friend and controls for watching a favorite video.
  • Video platform providers include YouTube, Hulu and Netflix, and the like. These platforms display lists of titles, descriptions and thumbnails (e.g. poster images).
  • the user may finally decide to make an informed choice to watch a certain video.
  • the user may not be satisfied with the content.
  • the time taken by a person to discern or decide that the video being watched is not satisfactory, or is not to the user's liking, is significantly less time than the time taken to make a decision to watch the video (e.g. overcome choice paralysis).
  • the time taken to select a certain video using the existing video platforms is wasted time.
  • Many existing video platforms provide recommendation engines or algorithms to attempt to predict the videos a user would like to watch.
  • one user has a user account and the watching patterns and rating patterns are associated with the user account.
  • the recorded patterns are used to provide custom recommendations for a particular user.
  • more than one user may use the same user account.
  • a husband and a wife may use each other's user account out of convenience or for other reasons.
  • the recommendation engines or algorithms are ineffective and do not provide or suggest videos that may be desired by different users. The suggestion of videos that a user does not like or does not enjoy increases the time for a user to find a video that the user will enjoy watching.
  • recommendation engines or algorithms are also ineffective to account for multiple watching styles for different users, or even the same user.
  • a user associated with an account may have different video watching styles that vary with time and circumstance.
  • the user may wish to watch longer videos that are more intellectually or emotionally stimulating.
  • the user may wish to watch short videos for quick entertainment to pass the time.
  • the user is watching by himself or herself.
  • the user may be watching videos with a group of people and may vary the choice of video or videos based on the group of people.
  • Recommendation engines or algorithms for video platforms also are not effective in considering a user's changing preferences.
  • the psychology, emotions, interests, dislikes and preferences of a user typically fluctuate over time. It is herein recognized that a recommendation engine or algorithm cannot effectively understand or predict such changes of a user, since most engines are based on existing data and patterns. Therefore, recommendation engines and algorithms typically cannot make video recommendations quickly enough to instantly reflect the current preferences of a user.
  • the proposed systems and methods described herein improve video navigation technology and experience by letting people make video selections decision for themselves in an intuitive and quick manner.
  • the proposed systems and methods organize video data and include user interfaces to help make video selection and decision making for a user faster and easier. In this way, the systems and methods described herein facilitate a better user experience for content discovery.
  • the proposed systems and methods include user interface control that combine familiar operations of "channel surfing” (e.g. as known in more traditional television technology) with interactive controls, to enable users to “click and flip” through digital channels and content, quickly. This enables organic discovery of video content and a “lean back” viewing experience.
  • the proposed systems and methods does not include, or intentionally excludes, interfaces with scrolling menus of titles, descriptions and thumbnail images (e.g. poster art). In this way, the time spent reviewing such menus and associated information is eliminated. Furthermore, the proposed systems and methods present video content immediately, even after switching between videos, channels or categories. This presentation of videos helps a user avoid choice paralysis, and helps a user to discover new and interesting videos to watch in a quick manner.
  • the proposed systems and methods also include user interface controls that allow a first user to synchronize their video watching activity with a second user, even when the users are watching videos on their own separate devices. In this way, when the second user switches videos, the video being shown to the first user automatically switches to the same video currently being watched by the second user.
  • the second user can conveniently "follow" the first user using the user interface controls, and to conveniently disengage following the first user using the user interface controls.
  • a video herein refers to a unit of moving visual media, which may include audio media.
  • a video has a length of time, having a beginning (e.g. at 0 seconds) and an end time.
  • the videos described herein refer to digital videos. Different formats of digital videos are applicable to the principles described herein.
  • a channel herein refers to a grouping of videos under a common characteristic.
  • the common characteristic is based on semantics.
  • one channel refers to a group of videos for a particular television series, while another channel refers to another group of videos for a different television series.
  • one channel refers to a group of videos made by a particular organization, while another channel refers to another group of videos made a different organization.
  • Other ways to group videos into a channel are applicable.
  • a category herein refers to a grouping of channels, inclusive of the grouping of videos in each channel, in which the grouping of channels is based on a common characteristic. For example, channels all related to comedy are grouped under the
  • the videos are organized into a hierarchy of groups.
  • the broadest grouping is the category grouping, which includes subgroupings of channels. Within each channel are one or more videos grouped together.
  • Example user interface controls include: right arrow input for proceeding to a next video in the same channel; left arrow input for starting the current video at the beginning of the video; left arrow input subsequent to a first left arrow input to proceed to a pervious video in the same channel; up arrow input to proceed to a video in a previous channel; down arrow input to proceed to a video in a next channel; two consecutive up arrow inputs to proceed to a video in a previous category; and two down arrow inputs to proceed to a video in a next category.
  • There is also a "random input” (e.g. the keyboard key marked "r") to play a random video in any category and channel.
  • a user control allows the above controls to be flipped or reversed, such that a left arrow input is for proceeding to the next video, a right arrow input is for starting the current video at the beginning of the video, a down arrow input is for proceeding to a video in a previous channel, an up arrow input is to proceed to a video in a next channel, and so forth.
  • rules are associated with each of a left input, a right input, an up input, a down input, a double up input and a double down input. While a current video belonging to a current channel and a current category is playing, responsive to the left or right inputs, a video within the same current channel automatically begins playing.
  • the user interface controls described herein may be keyboard inputs (e.g. whether physical keyboards or virtual keyboards), or may be swipe motions for a touch sensitive interface device.
  • a right arrow input and a left arrow input are respectively a right swipe and a left swipe
  • an up arrow input and a left arrow input are respectively an up swipe and a left swipe
  • two consecutive up arrow inputs and two consecutive down arrow inputs are respective a double-finger up swipe and a double-finger down swipe.
  • the systems and methods described herein for organizing and navigating videos remove choice and remove the time spent to decide upon a choice, by playing video content immediately (or near immediately) after connecting to the video platform.
  • a video is automatically and immediately moved to a 30% position into each video, which provides immediate context of the video content to the user.
  • the 30% position refers to a point in the video's time that represents 30%.
  • 30% refers to the 18 second mark of the video.
  • the 30% position refers to the 1 minute (1 :00) mark.
  • the percentage position is between 10% and 50%.
  • an initial portion of video content is skipped over to provide the user with video content that may be of more excitement and interest to the user. It is recognized that the initial portion of the video content may be introductory in nature and may be boring or may not provide sufficient context about the content in the video.
  • the rules also called “playback time rules” are intended to automatically play the most interesting and relevant parts of the video, thereby reducing navigation time for the user.
  • the “playback time rules” are determined by several factors including: if a user has never watched a certain video before, then it automatically jumps the video to start playing at 30%; and if the user has watched the certain video before, then it automatically starts playing the video at the last time position the user left off when previously watching the certain video.
  • Another feature of the video platform described herein includes changing the video data quality when switching or surfing amongst videos.
  • the video platform provides the user's device with a lowest quality video to allow for quick viewing and to reduce the amount of data transmitted. After a few seconds of watching, it is assumed the user wishes to continue watching the video and the video quality is automatically increased to an optimal setting as permitted by the data connection speed for the user's device and corresponding data network.
  • interaction rules may be used in addition, either in combination or separately, with the above noted rules.
  • the interaction rules are stored in a database on a server of the video platform.
  • FIG. 1 an example embodiment of a system is provided for a video platform that facilitates organization and navigation of videos.
  • the video platform is executed or implemented by one or more servers 101.
  • the server 101 is in data communication with a data network (e.g. the Internet) and is able to communicate to one or more video content providers 103, 104 and one or more user devices 105, 106, 107 via the data network 102.
  • a data network e.g. the Internet
  • Video content providers 103, 104 may include one or more servers that store and provide videos.
  • Non-limiting examples of video content providers include YouTube, Netflix, Hulu and Amazon Prime.
  • the video content providers and the user devices may also be in data communication with each other via the data network 102.
  • Non-limiting examples of user devices include a desktop computer 105, a tablet device 106, and a mobile device 107.
  • Mobile devices include laptops, wearable devices, mobile phones, etc.
  • Wearable devices include, amongst other things, devices with display screens or display technology that is positioned on the head of a user (e.g. glasses or visors), as well as devices with display screens or display technology positioned on an arm, hand, wrist, leg, etc. or other body part of a person.
  • a user device may also be a display device mounted in a structure for different people to use, such as a screen mounted on the back of a chair or a screen in a public venue.
  • a user device may also be a combination of a display device (e.g.
  • a user device is a game console 1 17 connected to a display device or a set-top box 1 18 connected to a display device.
  • a set-top box is also sometimes referred to as a set-top unit.
  • a user device is in communication with, or includes: a display screen or some other display technology, an input device to allow a user to interact with the device, and a communication device to connect to the data network.
  • the system shown in FIG. 1 is an example.
  • the functions, data and capabilities of storing content and providing content also reside on the server 101 .
  • all the features described herein reside on a single user device or reside on multiple user devices that are networked together.
  • the network may be a peer-to-peer network.
  • the data network 102 is a local data network.
  • different network configurations may be applied to the systems and methods described herein.
  • the server, the video content providers and the user devices are connected to each other via wireless data communication, or via wired data communication, or a combination of both.
  • the server 101 includes one or more processors 108, a communication device 109 to interact with the network 102 and memory 1 16.
  • the memory 1 16 includes, for example, a video content database 1 10, a content module 1 1 1 , an interactions rules database 1 12, a graphical user interface (GUI) module 1 13, a user accounts database 1 14, an analytics module 1 15, a live viewing database 1 19, a friend follower module 120, and a favorites module 121 .
  • GUI graphical user interface
  • the video content database 1 10 stores data related to the videos, such as identifying information of each video and a data address of each video (e.g. a URL).
  • the videos are organized based on categories and channels.
  • the video data file is not stored on the server 101 .
  • the video content is instead stored on a video content provider 103, 104.
  • the navigation is based on how the video identifiers are organized in the database 1 10, and the actual video content is transmitted directly from a video content provider 103, 104 to a user device. In this way, video content does not need to be diverted to the server 101 and then transmitted to the user device. This saves time and reduces consumption of data resources.
  • server 101 also allows the server 101 to interact with different video content providers, while providing a uniform interface to a user on their user device.
  • the content module 1 1 1 is configured to assist a person to aggregate and curate videos, as well as to organize the videos into channels and categories.
  • the content module may also have fully automatic capabilities to automatically aggregate and curate videos, and organize video information in the video content database. For example, a content crawler may crawl the video content providers 103, 104 to pull data and analyse the same. In this way, the process of populating the video content database may require little or no manual supervision.
  • the content module 1 1 1 also facilitates a third party user, which is not an administrator, to curate content. This is desirable since other users may wish to watch content selected by the third party.
  • the interactions rules database 1 12 includes rules that dictate how videos are played and switched or transitioned, based on user input and other factors.
  • GUI module 1 13 implements the rules stored in the rules database 1 12. It also includes graphical elements and configurations of such elements (e.g. control buttons, icons, etc.). In an example embodiment, GUI module 1 13 provides a skin or video player skin that is displayed on a user device, and a video provided by a video content provider 103, 104 plays within the skin on the user device.
  • GUI module 1 13 provides a skin or video player skin that is displayed on a user device, and a video provided by a video content provider 103, 104 plays within the skin on the user device.
  • a user accounts database 1 14 is provided to store the information about a given user and to track their activities.
  • User information includes, for example, a user identifier, such as an email address, account name, IP address, etc. Tracked or recorded activities include the videos watches, the length of time watched, the length of time watched before switching to a different video or channel or category, and the surfing or switching patterns between videos or channels or categories and combinations thereof.
  • the user accounts database may also import or store a user's preference from other video platforms.
  • the user accounts database also imports and includes user information from social media platforms, including contacts or friends from the social media platforms. Non-limiting examples of social media platforms are available under the trade names Facebook, Google+, and Twitter.
  • a “friend” or “follower” herein refers to one user account that is linked to another user, such as known in social media platforms. [0073] It is appreciated however, that in a preferred example embodiment, no user account is required to use the video platform described herein.
  • a user's activity when surfing videos of switching between videos is stored locally on the user's device, such as in the user device's cache. In an example embodiment, the user's activity in only stored on the user device and nowhere else in order to maintain privacy and to reduce the amount of data being transmitted between the server and the user device.
  • the analytics module 1 15 is configured to analyse the data stored in the database 1 14 to determine patterns and behaviours.
  • the outputs from the analytics module may be used as feedback to iteratively improve the interaction rules, the GUI and the video content being aggregated or curated.
  • the outputs from the analytics module may be used for marketing and advertising purposes.
  • the live viewing activity database 1 19 includes a list of all users and their current status, such as whether or not they are currently watching a video, what video they are watching, and the current time placement within the video (e.g. 1 minute and 3 seconds in a 5 minute long video). This data is continuously updated since as videos play, the current time placement within a video will change. The data is also updated as users either go online or go offline from watching videos. Furthermore, the data is also updated as users switch from watching one video to watching a different video. The data in the database 1 19 is updated at intervals of time, or in another example, is updated in a near real-time manner.
  • the friend follower module 120 is configured to facilitate synchronization of the viewing activity between two or more users. For example, the module 120 broadcasts the information from the live viewing activity database 1 19 to user devices, so that the user devices can use this information to synchronize their viewing activity with selected user devices. The module 120 also helps to control whether or not the information from the database 1 19 is sent to certain user devices. For example, certain user information from the database 1 19 is only sent to other user devices associated with friend user accounts. The module 120 also is used to prevent information from certain users from being broadcasted to other user devices. For example, a certain user wishes to watch videos, but does not want their video activity to be followed or broadcasted to their friends. Therefore, the module 120 will selectively not broadcast the viewing activity for this certain user to other user devices. Controlling the flow of data and when the data is sent helps to reduce the amount of data being transmitted while coordinating user devices with each other.
  • the favorites module 121 manages the addition, removal and display of videos or channels that are marked as a "favorite" for the user.
  • the favorites module 121 also determines the number of videos within a favorite channel that have not yet been watched. This is desirable because a user may have a favorite channel, and new videos may be added to the favorite channel.
  • the module 121 identifies that there are new videos in the favorite channel that have not yet been watched, and notifies the user of the same.
  • a user may have accidentally skipped a video within a favorite channel, and the module 121 identifies these videos for the user to watch.
  • server 101 may include other databases and modules.
  • the data includes category information 201 , with instances of different category titles. Each category title may be associated with or mapped to a category ID, and the category ID is used to group videos (e.g. to tag videos).
  • Other data includes channel information 202, which includes instances of different channel titles, each channel title associated with a category ID. Each channel title may be associated with a channel ID, which is also associated with a category ID. It will be appreciated that multiple channel IDs may be associated with same category ID.
  • the data also includes video information 203.
  • This information includes video titles, an each title is associated with a video network address (e.g. a URL or other type of address).
  • a video network address e.g. a URL or other type of address.
  • the video network address indicates from where the video may be retrieved.
  • the network address may identify and relate to a video content provider 103, 104.
  • a user device uses the video network address to access the video provided by a video content provider 103, 104, which is played through the GUI on the user device.
  • Each video network address is associated with a channel ID and a category ID. It will be appreciated that multiple video network addresses may be associated with the same channel ID, since there are groupings of videos in the same channel.
  • sequence or order to the categories as well as a sequence or order to the channels within each category.
  • sequence or order to the videos within each channel may be identified by numeric, or alphanumeric IDs used for identifying the videos, the channels and the categories. This identification helps to organize the video data. In this way, concepts such as "next" and "previous” are able to be represented and computationally processed.
  • the user device includes one or more processor 301 , a communication device 302 for communicating with the network 102, a web browser application 303, a video application, a display device 305, an input device 306 and memory 307.
  • the input device is a physical keyboard in an example embodiment.
  • the input device is a virtual keyboard.
  • the input device is a touch sensitive screen that responds to swipes, taps, etc.
  • the input device is voice activated.
  • the input device is motion activated (e.g. using image sensors, inertial
  • the motions or gestures include up and down gestures, as well as left and right gestures.
  • the web browser 303 is used to access the server 101 and to view the videos.
  • the GUI provided by the server 101 is displayed via the web browser.
  • a video application 304 is downloaded onto the user device 108.
  • the video application is used to interact with the server 101 and to interact with the video content provider 103, 104.
  • User data related to the web browser 303 or the video application 304 is stored in memory 307.
  • the data is stored in cache
  • the data may also be stored in other forms of memory.
  • the user data that is stored and collected includes the history of videos watched
  • the data also includes the current video being watched, including the current channel and category associated with the current video 312. In association with the current video being watched, the current time within the video being watched 317 is also being tracked. This data 317 is constantly changing as the video is being played.
  • Other types of stored data include the last channel watched in a given category (or sequence of channels last watched) 313, and the last category watched (or sequence of categories last watched) 314.
  • the data further includes time tags 315 associated with videos. The time tags indicate the last time positioned played or watched by the user device.
  • the data may further include recently detected user inputs 316.
  • the data further includes a friend follower mode (e.g.
  • the cache also includes data 319 that identifies the current video and current time in the video being watched by the friend, if the friend follower mode is activated.
  • the navigation between videos is based on the rules in the interaction rules database 1 12.
  • FIGs. 4a and 4b a listing of rules are provided in response to certain user inputs.
  • a set of rules 401 may be implemented in response to detecting a left input (e.g. detecting a left arrow input, a left swipe, a left gesture, etc.). For example, in response to detecting a left input, and if the currently watched video has been watched 30% or greater, then the server causes the current video to restart from the beginning (402). In another example rule that is in response to detecting a left input, if the currently watched video has been watched less than 30%, the previous video in the current channel plays (403).
  • a left input e.g. detecting a left arrow input, a left swipe, a left gesture, etc.
  • rule 403 may depend on additional factors. For example, if the current video has been watched less than 30%, and the previous video has not been watched before, then the previous video in the same current channel is played starting the video at a 30% position (404). In another example, if the current video has been watched less than 30%, and the previous video has been watched before, then the previous video in the same current channel is played starting at the last time position viewed (405).
  • a set of rules 406 may be implemented in response to detecting a right input (e.g. detecting a right arrow input, a right swipe, a right gesture, etc.). For example, in response to detecting a right input, and if the current video has been watched 90% or greater, then the next video in the same current channel is played from the beginning (407). Otherwise, if the current video has been watched less than 90%, the next video in the current channel plays at the 30% position or some other position (408). In particular, if the current video has been watched less than 90%, and the next video has not been watched before, then the next video in the same current channel is played starting the video at the 30% position (409). Or, if the current video has been watched less than 90%, and the next video has been watched before, then the next video in the same current channel is played starting at the last time position viewed (410).
  • a right input e.g. detecting a right arrow input, a right swipe, a right gesture, etc.
  • the percentages 30% and 90% are used in the examples, other percentages may be used. For example, instead of 30%, preferably, another percentage value in the range of 10% to 50% is used. For example, instead of 90%, preferably, another percentage value in the range of 80% to 95% is used.
  • 30% jump-in for watching next videos is negated or ignored if the currently watched video has been watched 90% or more. It is herein recognized that if a user has watched 90% of a video or more, the user intends to watch the next video in the channel as part of a series and wishes to fully watch the next video. The context for the next video is not required, since the user likely understands the context of the videos in the channels and is watching them in sequence.
  • the user is not surfing through videos.
  • a right input is detected with less than 90% of the current video being watched, then it is assumed that the user is surfing through videos and desires context for the next video. Therefore, if less than 90% of the current video is watched, then the next video plays starting from the 30% position to provide context to the user.
  • the computations and operations described above provide an intuitive user experience that allows a user to quickly navigate videos in a way that reflects their intentions. No additional user inputs are required beyond the right input to activate the set of rules 406. This single input and the set of rules makes it easy for the user to navigate.
  • a set of rules 41 1 may be implemented in response to detecting an up input (e.g. detecting an up arrow input, a right swipe, a right gesture, etc.). For example, in response detecting an up input, and if a video in previous channel has been viewed, then the last viewed video in the previous channel is played (412). For example, the last viewed video in the previous channel is played starting at the last time position viewed of the last viewed video, or at the 30% time position. In another example, if no video in the previous channel has been viewed yet, then the first video in the previous channel is played starting at the 30% time position (413).
  • an up input e.g. detecting an up arrow input, a right swipe, a right gesture, etc.
  • a set of rules 414 may be implemented in response to detecting a down input (e.g. detecting a down arrow input, a down swipe, a down gesture, etc.). For example, in response to detecting a down input, and if a video in a next channel has been viewed, then the last viewed video in the next channel is played (e.g. starting at last time position viewed of the last viewed video, or at the 30% time position) (415). In another example, if no video in the next channel has been viewed, then the first video in the next channel is played starting at the 30% time position (416).
  • a down input e.g. detecting a down arrow input, a down swipe, a down gesture, etc.
  • Double up or double down inputs include either two inputs provided one after the other in quick succession (e.g. hitting the up key twice, or hitting the down key twice), or two inputs provided simultaneously (e.g. two fingers on a touch screen swiping up, or two fingers swiping down on the touch screen).
  • Other variations of double up and double down inputs may be used, and may depend on the input device.
  • a double down gesture may include two down gestures made by a user in quick succession, or may include two arms or two fingers simultaneously moved in a down gesture.
  • a set of rules 417 may be implemented in response to detecting a double up gesture. For example, in response to detecting a double up input, and if a video in a previous category has been watched, then the last viewed video in the previous category is played (e.g. starting at last time position viewed of the last viewed video, or at 30% time position) (418). The last viewed video in the category may be from any channel in the previous category. In another example, if no video in a previous category has been watched, then the first video in the first channel of the previous category is played starting at the 30% time position (419).
  • a set of rules 420 may be implemented in response to detecting a double down gesture. For example, in response to detecting a double down input, and if a video in a next category has been watched, then the last viewed video in the next category is played (e.g. starting at last time position viewed of the last viewed video, or at 30% time position) (421 ). The last viewed video in the category may be from any channel in the next category. In another example, if no video in a next category has been watched, then the first video in the first channel of the next category is played starting at the 30% time position (422).
  • a "random" input (423), which initiates playing a random video from any category and channel, starting at the 30% time position (424).
  • the random input may be detecting the input "r" on a keyboard, or any other designated input.
  • the randomization is performed using a random number generator.
  • a random number generator is used to identify a random category. Within the randomly identified category, the random number generator is used to identify a random channel. And, within the randomly identified channel, the random number generator is used to identify a random video. In this way, for example, a randomly identified video is selected and automatically played. Other approaches for identifying a random video may be used.
  • FIG. 5 shows an example embodiment of videos being organized by category and channel. For example, there is a sequence of three categories: Category A, Category B and Category C. Within Category A, there is a sequence of two channels: Channel A.1 and Channel A.2. Within Channel A.1 , there are a sequence of three videos: Video A.1.1 , Video A.1 .2 and Video A.1 .3. Similar organization applies to other videos, channels and categories in FIG. 5. It will be appreciated that the sequence or order of the categories, channels and videos has an effect on how the videos are navigated.
  • FIGs. 6a and 6b example operations are shown for navigating the videos referred to in FIG. 5.
  • a series of time tags (e.g. to, t1 , t2, t3, etc.) indicate the sequence of the operations. The exact timing, or difference in time between the time tags, may vary from one time tag to another.
  • a video A.1 .1 in channel A.1 and category A is played starting at the 30% time position.
  • the server detects that a right input has been provided at the user device, and subsequently a timestamp of the currently watched position in video A.1 .1 is stored in cache.
  • the server determines whether or not the next video in the channel (i.e. video A.1.2) has been watched, based on information stored in the user device's cache. In this example, the video A.1 .2 has not been watched. Therefore, the video A.1 .2 is played on the user device starting at the 30% time position.
  • the server detects a down input has been received at the user device, and a time stamp of the currently watched position in video A.1 .2 is recorded and stored in the user device's cache. It is also recorded in the cache that the video A.1.2 is the last video watched in channel A.1. It is noted that since a channel switching input is provided, such data is stored in the cache.
  • the server determines whether or not a video in the next channel in category A has been watched. In other words, is it determined if a video in channel A.2 has been watched. If not, as is the case at t4, then the first video A.2.1 in channel A.2 is played starting at the 30% time position.
  • the server detects a double down input from the user device while the video A.2.1 is playing.
  • the server records a time stamp of the current watched position in video A.2.1 in cache, and also records in cache that video A.2.1 is the last video watched in channel A.2 and in Category A. It is noted that since a category switching input is provided, such data is stored in the cache.
  • the server determines from the cache whether or not a video in the next category (i.e. Category B) has been watched. In this case, no video in Category B has been watched. Therefore, the first video in the first channel of Category B is played starting at the 30% time position (i.e. video B.1 .1 ).
  • the server detects a right input from the user device and records the time stamp of the currently playing video B.1 .1 and stores the time stamp in the cache.
  • the time stamp of video B.1 .1 indicates, in this example, that less than 90% of the video has been played.
  • the next video in the channel B.1 i.e. video B.1 .2 begins playing starting at the 30% time position.
  • the server detects a right input from the user device.
  • the server detects and marks that at least 90% of video B.1 .2 has been watched, and stores this information in cache. Therefore, at t10, the next video in the channel B.1 (i.e. video B.1 .3) starts at the 0% time position, also referred to as the beginning of the video.
  • the server detects a left input from the user device.
  • a time stamp indicating the current time watched in video B.1 .3 is saved in the cache.
  • the server determines if the previous video B.1 .2 in the same channel has been watched and, if so, to what time. This determination is made by reviewing the data in the cache of the user device. In this example scenario, video B.1 .2 has been watched. Therefore, the video B.1 .2 is played starting from the time stamp indicating the last time position of the video that was watched.
  • the server determines if video B.1 .4 was watched. In this case, video B.1 .4 was not watched, and the current video B.1 .3 was watched less than 90%. Therefore, the video B.1 .4 is started at the 30% mark.
  • the server detects a double up input.
  • the time stamp of the last watched position is stored in cache, along with a tag indicating that video B.1 .4 is the last video watched in channel B.1 and in Category B.
  • the server uses the information stored in the user device's cache to determine if there is a last watched video in Category A.
  • video A.2.1 is the last watched video in Category A and therefore this video is played.
  • video A.2.1 is played starting from the time stamp last watched, or in another example, starting at the 30% time position.
  • video A.2.1 is playing, the server detects a right input. The server detects that at least 90% of video A.2.1 has been watched. Therefore, at t19, the next video in the same channel (i.e. video A.2.2) is played starting at the 0% time position.
  • the server detects that a random input has been received by the user device.
  • the time stamp for the video A.2.2 is recorded in the cache.
  • a tag may be stored indicating that the video A.2.2 is the last video watched in the channel A.2 and the Category A.
  • the server randomly finds a video from any channel and category. For example, the server randomly selects video C.1 .3 from Category C, channel C.1 . Video C.1.3 is played starting at 30%.
  • the server determines if a video was previously played in channel B.3. In this case, no video in channel B.3 has been played. Therefore, the first video B.3.1 in the channel B.3 is played starting at the 30% time position.
  • the server determines if there is a video has been previously played in channel B.2. If not, as is the case in this example scenario, then the first video B.2.1 in channel B.2 is played starting at the 30% time position. [00125] At t26, the server detects an up input is received at the user device, indicating a desire to switch to the previous channel. The time stamp of video B.2.1 is stored in cache as well as a tag indicating that this video is the last video watched in the channel B.2.
  • the server determines from the cache of the user device if there is a video previously watched in channel B.1 .
  • the video B.1.4 is the most recently watched video in the channel B.1 and, therefore, the video B.1 .4 is played.
  • the video B.1 .4 is played starting from the time stamp associated with the video, or starting from the 30% time position.
  • FIG. 7 an example GUI 700 is shown. Every time a new video starts to play, for an initial few seconds, information 710 about the video is displayed and then disappears.
  • the information about the video includes the video title, the channel title, or the category title, or combinations thereof.
  • the original source of the video may also be included.
  • Other types of information, such as the number of views by others may also be included in this information.
  • the GUI may also show instructions 701 for navigating the videos.
  • a graphical log-in control 702 is included. When selected, a user can sign into their user account for additional features. However, such an operation is not required to use the video platform described herein, according to an example embodiment.
  • Other graphical user controls include a channel list control 703, a random input control 704, a pause and play control 705, a time slider bar control 706, a full-screen mode control 707 and an instructions control 707.
  • Selecting control 703 invokes the display of a list of channels.
  • Selecting control 704 is considered providing a "random input”.
  • Selecting control 708 invokes the display of the instructions 701.
  • Another graphical user control 709 is provided and, when selected, invokes the display of the original source of the video currently being played. For example, if the original source of the data is from YouTube, then the original YouTube video page is displayed instead.
  • FIG. 8 is an example GUI of the list of channels, which is displayed in response to detecting the selection of control 703 or another similar input.
  • the list of channels are organized by the categories, for example Web Series, Music and Comedy.
  • the channels may be selected by clicking on a given channel title.
  • the GUIs may be provided by the server, for example, in a web browser implementation on a user device. In another example embodiment using a video application stored locally on a user device, the GUIs may be stored on the user device.
  • the data includes the following associated information: user, status of the user, video ID of the video currently being watched by the user, channel ID associated with the video, category ID associated with the video and current time placement in video.
  • This information is dynamic and is updated on a periodic basis or a near real-time basis to reflect the current watching activity of each user.
  • User A has a "not active" status, which may be because User A is not watching any video, or is watching video but is not logged into his or her user account.
  • the other information for User A is nil or not applicable since User A has a non-active status.
  • User D is following User B, so that whatever video and video time position currently viewed by User B is automatically displayed on the device of User D.
  • User E is following User D, so that whatever video and video time position currently viewed by User D is automatically displayed on the device of User E.
  • This forms a chain effect, so that a change made in the viewing by User B is cascaded to User D and then to User E.
  • User E's time placement is not identical to User D, though it is roughly the same. There may be some lag, which is eliminated when the playing of the videos is resynchronized at periodic intervals.
  • User B's device initiates watching or playing one or more videos (block 1001 ), which is ongoing and continuous in this example.
  • the information regarding what video is being watched and the current playing position within the video is sent to the server, and the server uses this information to update the live viewing activity database to reflect User B's live viewing activity (block 1002).
  • This continuous and ongoing live updating with respect to User B's activities affects blocks 1008 and blocks 101 1 , as shown by dotted lines 1013 and 1012.
  • User D's device sends a request to the server to view friends of User D (block 1003). Responsive to this request, the server triggers the display of User D's friends and related information, such as the presence status of User D's friends and an identifier of the video each friend may be watching (block 1004).
  • the identifier may be the title of the video, the channel of the video, or the category of the video.
  • User D's device displays this information (block 1005).
  • User D's device receives an input, such as from User D, to watch the same content as User B, who is one of User D's friends who has an online or active status (block 1006). In an example embodiment, User D's device will store within its cache 309 that User B is to be followed. In response to this input, User D's device sends a request to the server to obtain data from the live viewing activity database (block 1007). Responsive to this request, the server broadcasts information from the live viewing activity database (block 1008). User D's device receives this broadcasted information (block 1009) and User D's device specifically uses the live viewing activity information about User B to synchronize User D's displayed video content to match User B's currently displayed video content (block 101 1 ).
  • an input such as from User D
  • User D's device will store within its cache 309 that User B is to be followed.
  • User D's device sends a request to the server to obtain data from the live viewing activity database (block 1007). Responsive to this request
  • the same video currently being played at User B's device is played at User D's device, and this same video shown at User D's device is played at a point in time that is approximately the same as the present point in time in the video being played at User B's device.
  • the viewing activity of User D is sent to the server to update the live viewing activity database with respect to User D.
  • any later changes to User B's viewing activity is sent by the server to User D's device (block 101 1 ), so that the operations in blocks 1009 and 1010 are repeated. In other words, the process between 1009, 1010 and 101 1 may be looped.
  • User D's device receives the broadcasted message or information from the server, which includes live viewing activity from multiple users.
  • User D's device generates a query using the data stored in its cache identifying User B, and uses the query to search for only the live viewing activity related to User B.
  • the server is able to perform less user-centric computations.
  • the server periodically sends single broadcasts, which is efficient for the server and effectively coordinates potentially thousands of follower viewer relationships amongst many different user devices.
  • the server broadcasts information (block 101 1 ) at periodic time intervals in order to reduce or avoid constant re-buffering at User D's device.
  • the user device every time a user device receives information about a friend's viewing activity while in follower mode, the user device will need to re-synchronize the currently viewed video to match their friend's viewing activity. This includes re-buffering the video content on the user device, which may cause delay and may noticeably disrupt the viewing experience.
  • the re- buffering on the user device occurs periodically and is typically not noticeable to the user.
  • the periodic time interval is approximately 10 seconds. However, other time intervals may be used.
  • the server broadcast information (block 101 1 ) very frequently and at near real-time frequency.
  • example executable instructions are provided showing the following interaction between user devices belonging to User B, User D and User E.
  • User D is following User B
  • User E is following User D, which forms a chained relationship where User B is the primary leader.
  • This example shows a series of operations, but some of the operations can occur independent of the other operations.
  • the server 101 updates the live viewing activity database from data obtained from the user devices, and broadcasts this information to the user devices. This operation is performed by the server in an ongoing and continuous manner. In other words, the server interacts with each of the user devices in an ongoing manner.
  • User B's device displays video 1 at some time ti . Meanwhile, or afterward, User D's device displays that User B is active (block 1 103) and receives an input, such as User D's input, to watch the same content as User B (block 1 104).
  • User D's device obtains data from the server identifying User B's current viewing activity (block 1 105). Using this obtained information, User D's device displays video 1 at the time t 2 (block 1 106), which is the same current time of video 1 being played on User B's device (1 107).
  • User E's device displays that User D is active or online (block 1 108) and User E's device receives an input, such as from User E, to watch the same video content being played by User D (block 1 109).
  • User E's device obtains data from the server identifying User D's current viewing activity (block 1 1 10).
  • User B's device is playing video 1 at time t 3 (block 1 1 1 1 ), and consequently User D's video device is playing video 1 at time t 3 (block 1 1 12). Therefore, using the obtained information about User D from block 1 1 10, User E's device also displays video 1 at time t 3 (block 1 1 13).
  • User B's device switches to displaying video 2 and plays this video at a time ti in the video (block 1 1 14). This information is updated at the server and
  • User D's device receives one or more inputs to stop following User B and to start watching a different video, called video 3 in this example.
  • User D's device receives an input to simply switch to displaying another video while currently being in a follower mode. Responsive to such an input, User D's device displays a confirmation notice (e.g. a pop up message) indicating, for example: "You are currently following User B. Do you wish to watch a different video and stop following User B?" (block 1 1 18) If User D selects yes, then video 3 is displayed at a time ti in the video, and the follower mode to User B is deactivated.
  • a confirmation notice e.g. a pop up message
  • switching the video automatically deactivates the follower mode.
  • switching the video does not deactivate the follower mode, and User D's device simply resynchronizes to User B's devices within a period of time (e.g. at the next time interval that the server broadcasts live viewing activity data).
  • the user will need to first deactivate the follower mode and then switch videos for the video 3 to continue playing. It will be appreciated that there are several approaches to switching videos and deactivating the follower mode.
  • User D's device After block 1 1 17, User D's device is no longer in a follower mode and it displays video 3 at a time ⁇ in the video. Consequently, User E's device, which is following User D's device, automatically switches to video 3 and displays video 3 at the time ti in the video.
  • FIG. 12 an example portion of data that is stored in the user accounts database 1 14 is shown.
  • the data includes an entry 1201 identifying User Account A. Associated with the entry 1201 are information identifying one or more social media accounts of User A 1202, bookmarks or folders identifying videos or channels tagged by User A 1203, and favorite channels 1205.
  • channel identifiers Associated with the data entry of the favorite channels are channel identifiers, and the videos within the channel. Each video within the channel is also marked as “watched” or “not watched”. For example, in Channel A.1 , videos A.1 .1 and A.1.2 have been watched, but videos A.1 .3 has not been watched. In Channel B.1 , videos B.1 .1 and B.1.3 have not been watched, while Video B.1 .2 has been watched. This information is used to track and show to User A which videos in his or her favorite channels have not yet been watched. For example, new videos may have been recently added to User A's favorite channels or User A may have accidentally skipped watching some videos. In this way, User A can conveniently identify and watch videos in his or her favorite channels that have not yet been watched.
  • FIG. 13 an example GUI 1301 for playing video is provided, which shows the title of the category 1302, the title of the channel 1303 and a control 1304 for indicating whether this channel is a user's favorite or not.
  • the user can select this control to mark the channel as favorite, or to unmark the channel as a favorite.
  • a graphical control pad 1305 is also displayed. It includes an up arrow 1306 and a down arrow 1307 for changing between categories; an up arrow 1312 and a down arrow 131 1 for changing between channels; and a left arrow 1308 and a right arrow 1309 for changing between videos. There is also a shuffle button 1312 for randomly selecting and playing a video.
  • GUI 1400 is shown for watching the same video content as one of the friends and for selecting a favorites channel.
  • [00161] there is a discovery control 1401 and a genres control 1402, which both display a list of categories and channels within each category, like as shown in FIG. 8.
  • the categories shown in response to selecting control 1401 are more esoteric and promote unconventional categories, while the categories shown in response to selecting control 1402 are more conventional.
  • Selecting the favorites control 1403 displays the favorites GUI component 1408.
  • Selecting the friends control 1404 displays the friends GUI component 1406.
  • a search bar 1405 is also included, allowing a user to input a search term to launch a search operation for video content.
  • the friends GUI component 1406 includes a list of users which are linked to (e.g. friends with) the subject user. The names of the friends can be selected. Responsive to receiving a friend selection, the device of the subject user automatically displays the content currently being watched by the selected friend. Another control 1407 prompts the subject user to connect their video user account with a social media account, which will import additional friends into the server's database.
  • the favorites GUI component 1408 includes a favorites feed control 1409 and a number 1410 shown in association with the same.
  • the number 1410 indicates the total number of unwatched videos that are within all of the subject user's favorited channels. In this way, the subject user can see if there any unwatched videos.
  • the titles of the unwatched videos are displayed in relation to the control 1409.
  • selecting the control 1409 begins playing in sequence a collection of videos in the favorited channels that have not yet been watched, even if the videos are from different favorited channels. This conveniently compiles the unwatched videos together for the subject user's viewing convenience.
  • buttons 141 1 , 1412, 1413 Other titles of favorited channels are shown in the controls 141 1 , 1412, 1413.
  • selecting one of these controls initiates playing one or more unwatched videos within the selected favorited channel.
  • selecting one of these controls initiates playing the last watched video within the selected favorited channel, or the video right after the last watched video within the selected favorited channel.
  • any module or component exemplified herein that executes instructions or operations may include or otherwise have access to computer readable media such as storage media, computer storage media, or data storage devices (removable and/or non-removable) such as, for example, magnetic disks, optical disks, or tape.
  • Computer storage media may include volatile and non-volatile, removable and nonremovable media implemented in any method or technology for storage of information, such as computer readable instructions, data structures, program modules, or other data, except transitory propagating signals per se.
  • Examples of computer storage media include RAM, ROM, EEPROM, flash memory or other memory technology, CD-ROM, digital versatile disks (DVD) or other optical storage, magnetic cassettes, magnetic tape, magnetic disk storage or other magnetic storage devices, or any other medium which can be used to store the desired information and which can be accessed by an application, module, or both. Any such computer storage media may be part of the server 101 , the user device, the video content providers, or accessible or connectable thereto. Any application or module herein described may be implemented using computer readable/executable instructions or operations that may be stored or otherwise held by such computer readable media.
  • GUIs and graphical controls and components shown and described herein are just for example. There may be many variations to these GUIs without departing from the principles described herein. For instance, the graphical elements may be positioned in differing positions, may have different shapes, or graphical elements may be added, deleted, or modified. It will also be appreciated that the GUIs or screenshots include visual features that are appealing to the eye and the applicant reserves the right to pursue protection for these visual features in any one or more of a design application, a trademark application, and a copyright application.

Landscapes

  • Engineering & Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Human Computer Interaction (AREA)
  • Computing Systems (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)

Abstract

Systems and methods are provided to organize videos and to quickly and intuitively navigate these videos. Systems and methods are also provided to synchronize viewing activity between multiple devices. An example method includes displaying a list of one or more users that are currently watching videos and receiving an input selecting one user of the one or more users associated with one or more other computing devices. The computing device obtains a message broadcast comprising video identification information and a current point in time in the video being watched by the selected user. The computing device then displays the same video currently being watched by the selected user, starting at a point in time in the video that is approximately the same as the current point in time in the video obtained from the message broadcast..

Description

SYSTEMS AND METHODS FOR ORGANIZING AND NAVIGATING VIDEOS
BETWEEN MULTIPLE DEVICES
CROSS-REFERENCE TO RELATED APPLICATIONS:
[0001] This application claims priority from United States Provisional Application No. 62/216,026 filed on September 9, 2015 and titled "Systems and Methods for Organizing and Navigating Videos Between Multiple Devices", and United States Provisional Application No. 62/140,759 filed on March 31 , 2015 and titled "Systems and Methods For Organizing and Navigating Videos", the contents of which are hereby incorporated by reference in their entirety.
TECHNICAL FIELD
[0002] The following invention or inventions generally relates to organizing and navigating videos.
DESCRIPTION OF THE RELATED ART
[0003] Videos may be viewed by traditional interfaces, like television, cable television and satellite television. Videos may also be viewed using the Internet. Examples of Internet- based video platforms include the trade names YouTube, Netflix and Hulu. A television guide may be used to show a listing of channels and times of shows, and a user is able to navigate through the listing to select a specific channel for viewing. For Internet-based video platforms, categories of videos are listed, and videos are listed by showing a title, description and an image. A user reads the information being listed and may scroll through the listings, and makes a choice based on the provided information to make a video selection. The video selection starts the playing of the video.
[0004] Some Internet-based video platforms use recommendation algorithms to track user selections and to suggest videos for the user to watch, by displaying these videos in a listing. The user reviews the listing and the information related to the suggested videos. From the listing, the user selects a video to watch.
SUMMARY
[0005] Non-limiting example embodiments of systems and methods for organizing and navigating videos are provided in this summary section. Other example embodiments and aspects of the systems and methods are described in the detailed description or are illustrated in the figures, or both. [0006] In an example embodiment, a method performed by a computing device is provided to navigate videos amongst multiple computing devices. The method includes: displaying a list of one or more users that are currently watching videos and receiving an input selecting one user of the one or more users associated with one or more other computing devices; obtaining a message broadcast comprising video identification information and a current point in time in the video being watched by the selected user; and displaying the same video currently being watched by the selected user, starting at a point in time in the video that is approximately the same as the current point in time in the video obtained from the message broadcast.
[0007] In an example aspect of the method, responsive to receiving the input, the method further includes storing in a cache an identifier of the selected user. The message broadcast includes video identification and current viewing activity of multiple users, and after obtaining the message broadcast, the method further includes using the identifier stored in the cache to search for the video identification information and the current point in time in the video being watched by the selected user.
[0008] In another example aspect, the message broadcast is obtained by the computing device at periodic time intervals.
[0009] In another example aspect, the message broadcast is obtained by the computing device at periodic time intervals of approximately 10 seconds.
[0010] In another example aspect, the message broadcast includes a listing of users, their respective online status, their respective category being currently watched, their respective channel within the category being currently watched, their respective video being currently watched, and their respective point in time in the video currently being watched.
[0011] In another example aspect, the method further includes the computing device obtaining a subsequent message broadcast comprising new video identification information of a new video and a new current point in time in the new video being watched by the selected user; and responsive to receiving the subsequent message broadcast,
automatically displaying the new video currently being watched by the selected user, starting at a point in time in the new video that is the same as the new current point in time in the new video obtained from the subsequent message broadcast.
[0012] In another example embodiment, a method performed by a server system is provided for coordinating video viewing amongst multiple devices. The method includes: receiving video identification information of a first video and a point in time in the first video currently being watched by a first user, and storing the same in a live viewing activity database; sending a message broadcast to at least a second device, the message broadcast comprising the video identification information of the first video and the point in time in the first video currently being watched by the first user; and receiving video identification information of the first video and a point in time in the first video currently being watched by the second user, and storing the same in the live viewing activity database, wherein the point in time in the first video currently being watched by the second user is approximately the same as the point in time in the first video currently being watched by the first user.
[0013] In an example embodiment, a method performed by a computing system to navigate videos, is provided. The method includes: providing a sequence of videos organized within one or more sequence of channels, the one or more sequence of channels organized within one more sequence of categories; and storing one or more rules associated with each of a left input, a right input, an up input, a down input, a double up input and a double down input. Furthermore, the method includes: when playing a current video and detecting the left input, starting to play a previous video in a same channel as the current video; when playing the current video and detecting the right input, starting to play a next video in the same channel as the current video; when playing the current video and detecting the up input, playing a new video in a previous channel compared to the channel of the current video; when playing the current video and detecting the down input, playing a new video in a next channel compared to the channel of the current video; when playing the current video and detecting the double up input, playing a new video in a previous category compared to a category of the current video; and when playing the current video and detecting the double down input, playing a new video in a next category compared to the category of the current video.
[0014] In another example embodiment, a computing system is provided and is configured to organize and navigate videos. The computing system includes: a processor; a communication device; a memory comprising video information in which a sequence of videos are organized within one or more sequence of channels, the one or more sequence of channels are organized within one more sequence of categories; and the memory further comprising one or more rules associated with each of a left input, a right input, an up input, a down input, a double up input and a double down input. The processor is configured to at least: when playing a current video and detecting the left input, invoke playing a previous video in a same channel as the current video; when playing the current video and detecting the right input, invoke playing a next video in the same channel as the current video; when playing the current video and detecting the up input, invoke playing a new video in a previous channel compared to the channel of the current video; when playing the current video and detecting the down input, invoke playing a new video in a next channel compared to the channel of the current video; when playing the current video and detecting the double up input, invoke playing a new video in a previous category compared to a category of the current video; and when playing the current video and detecting the double down input, invoke playing a new video in a next category compared to the category of the current video.
[0015] In another example embodiment, a method performed by a computing system to navigate videos, is provided. The method includes providing a sequence of videos and storing one or more rules associated with a navigation input. The method further includes: when playing a current video and detecting the navigation input, determining if at least a first certain amount of time of the current video has been watched; if not, then automatically starting to play a next video in the sequence of videos starting at a second certain amount of time; and otherwise, automatically starting to play the next video starting at the beginning of the next video.
[0016] In an example aspect of the method to navigate videos, the first certain amount of time is computed as a percentage of an entire length of the current video. For example, the percentage is approximately 90%.
[0017] In an example aspect of the method to navigate videos, the second certain amount of time is computed as a percentage of an entire length of the next video. For example, the percentage is approximately 30%.
BRIEF DESCRIPTION OF THE DRAWINGS
[0018] Embodiments of the invention or inventions are described, by way of example only, with reference to the appended drawings wherein:
[0019] FIG. 1 is a system diagram showing example components and devices used to organize and navigate videos.
[0020] FIG. 2 is a diagram showing example data stored in a video content database.
[0021] FIG. 3 is a diagram showing example components of a user device, and example data stored on the user device.
[0022] FIGs. 4a and 4b is a diagram showing example data and rules stored in an interaction rules database. [0023] FIG. 5 is a diagram showing an example organization of videos by categories and channels.
[0024] FIGs. 6a and 6b is a flow diagram showing an example series of operations for navigating videos.
[0025] FIG. 7 is an example graphical user interface, including instructions for navigating videos.
[0026] FIG. 8 is an example graphical user interface showing categories and selectable channels.
[0027] FIG. 9 is an example of data in a live viewing activity database.
[0028] FIG. 10 is a flow diagram showing an example of processor implemented or computer executable instructions for one user synchronizing their viewing activity with another user.
[0029] FIG. 1 1 is a flow diagram showing an example of processor implemented or computer executable instructions for users synchronizing their viewing activity with each other in a chained manner.
[0030] FIG. 12 is a diagram showing example data stored in relation to a user account, including favorite video channels.
[0031] FIG. 13 in an example graphical user interface for watching a video, including controls for navigating the same.
[0032] FIG. 14 is an example graphical user interface including controls for a user to engage watching with a friend and controls for watching a favorite video.
DETAILED DESCRIPTION
[0033] It will be appreciated that for simplicity and clarity of illustration, in some cases, reference numerals may be repeated among the figures to indicate corresponding or analogous elements. In addition, some details or features are set forth to provide a thorough understanding of the embodiments described herein. However, it will be understood by those of ordinary skill in the art that the embodiments described herein are illustrative examples that may be practiced without these details or features. In other instances, well- known methods, procedures and components have not been described in detail so as not to obscure the invention illustrated in the examples described herein. Also, the description is not to be considered as limiting the scope of the example embodiments described herein or illustrated in the drawings.
[0034] The number of videos is increasing rapidly, in part due to the Internet and related technologies. Companies, organizations and individuals are able to more quickly create and publish videos for others to watch. Video platform providers include YouTube, Hulu and Netflix, and the like. These platforms display lists of titles, descriptions and thumbnails (e.g. poster images).
[0035] It is herein recognized that user may spend a long time deciding what video to watch using these existing platforms. For example, the user will scroll through the lists and read titles, description and possibly user reviews and ratings. The user may also review and consider the poster images associated with a video. Reviewing each set of information takes time. It is possible that a user may have difficulty making a choice regarding what video to watch, because of all the information to consider. This condition is herein referred to as "choice paralysis".
[0036] After a considerable amount of time spent scrolling or navigating through menus and reviewing different types of information about different videos, the user may finally decide to make an informed choice to watch a certain video. When the user actually begins watching the selected video, the user may not be satisfied with the content. It is herein recognized, that the time taken by a person to discern or decide that the video being watched is not satisfactory, or is not to the user's liking, is significantly less time than the time taken to make a decision to watch the video (e.g. overcome choice paralysis). In other words, it is herein recognized that the time taken to select a certain video using the existing video platforms is wasted time.
[0037] Many existing video platforms provide recommendation engines or algorithms to attempt to predict the videos a user would like to watch. Typically, one user has a user account and the watching patterns and rating patterns are associated with the user account. For example, a husband may have one user account and a wife may have another user account. The recorded patterns are used to provide custom recommendations for a particular user. However, it is herein recognized that more than one user may use the same user account. For example, a husband and a wife may use each other's user account out of convenience or for other reasons. In such situations, the recommendation engines or algorithms are ineffective and do not provide or suggest videos that may be desired by different users. The suggestion of videos that a user does not like or does not enjoy increases the time for a user to find a video that the user will enjoy watching.
[0038] Furthermore, it is herein recognized that recommendation engines or algorithms are also ineffective to account for multiple watching styles for different users, or even the same user. For example, a user associated with an account may have different video watching styles that vary with time and circumstance. On some days, the user may wish to watch longer videos that are more intellectually or emotionally stimulating. On other days or other times, the user may wish to watch short videos for quick entertainment to pass the time. In some situations, the user is watching by himself or herself. In other situations, the user may be watching videos with a group of people and may vary the choice of video or videos based on the group of people.
[0039] Recommendation engines or algorithms for video platforms also are not effective in considering a user's changing preferences. The psychology, emotions, interests, dislikes and preferences of a user typically fluctuate over time. It is herein recognized that a recommendation engine or algorithm cannot effectively understand or predict such changes of a user, since most engines are based on existing data and patterns. Therefore, recommendation engines and algorithms typically cannot make video recommendations quickly enough to instantly reflect the current preferences of a user.
[0040] It is also herein recognized that when a user does not know what to watch, the user is preferential to allowing another person choose for them what to watch. For example a user may wish to watch the same video that a friend is watching, and is happy to let the friend choose what videos to watch. It is recognized that conveniently coordinating watching activity between multiple users and conveniently disengaging coordination using typical video platforms is not possible in many cases, or is difficult. For example, users will call or message each other to schedule when to watch the same video and each user will try to hit "play" at the same time in order to watch the same video in a synchronized manner. In general, other methods to coordinate video watching can be cumbersome, inconvenient and prone to inaccuracy. Furthermore, coordinating video watching while reducing the amount of data flow amongst devices is also difficult.
[0041] Therefore, the proposed systems and methods described herein improve video navigation technology and experience by letting people make video selections decision for themselves in an intuitive and quick manner. In particular, the proposed systems and methods organize video data and include user interfaces to help make video selection and decision making for a user faster and easier. In this way, the systems and methods described herein facilitate a better user experience for content discovery.
[0042] The proposed systems and methods include user interface control that combine familiar operations of "channel surfing" (e.g. as known in more traditional television technology) with interactive controls, to enable users to "click and flip" through digital channels and content, quickly. This enables organic discovery of video content and a "lean back" viewing experience.
[0043] In an example embodiment, the proposed systems and methods does not include, or intentionally excludes, interfaces with scrolling menus of titles, descriptions and thumbnail images (e.g. poster art). In this way, the time spent reviewing such menus and associated information is eliminated. Furthermore, the proposed systems and methods present video content immediately, even after switching between videos, channels or categories. This presentation of videos helps a user avoid choice paralysis, and helps a user to discover new and interesting videos to watch in a quick manner.
[0044] In particular, if a user does not like a certain video, the user can quickly and seamlessly switch to another video within a series, to another video is a different series, or to another video in a different category. If the user does like a certain video, then the user simply keeps watching the certain video.
[0045] The proposed systems and methods also include user interface controls that allow a first user to synchronize their video watching activity with a second user, even when the users are watching videos on their own separate devices. In this way, when the second user switches videos, the video being shown to the first user automatically switches to the same video currently being watched by the second user. The second user can conveniently "follow" the first user using the user interface controls, and to conveniently disengage following the first user using the user interface controls.
[0046] A video herein refers to a unit of moving visual media, which may include audio media. A video has a length of time, having a beginning (e.g. at 0 seconds) and an end time. The videos described herein refer to digital videos. Different formats of digital videos are applicable to the principles described herein.
[0047] A channel herein refers to a grouping of videos under a common characteristic. In an example embodiment, the common characteristic is based on semantics. For example, one channel refers to a group of videos for a particular television series, while another channel refers to another group of videos for a different television series. In another example, one channel refers to a group of videos made by a particular organization, while another channel refers to another group of videos made a different organization. Other ways to group videos into a channel are applicable.
[0048] A category herein refers to a grouping of channels, inclusive of the grouping of videos in each channel, in which the grouping of channels is based on a common characteristic. For example, channels all related to comedy are grouped under the
"Comedy" category. In another example, channels all related to web series (e.g. video series made intentionally for the Internet) are grouped under the "Web Series" category. Other categories are applicable.
[0049] In the systems and methods described herein, the videos are organized into a hierarchy of groups. The broadest grouping is the category grouping, which includes subgroupings of channels. Within each channel are one or more videos grouped together.
[0050] Example user interface controls include: right arrow input for proceeding to a next video in the same channel; left arrow input for starting the current video at the beginning of the video; left arrow input subsequent to a first left arrow input to proceed to a pervious video in the same channel; up arrow input to proceed to a video in a previous channel; down arrow input to proceed to a video in a next channel; two consecutive up arrow inputs to proceed to a video in a previous category; and two down arrow inputs to proceed to a video in a next category. There is also a "random input" (e.g. the keyboard key marked "r") to play a random video in any category and channel.
[0051] It will be appreciated that a user control allows the above controls to be flipped or reversed, such that a left arrow input is for proceeding to the next video, a right arrow input is for starting the current video at the beginning of the video, a down arrow input is for proceeding to a video in a previous channel, an up arrow input is to proceed to a video in a next channel, and so forth.
[0052] More generally, rules are associated with each of a left input, a right input, an up input, a down input, a double up input and a double down input. While a current video belonging to a current channel and a current category is playing, responsive to the left or right inputs, a video within the same current channel automatically begins playing.
Responsive to up or down inputs, a video belonging to a different channel automatically begins playing. Responsive to double up or double down inputs, a video belonging to a different category automatically begins playing. [0053] The user interface controls described herein may be keyboard inputs (e.g. whether physical keyboards or virtual keyboards), or may be swipe motions for a touch sensitive interface device. For example, a right arrow input and a left arrow input are respectively a right swipe and a left swipe; an up arrow input and a left arrow input are respectively an up swipe and a left swipe; and two consecutive up arrow inputs and two consecutive down arrow inputs are respective a double-finger up swipe and a double-finger down swipe.
[0054] The combination of interaction between the user interface controls and the organization of the videos provides for quick and intuitive video navigation.
[0055] The systems and methods described herein for organizing and navigating videos remove choice and remove the time spent to decide upon a choice, by playing video content immediately (or near immediately) after connecting to the video platform.
[0056] Furthermore, when navigating to different videos, a video is automatically and immediately moved to a 30% position into each video, which provides immediate context of the video content to the user. In particular, the 30% position refers to a point in the video's time that represents 30%. For example, in a 60 second long video, 30% refers to the 18 second mark of the video. In another example, in a video that is 3 minutes and 20 second (3:20) long, the 30% position refers to the 1 minute (1 :00) mark. It will be appreciated that 30% is only an example and other percentages may be used. Preferably, although not necessarily, the percentage position is between 10% and 50%. In other words, an initial portion of video content is skipped over to provide the user with video content that may be of more excitement and interest to the user. It is recognized that the initial portion of the video content may be introductory in nature and may be boring or may not provide sufficient context about the content in the video.
[0057] Other features of the proposed video platform described herein include
implementing rules that determine the positioning time (or percentage) in a video based on a user's viewing history. The rules, also called "playback time rules" are intended to automatically play the most interesting and relevant parts of the video, thereby reducing navigation time for the user. The "playback time rules" are determined by several factors including: if a user has never watched a certain video before, then it automatically jumps the video to start playing at 30%; and if the user has watched the certain video before, then it automatically starts playing the video at the last time position the user left off when previously watching the certain video. [0058] Another feature of the video platform described herein includes changing the video data quality when switching or surfing amongst videos. For example, when a user provides an input to switch videos (or switch channels or categories), the video platform provides the user's device with a lowest quality video to allow for quick viewing and to reduce the amount of data transmitted. After a few seconds of watching, it is assumed the user wishes to continue watching the video and the video quality is automatically increased to an optimal setting as permitted by the data connection speed for the user's device and corresponding data network.
[0059] In another scenario, if a video is played starting from the beginning (e.g. at or near 0 seconds), then the video is automatically streamed at an optimal quality setting as permitted by the data connection speed for the user's device and corresponding data network.
[0060] Other interaction rules may be used in addition, either in combination or separately, with the above noted rules. The interaction rules are stored in a database on a server of the video platform.
[0061] Turning to FIG. 1 , an example embodiment of a system is provided for a video platform that facilitates organization and navigation of videos. The video platform is executed or implemented by one or more servers 101. The server 101 is in data communication with a data network (e.g. the Internet) and is able to communicate to one or more video content providers 103, 104 and one or more user devices 105, 106, 107 via the data network 102.
[0062] Video content providers 103, 104 may include one or more servers that store and provide videos. Non-limiting examples of video content providers include YouTube, Netflix, Hulu and Amazon Prime. The video content providers and the user devices may also be in data communication with each other via the data network 102.
[0063] Non-limiting examples of user devices include a desktop computer 105, a tablet device 106, and a mobile device 107. Mobile devices include laptops, wearable devices, mobile phones, etc. Wearable devices include, amongst other things, devices with display screens or display technology that is positioned on the head of a user (e.g. glasses or visors), as well as devices with display screens or display technology positioned on an arm, hand, wrist, leg, etc. or other body part of a person. A user device may also be a display device mounted in a structure for different people to use, such as a screen mounted on the back of a chair or a screen in a public venue. A user device may also be a combination of a display device (e.g. a television screen, media projector, or other display technology) that is in communication with a controller device that is configured to receive user input. In another example embodiment, a user device is a game console 1 17 connected to a display device or a set-top box 1 18 connected to a display device. A set-top box is also sometimes referred to as a set-top unit.
[0064] Generally, a user device is in communication with, or includes: a display screen or some other display technology, an input device to allow a user to interact with the device, and a communication device to connect to the data network.
[0065] It will be appreciated that the system shown in FIG. 1 is an example. In another example embodiment, not shown, the functions, data and capabilities of storing content and providing content also reside on the server 101 . In another example embodiment, all the features described herein reside on a single user device or reside on multiple user devices that are networked together. In the example where multiple user devices are networked together to share video data, the network may be a peer-to-peer network.
[0066] In an example embodiment, the data network 102 is a local data network. In general, different network configurations may be applied to the systems and methods described herein. In an example embodiment, the server, the video content providers and the user devices are connected to each other via wireless data communication, or via wired data communication, or a combination of both.
[0067] For the purposes of readability, the server 101 will be referred to as a singular instance, but other example embodiments include multiple servers working together to provide the capabilities described herein. Continuing with FIG. 1 , the server 101 includes one or more processors 108, a communication device 109 to interact with the network 102 and memory 1 16. The memory 1 16 includes, for example, a video content database 1 10, a content module 1 1 1 , an interactions rules database 1 12, a graphical user interface (GUI) module 1 13, a user accounts database 1 14, an analytics module 1 15, a live viewing database 1 19, a friend follower module 120, and a favorites module 121 .
[0068] The video content database 1 10 stores data related to the videos, such as identifying information of each video and a data address of each video (e.g. a URL). The videos are organized based on categories and channels. In an example embodiment, the video data file is not stored on the server 101 . The video content is instead stored on a video content provider 103, 104. When a user navigates videos, the navigation is based on how the video identifiers are organized in the database 1 10, and the actual video content is transmitted directly from a video content provider 103, 104 to a user device. In this way, video content does not need to be diverted to the server 101 and then transmitted to the user device. This saves time and reduces consumption of data resources. This
configuration also allows the server 101 to interact with different video content providers, while providing a uniform interface to a user on their user device.
[0069] The content module 1 1 1 is configured to assist a person to aggregate and curate videos, as well as to organize the videos into channels and categories. The content module may also have fully automatic capabilities to automatically aggregate and curate videos, and organize video information in the video content database. For example, a content crawler may crawl the video content providers 103, 104 to pull data and analyse the same. In this way, the process of populating the video content database may require little or no manual supervision. The content module 1 1 1 also facilitates a third party user, which is not an administrator, to curate content. This is desirable since other users may wish to watch content selected by the third party.
[0070] The interactions rules database 1 12 includes rules that dictate how videos are played and switched or transitioned, based on user input and other factors.
[0071] The GUI module 1 13 implements the rules stored in the rules database 1 12. It also includes graphical elements and configurations of such elements (e.g. control buttons, icons, etc.). In an example embodiment, GUI module 1 13 provides a skin or video player skin that is displayed on a user device, and a video provided by a video content provider 103, 104 plays within the skin on the user device.
[0072] Optionally a user accounts database 1 14 is provided to store the information about a given user and to track their activities. User information includes, for example, a user identifier, such as an email address, account name, IP address, etc. Tracked or recorded activities include the videos watches, the length of time watched, the length of time watched before switching to a different video or channel or category, and the surfing or switching patterns between videos or channels or categories and combinations thereof. The user accounts database may also import or store a user's preference from other video platforms. The user accounts database also imports and includes user information from social media platforms, including contacts or friends from the social media platforms. Non-limiting examples of social media platforms are available under the trade names Facebook, Google+, and Twitter. A "friend" or "follower" herein refers to one user account that is linked to another user, such as known in social media platforms. [0073] It is appreciated however, that in a preferred example embodiment, no user account is required to use the video platform described herein. In an example embodiment, a user's activity when surfing videos of switching between videos is stored locally on the user's device, such as in the user device's cache. In an example embodiment, the user's activity in only stored on the user device and nowhere else in order to maintain privacy and to reduce the amount of data being transmitted between the server and the user device.
[0074] The analytics module 1 15 is configured to analyse the data stored in the database 1 14 to determine patterns and behaviours. The outputs from the analytics module may be used as feedback to iteratively improve the interaction rules, the GUI and the video content being aggregated or curated. In another example, the outputs from the analytics module may be used for marketing and advertising purposes.
[0075] The live viewing activity database 1 19 includes a list of all users and their current status, such as whether or not they are currently watching a video, what video they are watching, and the current time placement within the video (e.g. 1 minute and 3 seconds in a 5 minute long video). This data is continuously updated since as videos play, the current time placement within a video will change. The data is also updated as users either go online or go offline from watching videos. Furthermore, the data is also updated as users switch from watching one video to watching a different video. The data in the database 1 19 is updated at intervals of time, or in another example, is updated in a near real-time manner.
[0076] The friend follower module 120 is configured to facilitate synchronization of the viewing activity between two or more users. For example, the module 120 broadcasts the information from the live viewing activity database 1 19 to user devices, so that the user devices can use this information to synchronize their viewing activity with selected user devices. The module 120 also helps to control whether or not the information from the database 1 19 is sent to certain user devices. For example, certain user information from the database 1 19 is only sent to other user devices associated with friend user accounts. The module 120 also is used to prevent information from certain users from being broadcasted to other user devices. For example, a certain user wishes to watch videos, but does not want their video activity to be followed or broadcasted to their friends. Therefore, the module 120 will selectively not broadcast the viewing activity for this certain user to other user devices. Controlling the flow of data and when the data is sent helps to reduce the amount of data being transmitted while coordinating user devices with each other.
[0077] The favorites module 121 manages the addition, removal and display of videos or channels that are marked as a "favorite" for the user. The favorites module 121 also determines the number of videos within a favorite channel that have not yet been watched. This is desirable because a user may have a favorite channel, and new videos may be added to the favorite channel. The module 121 identifies that there are new videos in the favorite channel that have not yet been watched, and notifies the user of the same.
Similarly, a user may have accidentally skipped a video within a favorite channel, and the module 121 identifies these videos for the user to watch.
[0078] It will be appreciated that the server 101 may include other databases and modules.
[0079] Turning to FIG. 2, an example of data in a video content database 1 10 is shown. The data includes category information 201 , with instances of different category titles. Each category title may be associated with or mapped to a category ID, and the category ID is used to group videos (e.g. to tag videos). Other data includes channel information 202, which includes instances of different channel titles, each channel title associated with a category ID. Each channel title may be associated with a channel ID, which is also associated with a category ID. It will be appreciated that multiple channel IDs may be associated with same category ID.
[0080] Continuing with FIG. 2, the data also includes video information 203. This information includes video titles, an each title is associated with a video network address (e.g. a URL or other type of address). Although not shown, there may also be a video ID identifying each video. The video network address indicates from where the video may be retrieved. The network address may identify and relate to a video content provider 103, 104. A user device uses the video network address to access the video provided by a video content provider 103, 104, which is played through the GUI on the user device. Each video network address is associated with a channel ID and a category ID. It will be appreciated that multiple video network addresses may be associated with the same channel ID, since there are groupings of videos in the same channel.
[0081] It is appreciated that there is a sequence or order to the categories, as well as a sequence or order to the channels within each category. Similarly, there is a sequence or order to the videos within each channel. The sequence or order may be identified by numeric, or alphanumeric IDs used for identifying the videos, the channels and the categories. This identification helps to organize the video data. In this way, concepts such as "next" and "previous" are able to be represented and computationally processed.
[0082] Turning to FIG. 3, an example of a user device 108 is provided. As noted in relation to FIG. 1 , the forms and types of user devices are various. In the example shown in FIG. 3, the user device includes one or more processor 301 , a communication device 302 for communicating with the network 102, a web browser application 303, a video application, a display device 305, an input device 306 and memory 307. The input device is a physical keyboard in an example embodiment. In another example, the input device is a virtual keyboard. In another example, the input device is a touch sensitive screen that responds to swipes, taps, etc. In another example, the input device is voice activated. In another example, the input device is motion activated (e.g. using image sensors, inertial
measurement units, muscle electricity sensors, etc.) to track the motion or gestures of a user. The motions or gestures include up and down gestures, as well as left and right gestures.
[0083] In a preferred example embodiment, the web browser 303 is used to access the server 101 and to view the videos. The GUI provided by the server 101 is displayed via the web browser.
[0084] In another example embodiment, a video application 304 is downloaded onto the user device 108. The video application is used to interact with the server 101 and to interact with the video content provider 103, 104.
[0085] User data related to the web browser 303 or the video application 304 is stored in memory 307. In an example embodiment, and more particularly, the data is stored in cache
308. The data may also be stored in other forms of memory.
[0086] The user data that is stored and collected includes the history of videos watched
309, the last video watched in a given channel 310, and the last video watched in a given category 31 1 . The data also includes the current video being watched, including the current channel and category associated with the current video 312. In association with the current video being watched, the current time within the video being watched 317 is also being tracked. This data 317 is constantly changing as the video is being played. Other types of stored data include the last channel watched in a given category (or sequence of channels last watched) 313, and the last category watched (or sequence of categories last watched) 314. The data further includes time tags 315 associated with videos. The time tags indicate the last time positioned played or watched by the user device. The data may further include recently detected user inputs 316. The data further includes a friend follower mode (e.g. following a friend or not) and the identifier of the friend or other user which the subject user is following 318. Associated with this data 319, the cache also includes data 319 that identifies the current video and current time in the video being watched by the friend, if the friend follower mode is activated. [0087] The above data tracks past and current viewing information and is used to determine which interaction rules apply when navigating between videos.
[0088] The navigation between videos is based on the rules in the interaction rules database 1 12. Turning to FIGs. 4a and 4b, a listing of rules are provided in response to certain user inputs.
[0089] A set of rules 401 may be implemented in response to detecting a left input (e.g. detecting a left arrow input, a left swipe, a left gesture, etc.). For example, in response to detecting a left input, and if the currently watched video has been watched 30% or greater, then the server causes the current video to restart from the beginning (402). In another example rule that is in response to detecting a left input, if the currently watched video has been watched less than 30%, the previous video in the current channel plays (403).
[0090] Particular implementation of rule 403 may depend on additional factors. For example, if the current video has been watched less than 30%, and the previous video has not been watched before, then the previous video in the same current channel is played starting the video at a 30% position (404). In another example, if the current video has been watched less than 30%, and the previous video has been watched before, then the previous video in the same current channel is played starting at the last time position viewed (405).
[0091] A set of rules 406 may be implemented in response to detecting a right input (e.g. detecting a right arrow input, a right swipe, a right gesture, etc.). For example, in response to detecting a right input, and if the current video has been watched 90% or greater, then the next video in the same current channel is played from the beginning (407). Otherwise, if the current video has been watched less than 90%, the next video in the current channel plays at the 30% position or some other position (408). In particular, if the current video has been watched less than 90%, and the next video has not been watched before, then the next video in the same current channel is played starting the video at the 30% position (409). Or, if the current video has been watched less than 90%, and the next video has been watched before, then the next video in the same current channel is played starting at the last time position viewed (410).
[0092] Although the percentages 30% and 90% are used in the examples, other percentages may be used. For example, instead of 30%, preferably, another percentage value in the range of 10% to 50% is used. For example, instead of 90%, preferably, another percentage value in the range of 80% to 95% is used. [0093] It will be appreciated that the 30% jump-in for watching next videos is negated or ignored if the currently watched video has been watched 90% or more. It is herein recognized that if a user has watched 90% of a video or more, the user intends to watch the next video in the channel as part of a series and wishes to fully watch the next video. The context for the next video is not required, since the user likely understands the context of the videos in the channels and is watching them in sequence. In other words, the user is not surfing through videos. However, if a right input is detected with less than 90% of the current video being watched, then it is assumed that the user is surfing through videos and desires context for the next video. Therefore, if less than 90% of the current video is watched, then the next video plays starting from the 30% position to provide context to the user. The computations and operations described above provide an intuitive user experience that allows a user to quickly navigate videos in a way that reflects their intentions. No additional user inputs are required beyond the right input to activate the set of rules 406. This single input and the set of rules makes it easy for the user to navigate.
[0094] It will be understood that the up and down inputs relate to switching between channels.
[0095] A set of rules 41 1 may be implemented in response to detecting an up input (e.g. detecting an up arrow input, a right swipe, a right gesture, etc.). For example, in response detecting an up input, and if a video in previous channel has been viewed, then the last viewed video in the previous channel is played (412). For example, the last viewed video in the previous channel is played starting at the last time position viewed of the last viewed video, or at the 30% time position. In another example, if no video in the previous channel has been viewed yet, then the first video in the previous channel is played starting at the 30% time position (413).
[0096] A set of rules 414 may be implemented in response to detecting a down input (e.g. detecting a down arrow input, a down swipe, a down gesture, etc.). For example, in response to detecting a down input, and if a video in a next channel has been viewed, then the last viewed video in the next channel is played (e.g. starting at last time position viewed of the last viewed video, or at the 30% time position) (415). In another example, if no video in the next channel has been viewed, then the first video in the next channel is played starting at the 30% time position (416).
[0097] It will be understood that the double up inputs and double down inputs relate to switching between categories. Double up or double down inputs include either two inputs provided one after the other in quick succession (e.g. hitting the up key twice, or hitting the down key twice), or two inputs provided simultaneously (e.g. two fingers on a touch screen swiping up, or two fingers swiping down on the touch screen). Other variations of double up and double down inputs may be used, and may depend on the input device. A double down gesture may include two down gestures made by a user in quick succession, or may include two arms or two fingers simultaneously moved in a down gesture.
[0098] A set of rules 417 may be implemented in response to detecting a double up gesture. For example, in response to detecting a double up input, and if a video in a previous category has been watched, then the last viewed video in the previous category is played (e.g. starting at last time position viewed of the last viewed video, or at 30% time position) (418). The last viewed video in the category may be from any channel in the previous category. In another example, if no video in a previous category has been watched, then the first video in the first channel of the previous category is played starting at the 30% time position (419).
[0099] A set of rules 420 may be implemented in response to detecting a double down gesture. For example, in response to detecting a double down input, and if a video in a next category has been watched, then the last viewed video in the next category is played (e.g. starting at last time position viewed of the last viewed video, or at 30% time position) (421 ). The last viewed video in the category may be from any channel in the next category. In another example, if no video in a next category has been watched, then the first video in the first channel of the next category is played starting at the 30% time position (422).
[00100] There may also be a "random" input (423), which initiates playing a random video from any category and channel, starting at the 30% time position (424). The random input may be detecting the input "r" on a keyboard, or any other designated input. In an example embodiment, the randomization is performed using a random number generator. For example, a random number generator is used to identify a random category. Within the randomly identified category, the random number generator is used to identify a random channel. And, within the randomly identified channel, the random number generator is used to identify a random video. In this way, for example, a randomly identified video is selected and automatically played. Other approaches for identifying a random video may be used.
[00101] It will be appreciated that there may be other rules in the rules database that have not been shown in FIGs. 4a and 4b.
[00102] FIG. 5 shows an example embodiment of videos being organized by category and channel. For example, there is a sequence of three categories: Category A, Category B and Category C. Within Category A, there is a sequence of two channels: Channel A.1 and Channel A.2. Within Channel A.1 , there are a sequence of three videos: Video A.1.1 , Video A.1 .2 and Video A.1 .3. Similar organization applies to other videos, channels and categories in FIG. 5. It will be appreciated that the sequence or order of the categories, channels and videos has an effect on how the videos are navigated.
[00103] Turning to FIGs. 6a and 6b, example operations are shown for navigating the videos referred to in FIG. 5. A series of time tags (e.g. to, t1 , t2, t3, etc.) indicate the sequence of the operations. The exact timing, or difference in time between the time tags, may vary from one time tag to another.
[00104] Starting at tO, a video A.1 .1 in channel A.1 and category A is played starting at the 30% time position. At t1 , the server detects that a right input has been provided at the user device, and subsequently a timestamp of the currently watched position in video A.1 .1 is stored in cache. At t2, the server determines whether or not the next video in the channel (i.e. video A.1.2) has been watched, based on information stored in the user device's cache. In this example, the video A.1 .2 has not been watched. Therefore, the video A.1 .2 is played on the user device starting at the 30% time position.
[00105] At t3, the server detects a down input has been received at the user device, and a time stamp of the currently watched position in video A.1 .2 is recorded and stored in the user device's cache. It is also recorded in the cache that the video A.1.2 is the last video watched in channel A.1. It is noted that since a channel switching input is provided, such data is stored in the cache.
[00106] At t4, the server determines whether or not a video in the next channel in category A has been watched. In other words, is it determined if a video in channel A.2 has been watched. If not, as is the case at t4, then the first video A.2.1 in channel A.2 is played starting at the 30% time position.
[00107] At t5, the server detects a double down input from the user device while the video A.2.1 is playing. The server records a time stamp of the current watched position in video A.2.1 in cache, and also records in cache that video A.2.1 is the last video watched in channel A.2 and in Category A. It is noted that since a category switching input is provided, such data is stored in the cache.
[00108] At t6, the server determines from the cache whether or not a video in the next category (i.e. Category B) has been watched. In this case, no video in Category B has been watched. Therefore, the first video in the first channel of Category B is played starting at the 30% time position (i.e. video B.1 .1 ).
[00109] At t7, the server detects a right input from the user device and records the time stamp of the currently playing video B.1 .1 and stores the time stamp in the cache. The time stamp of video B.1 .1 indicates, in this example, that less than 90% of the video has been played. At t8, the next video in the channel B.1 (i.e. video B.1 .2) begins playing starting at the 30% time position.
[00110] At t9, while the video B.1 .2 is playing, the server detects a right input from the user device. The server detects and marks that at least 90% of video B.1 .2 has been watched, and stores this information in cache. Therefore, at t10, the next video in the channel B.1 (i.e. video B.1 .3) starts at the 0% time position, also referred to as the beginning of the video.
[00111] At t1 1 , while video B.1 .3 is playing, the server detects a left input from the user device. A time stamp indicating the current time watched in video B.1 .3 is saved in the cache.
[00112] At t12, the server determines if the previous video B.1 .2 in the same channel has been watched and, if so, to what time. This determination is made by reviewing the data in the cache of the user device. In this example scenario, video B.1 .2 has been watched. Therefore, the video B.1 .2 is played starting from the time stamp indicating the last time position of the video that was watched.
[00113] At t13, it is detected that the video B.1 .2 has ended and automatically proceeds to the beginning (i.e. 0% time position) of the next video B.1 .3.
[00114] At t14, while the video B.1 .3 is playing, a left input is detected. The time stamp of the currently watched position of video B.1 .3 is stored in the cache.
[00115] At t15 in FIG. 6b, the server determines if video B.1 .4 was watched. In this case, video B.1 .4 was not watched, and the current video B.1 .3 was watched less than 90%. Therefore, the video B.1 .4 is started at the 30% mark.
[00116] At t16, while the video B.1 .4 is playing, the server detects a double up input. The time stamp of the last watched position is stored in cache, along with a tag indicating that video B.1 .4 is the last video watched in channel B.1 and in Category B. [00117] At t17, the server uses the information stored in the user device's cache to determine if there is a last watched video in Category A. In this instance, video A.2.1 is the last watched video in Category A and therefore this video is played. In an example embodiment, video A.2.1 is played starting from the time stamp last watched, or in another example, starting at the 30% time position.
[00118] At t18, video A.2.1 is playing, the server detects a right input. The server detects that at least 90% of video A.2.1 has been watched. Therefore, at t19, the next video in the same channel (i.e. video A.2.2) is played starting at the 0% time position.
[00119] At t20, while the video A.2.2 is playing, the server detects that a random input has been received by the user device. The time stamp for the video A.2.2 is recorded in the cache. In some instances, depending on the category and channel associated with the random video, a tag may be stored indicating that the video A.2.2 is the last video watched in the channel A.2 and the Category A.
[00120] At t21 , the server randomly finds a video from any channel and category. For example, the server randomly selects video C.1 .3 from Category C, channel C.1 . Video C.1.3 is played starting at 30%.
[00121] At t22, while video C.1 .3 is playing, an up input is detected. This means the user wants to watch the previous channel. As channel C.1 is the first channel in Category C, the previous channel will be the last channel B.2 in the previous Category B. Also at t22, the time stamp for video C.1 .3 is stored in the cache, along with a tag indicating that video C.1 .3 is the last video watched in channel C.1 and Category C.
[00122] At t23, the server determines if a video was previously played in channel B.3. In this case, no video in channel B.3 has been played. Therefore, the first video B.3.1 in the channel B.3 is played starting at the 30% time position.
[00123] At t24, while video B.3.1 is playing, an up input is detected, again indicating a desire to switch to the previous channel B.2. The time stamp of video B.3.1 is stored in cache as well as a tag indicating that this video is the last video watched in the channel B.3.
[00124] At t25, the server determines if there is a video has been previously played in channel B.2. If not, as is the case in this example scenario, then the first video B.2.1 in channel B.2 is played starting at the 30% time position. [00125] At t26, the server detects an up input is received at the user device, indicating a desire to switch to the previous channel. The time stamp of video B.2.1 is stored in cache as well as a tag indicating that this video is the last video watched in the channel B.2.
[00126] At t27, the server determines from the cache of the user device if there is a video previously watched in channel B.1 . In this case, the video B.1.4 is the most recently watched video in the channel B.1 and, therefore, the video B.1 .4 is played. In an example embodiment, the video B.1 .4 is played starting from the time stamp associated with the video, or starting from the 30% time position.
[00127] Turning to FIG. 7, an example GUI 700 is shown. Every time a new video starts to play, for an initial few seconds, information 710 about the video is displayed and then disappears. The information about the video includes the video title, the channel title, or the category title, or combinations thereof. The original source of the video may also be included. Other types of information, such as the number of views by others may also be included in this information.
[00128] The GUI may also show instructions 701 for navigating the videos.
[00129] A graphical log-in control 702 is included. When selected, a user can sign into their user account for additional features. However, such an operation is not required to use the video platform described herein, according to an example embodiment.
[00130] Other graphical user controls include a channel list control 703, a random input control 704, a pause and play control 705, a time slider bar control 706, a full-screen mode control 707 and an instructions control 707. Selecting control 703 invokes the display of a list of channels. Selecting control 704 is considered providing a "random input". Selecting control 708 invokes the display of the instructions 701.
[00131] Another graphical user control 709 is provided and, when selected, invokes the display of the original source of the video currently being played. For example, if the original source of the data is from YouTube, then the original YouTube video page is displayed instead.
[00132] FIG. 8 is an example GUI of the list of channels, which is displayed in response to detecting the selection of control 703 or another similar input. The list of channels are organized by the categories, for example Web Series, Music and Comedy. The channels may be selected by clicking on a given channel title. [00133] It will be appreciated that the GUIs may be provided by the server, for example, in a web browser implementation on a user device. In another example embodiment using a video application stored locally on a user device, the GUIs may be stored on the user device.
[00134] Turning to FIG. 9, an example embodiment of data within the live viewing activity database 1 19 is shown. The data includes the following associated information: user, status of the user, video ID of the video currently being watched by the user, channel ID associated with the video, category ID associated with the video and current time placement in video. This information is dynamic and is updated on a periodic basis or a near real-time basis to reflect the current watching activity of each user.
[00135] In the example in FIG. 9, User A has a "not active" status, which may be because User A is not watching any video, or is watching video but is not logged into his or her user account. The other information for User A is nil or not applicable since User A has a non-active status.
[00136] The other users in the example of FIG. 9 have "active" statuses because they are logged into their user account. Another status, not shown, is "active and private". In other words, the activity of the user is recorded but is not broadcasted to other user devices.
[00137] In the example shown, User D is following User B, so that whatever video and video time position currently viewed by User B is automatically displayed on the device of User D. User E is following User D, so that whatever video and video time position currently viewed by User D is automatically displayed on the device of User E. This forms a chain effect, so that a change made in the viewing by User B is cascaded to User D and then to User E. It is appreciated that, in this example in FIG. 9, User E's time placement is not identical to User D, though it is roughly the same. There may be some lag, which is eliminated when the playing of the videos is resynchronized at periodic intervals.
[00138] In the example shown, Users G and H are both synchronized to User F. It will be appreciated that many users can be synchronized or follow the viewing activity of a single user.
[00139] Turning to FIG. 10, example executable instructions for provided for
synchronizing multiple devices, so that one or more devices display the same video content being played by another device. The instructions are performed by the server 101 , a user device belonging to User B, and a second user device belonging to User D. [00140] User B's device initiates watching or playing one or more videos (block 1001 ), which is ongoing and continuous in this example. The information regarding what video is being watched and the current playing position within the video is sent to the server, and the server uses this information to update the live viewing activity database to reflect User B's live viewing activity (block 1002). This continuous and ongoing live updating with respect to User B's activities affects blocks 1008 and blocks 101 1 , as shown by dotted lines 1013 and 1012.
[00141] Later on, User D's device sends a request to the server to view friends of User D (block 1003). Responsive to this request, the server triggers the display of User D's friends and related information, such as the presence status of User D's friends and an identifier of the video each friend may be watching (block 1004). The identifier may be the title of the video, the channel of the video, or the category of the video. User D's device displays this information (block 1005).
[00142] User D's device receives an input, such as from User D, to watch the same content as User B, who is one of User D's friends who has an online or active status (block 1006). In an example embodiment, User D's device will store within its cache 309 that User B is to be followed. In response to this input, User D's device sends a request to the server to obtain data from the live viewing activity database (block 1007). Responsive to this request, the server broadcasts information from the live viewing activity database (block 1008). User D's device receives this broadcasted information (block 1009) and User D's device specifically uses the live viewing activity information about User B to synchronize User D's displayed video content to match User B's currently displayed video content (block 101 1 ). In other words, the same video currently being played at User B's device is played at User D's device, and this same video shown at User D's device is played at a point in time that is approximately the same as the present point in time in the video being played at User B's device. In turn, the viewing activity of User D is sent to the server to update the live viewing activity database with respect to User D. Furthermore, any later changes to User B's viewing activity is sent by the server to User D's device (block 101 1 ), so that the operations in blocks 1009 and 1010 are repeated. In other words, the process between 1009, 1010 and 101 1 may be looped.
[00143] In an example embodiment, User D's device receives the broadcasted message or information from the server, which includes live viewing activity from multiple users. User D's device, generates a query using the data stored in its cache identifying User B, and uses the query to search for only the live viewing activity related to User B. By parsing the live viewing activity on the user device rather than on the server, the server is able to perform less user-centric computations. The server periodically sends single broadcasts, which is efficient for the server and effectively coordinates potentially thousands of follower viewer relationships amongst many different user devices.
[00144] In a preferred example embodiment, the server broadcasts information (block 101 1 ) at periodic time intervals in order to reduce or avoid constant re-buffering at User D's device. In an example implementation, every time a user device receives information about a friend's viewing activity while in follower mode, the user device will need to re-synchronize the currently viewed video to match their friend's viewing activity. This includes re-buffering the video content on the user device, which may cause delay and may noticeably disrupt the viewing experience. By sending the broadcasted information at periodic intervals, the re- buffering on the user device occurs periodically and is typically not noticeable to the user. In an example embodiment, the periodic time interval is approximately 10 seconds. However, other time intervals may be used.
[00145] In another example embodiment, the server broadcast information (block 101 1 ) very frequently and at near real-time frequency.
[00146] It will be appreciated that other computing mechanisms for synchronizing one or more devices to display the same video content being played by another device can be used in combination with other aspects described herein.
[00147] Turning to FIG. 1 1 , example executable instructions are provided showing the following interaction between user devices belonging to User B, User D and User E. In this example, User D is following User B, and User E is following User D, which forms a chained relationship where User B is the primary leader. This example shows a series of operations, but some of the operations can occur independent of the other operations.
[00148] At block 1 101 , the server 101 updates the live viewing activity database from data obtained from the user devices, and broadcasts this information to the user devices. This operation is performed by the server in an ongoing and continuous manner. In other words, the server interacts with each of the user devices in an ongoing manner.
[00149] At block 1 102, User B's device displays video 1 at some time ti . Meanwhile, or afterward, User D's device displays that User B is active (block 1 103) and receives an input, such as User D's input, to watch the same content as User B (block 1 104). User D's device obtains data from the server identifying User B's current viewing activity (block 1 105). Using this obtained information, User D's device displays video 1 at the time t2 (block 1 106), which is the same current time of video 1 being played on User B's device (1 107). [00150] Meanwhile, or sometime after, User E's device displays that User D is active or online (block 1 108) and User E's device receives an input, such as from User E, to watch the same video content being played by User D (block 1 109). User E's device obtains data from the server identifying User D's current viewing activity (block 1 1 10). At this time, User B's device is playing video 1 at time t3 (block 1 1 1 1 ), and consequently User D's video device is playing video 1 at time t3 (block 1 1 12). Therefore, using the obtained information about User D from block 1 1 10, User E's device also displays video 1 at time t3 (block 1 1 13).
[00151] Later on, User B's device switches to displaying video 2 and plays this video at a time ti in the video (block 1 1 14). This information is updated at the server and
broadcasted to the User D's device, such that User D's device automatically switches to playing video 2 at the time ti in the video (block 1 1 15). This information is updated at the server and broadcasted to the User E's device, such that User E's device automatically switches to playing video 2 at the time ti in the video (block 1 1 16). In this way, the action at User B's device is cascaded along the chain of users.
[00152] Sometime later, User D's device receives one or more inputs to stop following User B and to start watching a different video, called video 3 in this example. In an example embodiment, User D's device receives an input to simply switch to displaying another video while currently being in a follower mode. Responsive to such an input, User D's device displays a confirmation notice (e.g. a pop up message) indicating, for example: "You are currently following User B. Do you wish to watch a different video and stop following User B?" (block 1 1 18) If User D selects yes, then video 3 is displayed at a time ti in the video, and the follower mode to User B is deactivated.
[00153] In another example, switching the video automatically deactivates the follower mode. In another example, switching the video does not deactivate the follower mode, and User D's device simply resynchronizes to User B's devices within a period of time (e.g. at the next time interval that the server broadcasts live viewing activity data). In another example, the user will need to first deactivate the follower mode and then switch videos for the video 3 to continue playing. It will be appreciated that there are several approaches to switching videos and deactivating the follower mode.
[00154] After block 1 1 17, User D's device is no longer in a follower mode and it displays video 3 at a time ^ in the video. Consequently, User E's device, which is following User D's device, automatically switches to video 3 and displays video 3 at the time ti in the video. [00155] Turning to FIG. 12, an example portion of data that is stored in the user accounts database 1 14 is shown. The data includes an entry 1201 identifying User Account A. Associated with the entry 1201 are information identifying one or more social media accounts of User A 1202, bookmarks or folders identifying videos or channels tagged by User A 1203, and favorite channels 1205.
[00156] Associated with the data entry of the favorite channels are channel identifiers, and the videos within the channel. Each video within the channel is also marked as "watched" or "not watched". For example, in Channel A.1 , videos A.1 .1 and A.1.2 have been watched, but videos A.1 .3 has not been watched. In Channel B.1 , videos B.1 .1 and B.1.3 have not been watched, while Video B.1 .2 has been watched. This information is used to track and show to User A which videos in his or her favorite channels have not yet been watched. For example, new videos may have been recently added to User A's favorite channels or User A may have accidentally skipped watching some videos. In this way, User A can conveniently identify and watch videos in his or her favorite channels that have not yet been watched.
[00157] It will be appreciated that a number of other types of information 1204 may be associated with the entry 1201 .
[00158] Turning to FIG. 13, an example GUI 1301 for playing video is provided, which shows the title of the category 1302, the title of the channel 1303 and a control 1304 for indicating whether this channel is a user's favorite or not. The user can select this control to mark the channel as favorite, or to unmark the channel as a favorite.
[00159] A graphical control pad 1305 is also displayed. It includes an up arrow 1306 and a down arrow 1307 for changing between categories; an up arrow 1312 and a down arrow 131 1 for changing between channels; and a left arrow 1308 and a right arrow 1309 for changing between videos. There is also a shuffle button 1312 for randomly selecting and playing a video.
[00160] Turning to FIG. 14, an example GUI 1400 is shown for watching the same video content as one of the friends and for selecting a favorites channel.
[00161] In addition, there is a discovery control 1401 and a genres control 1402, which both display a list of categories and channels within each category, like as shown in FIG. 8. However, the categories shown in response to selecting control 1401 are more esoteric and promote unconventional categories, while the categories shown in response to selecting control 1402 are more conventional. [00162] Selecting the favorites control 1403 displays the favorites GUI component 1408. Selecting the friends control 1404 displays the friends GUI component 1406. A search bar 1405 is also included, allowing a user to input a search term to launch a search operation for video content.
[00163] The friends GUI component 1406 includes a list of users which are linked to (e.g. friends with) the subject user. The names of the friends can be selected. Responsive to receiving a friend selection, the device of the subject user automatically displays the content currently being watched by the selected friend. Another control 1407 prompts the subject user to connect their video user account with a social media account, which will import additional friends into the server's database.
[00164] The favorites GUI component 1408 includes a favorites feed control 1409 and a number 1410 shown in association with the same. The number 1410 indicates the total number of unwatched videos that are within all of the subject user's favorited channels. In this way, the subject user can see if there any unwatched videos. In an example embodiment, not shown, the titles of the unwatched videos are displayed in relation to the control 1409.
[00165] It will be appreciated that selecting the control 1409 begins playing in sequence a collection of videos in the favorited channels that have not yet been watched, even if the videos are from different favorited channels. This conveniently compiles the unwatched videos together for the subject user's viewing convenience.
[00166] Other titles of favorited channels are shown in the controls 141 1 , 1412, 1413. In an example embodiment, selecting one of these controls initiates playing one or more unwatched videos within the selected favorited channel. In another example embodiment, selecting one of these controls initiates playing the last watched video within the selected favorited channel, or the video right after the last watched video within the selected favorited channel.
[00167] It will also be appreciated that any module or component exemplified herein that executes instructions or operations may include or otherwise have access to computer readable media such as storage media, computer storage media, or data storage devices (removable and/or non-removable) such as, for example, magnetic disks, optical disks, or tape. Computer storage media may include volatile and non-volatile, removable and nonremovable media implemented in any method or technology for storage of information, such as computer readable instructions, data structures, program modules, or other data, except transitory propagating signals per se. Examples of computer storage media include RAM, ROM, EEPROM, flash memory or other memory technology, CD-ROM, digital versatile disks (DVD) or other optical storage, magnetic cassettes, magnetic tape, magnetic disk storage or other magnetic storage devices, or any other medium which can be used to store the desired information and which can be accessed by an application, module, or both. Any such computer storage media may be part of the server 101 , the user device, the video content providers, or accessible or connectable thereto. Any application or module herein described may be implemented using computer readable/executable instructions or operations that may be stored or otherwise held by such computer readable media.
[00168] The steps or operations in the flow charts described herein are just for example. There may be many variations to these steps or operations without departing from the principles described herein. For instance, the steps may be performed in a differing order, or steps may be added, deleted, or modified.
[00169] The GUIs and graphical controls and components shown and described herein are just for example. There may be many variations to these GUIs without departing from the principles described herein. For instance, the graphical elements may be positioned in differing positions, may have different shapes, or graphical elements may be added, deleted, or modified. It will also be appreciated that the GUIs or screenshots include visual features that are appealing to the eye and the applicant reserves the right to pursue protection for these visual features in any one or more of a design application, a trademark application, and a copyright application.
[00170] It will be appreciated that the features of the systems and methods for organizing and navigating videos are described herein with respect to example
embodiments. However, these features may be combined with different features and different embodiments of these systems and methods, although not explicitly stated.
[00171] While the basic principles of these inventions have been described and illustrated herein it will be appreciated by those skilled in the art that variations in the disclosed arrangements, both as to their features and details and the organization of such features and details, may be made without departing from the spirit and scope thereof.
Accordingly, the embodiments described and illustrated should be considered only as illustrative of the principles of the inventions, and not construed in a limiting sense.

Claims

Claims:
1 . A method performed by a computing device to navigate videos between multiple computing devices, comprising: displaying a list of one or more users that are currently watching videos and receiving an input selecting one user of the one or more users associated with one or more other computing devices; obtaining a message broadcast comprising video identification information and a current point in time in the video being watched by the selected user; displaying the same video currently being watched by the selected user, starting at a point in time in the video that is approximately the same as the current point in time in the video obtained from the message broadcast.
2. The method of claim 1 further comprising, responsive to receiving the input, storing in a cache an identifier of the selected user; wherein the message broadcast comprises video identification and current viewing activity of multiple users and after obtaining the message broadcast, using the identifier stored in the cache to search for the video identification information and the current point in time in the video being watched by the selected user.
3. The method of claim 1 wherein the message broadcast is obtained by the computing device at periodic time intervals.
4. The method of claim 1 wherein the message broadcast is obtained by the computing device at periodic time intervals of approximately 10 seconds.
5. The method of claim 1 wherein the message broadcast includes a listing of users, their respective online status, their respective category being currently watched, their respective channel within the category being currently watched, their respective video being currently watched, and their respective point in time in the video currently being watched.
6. The method of claim 1 further comprising the computing device obtaining a subsequent message broadcast comprising new video identification information of a new video and a new current point in time in the new video being watched by the selected user; and responsive to receiving the subsequent message broadcast, automatically displaying the new video currently being watched by the selected user, starting at a point in time in the new video that is the same as the new current point in time in the new video obtained from the subsequent message broadcast.
7. A method performed by a server system for coordinating video viewing amongst multiple devices comprising: receiving video identification information of a first video and a point in time in the first video currently being watched by a first user, and storing the same in a live viewing activity database; sending a message broadcast to at least a second device, the message broadcast comprising the video identification information of the first video and the point in time in the first video currently being watched by the first user; and receiving video identification information of the first video and a point in time in the first video currently being watched by the second user, and storing the same in the live viewing activity database, wherein the point in time in the first video currently being watched by the second user is approximately the same as the point in time in the first video currently being watched by the first user.
8. A method performed by a computing system to navigate videos, comprising: providing a sequence of videos organized within one or more sequence of channels, the one or more sequence of channels organized within one more sequence of categories; storing one or more rules associated with each of a left input, a right input, an up input, a down input, a double up input and a double down input; and wherein, when playing a current video and detecting the left input, starting to play a previous video in a same channel as the current video; when playing the current video and detecting the right input, starting to play a next video in the same channel as the current video; when playing the current video and detecting the up input, playing a new video in a previous channel compared to the channel of the current video; when playing the current video and detecting the down input, playing a new video in a next channel compared to the channel of the current video; when playing the current video and detecting the double up input, playing a new video in a previous category compared to a category of the current video; and when playing the current video and detecting the double down input, playing a new video in a next category compared to the category of the current video.
9. A computing system configured to organize and navigate videos, comprising: a processor; a communication device; a memory comprising video information in which a sequence of videos are organized within one or more sequence of channels, the one or more sequence of channels are organized within one more sequence of categories; the memory further comprising one or more rules associated with each of a left input, a right input, an up input, a down input, a double up input and a double down input; and wherein the processor is configured to at least: when playing a current video and detecting the left input, invoke playing a previous video in a same channel as the current video; when playing the current video and detecting the right input, invoke playing a next video in the same channel as the current video; when playing the current video and detecting the up input, invoke playing a new video in a previous channel compared to the channel of the current video; when playing the current video and detecting the down input, invoke playing a new video in a next channel compared to the channel of the current video; when playing the current video and detecting the double up input, invoke playing a new video in a previous category compared to a category of the current video; and when playing the current video and detecting the double down input, invoke playing a new video in a next category compared to the category of the current video.
10. A method performed by a computing system to navigate videos, comprising: providing a sequence of videos; storing one or more rules associated with a navigation input; and wherein, when playing a current video and detecting the navigation input, determining if at least a first certain amount of time of the current video has been watched; if not, then automatically starting to play a next video in the sequence of videos starting at a second certain amount of time and, otherwise, automatically starting to play the next video starting at the beginning of the next video.
1 1 . The method of claim 10 wherein the first certain amount of time is computed as a percentage of an entire length of the current video.
12. The method of claim 1 1 wherein the percentage is approximately 90%.
13. The method of claim 10 wherein the second certain amount of time is computed as a percentage of an entire length of the next video.
14. The method of claim 13 wherein the percentage is approximately 30%.
PCT/CA2016/050200 2015-03-31 2016-02-26 Systems and methods for organizing and navigating videos between multiple devices WO2016154735A1 (en)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US201562140759P 2015-03-31 2015-03-31
US62/140,759 2015-03-31
US201562216026P 2015-09-09 2015-09-09
US62/216,026 2015-09-09

Publications (1)

Publication Number Publication Date
WO2016154735A1 true WO2016154735A1 (en) 2016-10-06

Family

ID=57003679

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CA2016/050200 WO2016154735A1 (en) 2015-03-31 2016-02-26 Systems and methods for organizing and navigating videos between multiple devices

Country Status (1)

Country Link
WO (1) WO2016154735A1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113287109A (en) * 2019-07-29 2021-08-20 谷歌有限责任公司 System and method for protecting device privacy

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090271820A1 (en) * 2008-04-24 2009-10-29 Samsung Electronics Co . , Ltd. Method of recommending broadcasting contents and recommending apparatus therefor in multimedia contents reproducing device
US20130242064A1 (en) * 2012-03-15 2013-09-19 Ronaldo Luiz Lisboa Herdy Apparatus, system, and method for providing social content
US20130268973A1 (en) * 2012-04-05 2013-10-10 Ime Archibong Sharing Television and Video Programming Through Social Networking
US20140223464A1 (en) * 2011-08-15 2014-08-07 Comigo Ltd. Methods and systems for creating and managing multi participant sessions
US20140245352A1 (en) * 2013-02-22 2014-08-28 Facebook, Inc. Time-Sensitive Content Update

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090271820A1 (en) * 2008-04-24 2009-10-29 Samsung Electronics Co . , Ltd. Method of recommending broadcasting contents and recommending apparatus therefor in multimedia contents reproducing device
US20140223464A1 (en) * 2011-08-15 2014-08-07 Comigo Ltd. Methods and systems for creating and managing multi participant sessions
US20130242064A1 (en) * 2012-03-15 2013-09-19 Ronaldo Luiz Lisboa Herdy Apparatus, system, and method for providing social content
US20130268973A1 (en) * 2012-04-05 2013-10-10 Ime Archibong Sharing Television and Video Programming Through Social Networking
US20140245352A1 (en) * 2013-02-22 2014-08-28 Facebook, Inc. Time-Sensitive Content Update

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113287109A (en) * 2019-07-29 2021-08-20 谷歌有限责任公司 System and method for protecting device privacy

Similar Documents

Publication Publication Date Title
US10579401B2 (en) Systems and methods for providing a virtual assistant to accommodate different sentiments among a group of users by correlating or prioritizing causes of the different sentiments
US9743145B2 (en) Second screen dilemma function
US9852774B2 (en) Methods and systems for performing playback operations based on the length of time a user is outside a viewing area
CA2823532C (en) Systems and methods for navigating through content in an interactive media guidance application
US10555045B2 (en) Context-based recommendation system
US9583147B2 (en) Second screen shopping function
US11128924B2 (en) Systems and methods for navigating media assets
US9510047B2 (en) Systems and methods for automatically performing media actions based on status of external components
CA3087022A1 (en) Systems and methods for presenting supplemental content in augmented reality
US20230056898A1 (en) Systems and methods for creating a non-curated viewing perspective in a video game platform based on a curated viewing perspective
US20140258863A1 (en) Systems and methods for browsing streaming content from the viewer's video library
US9578370B2 (en) Second screen locations function
US10419799B2 (en) Systems and methods for navigating custom media presentations
US20230083324A1 (en) Systems and methods for providing a progress bar for updating viewing status of previously viewed content
AU2017228317A1 (en) Systems and methods for synchronizing media asset playback on multiple devices
WO2016154735A1 (en) Systems and methods for organizing and navigating videos between multiple devices
US11070877B2 (en) Systems and methods for conflict detection based on user preferences
US9782681B2 (en) Methods and systems for controlling media guidance application operations during video gaming applications
US20150189375A1 (en) Systems and methods for presenting information to groups of users using user optical devices

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 16771125

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 16771125

Country of ref document: EP

Kind code of ref document: A1