Dynamic custom interstitial transition video for video streaming services
Dynamic custom interstitial transition videos on user devices address the lack of smooth transitions in traditional streaming by overlaying personalized metadata, enhancing user experience and efficiency.
Patent Information
- Application Number
- JP2023020783
- Authority / Receiving Office
- JP · JP
- Patent Type
- Patents
- Current Assignee / Owner
- Priority Date
- 2017-06-21
- Filing Date
- 2023-02-14
- Publication Date
- 2025-09-30
- Estimated Expiration
- 2038-03-30
AI Technical Summary
Traditional video streaming services abruptly stop one video and start another without a smooth transition, often displaying static information or advertisements, failing to provide personalized and dynamic information about upcoming videos.
Dynamic custom interstitial transition videos are created in real time on user devices, overlaying metadata about upcoming videos, selected based on user preferences, using executable presentation templates with synchronized animations and configuration parameters.
Enhances user experience by providing a seamless transition between videos with personalized and dynamic information, reducing discomfort and improving video streaming efficiency.
Smart Images

Figure 0007746318000001 
Figure 0007746318000002 
Figure 0007746318000003
Abstract
Description
[Technical Field]
[0001] Aspects and implementations of the present disclosure relate to video streaming, and more particularly to dynamic custom interstitial transition videos for video streaming services. [Background technology]
[0002] Video streaming services provide videos to users over the Internet. Typical video streaming services abruptly stop a video when it ends and abruptly start the next video. Some services do not start the next video unless the user starts the video that is playing. Some traditional video streaming services display static information for the next video to be played. In traditional television (TV) broadcast systems, when a TV program ends, some traditional television networks broadcast a commercial-type segment to inform viewers of the next program. Summary of the Invention [Means for solving the problem]
[0003] Aspects of the present disclosure improve media transition technology by dynamically creating and presenting interstitial transition videos in real time. Interstitial transition videos are transition videos that can be played between videos. The videos can be videos that are in a playlist or scheduled to play. The interstitial videos can contain information about upcoming videos. The interstitial transition videos are created and presented by a user device (e.g., a personal computer, a smartphone, a tablet, etc.) rather than by a server or head-end broadcast system.
[0004] According to one aspect of the present disclosure, a method is provided, the method including the steps of: receiving, by a client device, a base video to be played by the client device, the base video including areas within frames of the base video reserved to be overlaid with a set of metadata items; determining a first set of videos to be next played for a particular user, the selection of the first set of videos being based on a second set of videos associated with the particular user; receiving metadata content for the first set of videos; and populating an executable presentation template for the base video with the set of metadata items extracted from the metadata content of the first set of videos; playing, by the client device, the base video on a display coupled to the client device; and synchronizing, by the client device, execution of the populated presentation template with the playback of the base video on the display to overlay the set of metadata items in the reserved areas of frames of the base video, the synchronizing step creating a custom interstitial transition video informing the particular user about the first set of videos to be next played.
[0005] Determining the first set of videos to be played next may include determining that the main video has finished playing on the client device and selecting or determining in real time the video to be played next (to be played after the main video).
[0006] Execution of the populated presentation template results in animation of one or more individual metadata items in the set of metadata items on a display coupled to the client device, and a reserved area of a frame of a base video played on the display is overlaid with the animation of one or more individual metadata items in the set of metadata items.
[0007] The synchronizing step may include receiving a set of time codes for the base video, the time codes specifying one or more points in time for performing animation of each metadata item in the set of metadata items in the populated presentation template on a display, and performing animation of each metadata item in the set of metadata items on a display coupled to the client device in accordance with the set of time codes.
[0008] The set of time codes may include a first time point at which to perform a first type of animation of each metadata item on the display, and a second time point at which to perform a second type of animation of each metadata item on the display.
[0009] The method may further include receiving configuration parameters for displaying metadata items in the populated presentation template on a display coupled to the client device, the configuration parameters including at least one of a font style, a font size, a font color, a text position, or an animation type, and displaying the metadata items in the populated presentation template on the display based on the configuration parameters.
[0010] The set of metadata items may include at least one of a title, a creator, a channel, one or more keywords, or statistics for each video in the first set of videos.
[0011] The step of determining the first set of videos may include the steps of determining an amount of time from a current time point to the start of a next scheduled video in a predefined video schedule; receiving time data for the plurality of recommended videos from a recommendation server; determining a duration of each video in the plurality of recommended videos; and selecting one or more videos from the plurality of recommended videos based on the duration of each video in the plurality of recommended videos and the amount of time from the current time point to the start of the next scheduled video.
[0012] The method may further include creating a filler playlist including the first set of videos, the filler playlist playing from a current time to the start of the next scheduled video in a predefined schedule of videos, and playing a custom interstitial transition video between playback of the videos in the filler playlist.
[0013] According to another aspect of the present disclosure, there is provided a system including a memory and a processing device coupled to the memory such that: receiving a base video including areas within frames of the base video reserved to be overlaid with a set of metadata items; determining a first set of videos to be played next for a particular user, wherein the selection of the first set of videos is based on a second set of videos associated with the particular user; receiving metadata content for the first set of videos; populating an executable presentation template for the base video with the set of metadata items extracted from the metadata content of the first set of videos; playing the base video on a display; and synchronizing execution of the populated presentation template with the playback of the base video on the display to overlay the set of metadata items in the reserved areas of frames of the base video, wherein the synchronization creates a custom interstitial transition video informing the particular user about the first set of videos to be played next.
[0014] Execution of the populated presentation template results in animation of one or more individual metadata items in the set of metadata items on a display coupled to the client device, and a reserved area of a frame of a base video played on the display is overlaid with the animation of one or more individual metadata items in the set of metadata items.
[0015] To synchronize, the processing device may receive a set of time codes for the base video, the time codes specifying one or more points in time for performing animation of each metadata item in the set of metadata items in the presentation template populated on a display, and perform animation of each metadata item in the set of metadata items on a display coupled to the client device according to the set of time codes.
[0016] The set of time codes may include a first time point at which to perform a first type of animation of each metadata item on the display, and a second time point at which to perform a second type of animation of each metadata item on the display.
[0017] The processing device may further receive configuration parameters for displaying the metadata items in the populated presentation template on a display coupled to the client device, the configuration parameters including at least one of a font style, a font size, a font color, a text position, or an animation type, and display the metadata items in the populated presentation template on the display based on the configuration parameters.
[0018] The set of metadata items may include at least one of a title, a creator, a channel, one or more keywords, or statistics for each video in the first set of videos.
[0019] To determine the first set of videos, the processing device may determine an amount of time from a current time point to the start of the next scheduled video in a predefined video schedule, receive time data for the plurality of recommended videos from a recommendation server, determine a duration of each video in the plurality of recommended videos, and select one or more videos from the plurality of recommended videos based on the duration of each video in the plurality of recommended videos and the amount of time from the current time point to the start of the next scheduled video.
[0020] The processing device may further create a filler playlist including the first set of videos, the filler playlist being played from the current time to the start of the next scheduled video in the predefined schedule of videos, and playing a custom interstitial transition video between playback of the videos in the filler playlist.
[0021] According to another aspect of the present disclosure, a non-transitory computer-readable medium is provided having stored thereon instructions that, when executed by a processing device of a user device, cause the processing device to perform the methods described herein.
[0022] Aspects and implementations of the present disclosure will be more fully understood from the following detailed description and accompanying drawings of various aspects and implementations of the present disclosure, which are not to be construed as limiting the disclosure to particular aspects or implementations, but are for purposes of illustration and understanding only. [Brief explanation of the drawings]
[0023] [Figure 1] FIG. 2 illustrates an exemplary timeline of a streamed video according to one implementation of the present disclosure. [Figure 2] 1 illustrates an exemplary timeline of frames of an interstitial transition video presentation according to one implementation of the present disclosure. [Figure 3] 1A-1C illustrate an exemplary timeline of frames playing a base video component of an interstitial transition video according to one implementation of the present disclosure. [Figure 4] FIG. 2 illustrates an exemplary timeline of frames of a dynamic metadata overlay component of a transitional video, according to one implementation of the present disclosure. [Figure 5] FIG. 1 illustrates an exemplary system architecture for implementing the present disclosure. [Figure 6A] FIG. 10 illustrates an exemplary timeline of frames that plays a base video and displays an overlay of an animated presentation of metadata over the playback of the base video to dynamically create a custom transition video for a user, according to one implementation of the present disclosure. [Figure 6B] FIG. 10 illustrates an exemplary timeline of frames that plays a base video and displays an overlay of an animated presentation of metadata over the playback of the base video to dynamically create a custom transition video for a user, according to one implementation of the present disclosure. [Figure 6C] FIG. 10 illustrates an exemplary timeline of frames that plays a base video and displays an overlay of an animated presentation of metadata over the playback of the base video to dynamically create a custom transition video for a user, according to one implementation of the present disclosure. [Figure 6D] FIG. 10 illustrates an exemplary timeline of frames that plays a base video and displays an overlay of an animated presentation of metadata over the playback of the base video to dynamically create a custom transition video for a user, according to one implementation of the present disclosure. [Figure 6E]FIG. 10 illustrates an exemplary timeline of frames that plays a base video and displays an overlay of an animated presentation of metadata over the playback of the base video to dynamically create a custom transition video for a user, according to one implementation of the present disclosure. [Figure 7] 1 is a flow diagram of an aspect of a method for dynamically providing custom interstitial transition video according to one implementation of the present disclosure. [Figure 8] FIG. 1 illustrates an example of a video streaming user interface that displays an interactive schedule of videos to be streamed and played, according to one implementation of the present disclosure. [Figure 9] 1 is a flow diagram of an aspect of a method for dynamically providing a custom filler video playlist, according to one implementation of the present disclosure. [Figure 10] FIG. 10 illustrates an example of a video streaming user interface displaying a visual representation of videos in a filler playlist, according to one implementation of the present disclosure. [Figure 11] FIG. 1 illustrates an example of a system architecture for dynamically providing custom transition videos, according to one implementation of the present disclosure. [Figure 12] FIG. 1 is a block diagram of an exemplary computing device that operates in accordance with one or more aspects of the present disclosure. DETAILED DESCRIPTION OF THE INVENTION
[0024] Aspects and implementations of the present disclosure are directed to dynamic custom interstitial transition videos for video streaming services. An interstitial transition video refers to a video that is played between two videos. In one implementation, the interstitial transition video includes information about the next video to be played. In one implementation, this information about the video is animated. The interstitial transition video can be played between videos in a playlist or between videos that are scheduled to play. A video streaming service can be an on-demand online source of videos, TV shows, movies, and other streaming media. In traditional video streaming services, when a video ends, the video stops abruptly. For example, when a video ends, a still image is immediately displayed, and there is a time delay of up to several seconds (e.g., 8 seconds) before the next video begins playing. During the time delay, the title of the next video and a time delay countdown (e.g., 8 seconds) may be displayed along with the still image. Traditional video streaming services provide still images or advertisements between videos and do not provide transition videos that notify users of upcoming videos.
[0025] In traditional television (TV) broadcast systems, when a TV program ends, a commercial-type segment is broadcast as a transition to inform viewers of the next program. The segment may include the TV network logo and the title of the next TV program. The segments are typically created by a broadcast head-end system and then displayed by a device (e.g., a television). The content of the segment is the same for all viewers. Generally, broadcast head-end systems do not create custom segments for individual viewers.
[0026] Aspects of the present disclosure improve media transition technology by dynamically creating custom interstitial transition videos for users in real time on a device (e.g., a user device). As used herein, the term real time is used to refer to an event occurring in close temporal proximity to a cause, e.g., without unnecessary delay. For example, real-time creation of interstitial transition videos involves collecting data for a next video while a current video is playing and displaying the data for the next video by the user device immediately after the current video has finished playing (e.g., within a predefined time limit, such as 0.1 seconds or less).
[0027] Thus, described in various implementations herein are techniques that provide increased flexibility in creating transition segments by providing interstitial transition videos on user devices in real time. Implementations of the present disclosure can change the information presented in the interstitial transition videos in real time. The next video played may be selected for a particular user, and implementations of the present disclosure can customize the information presented in the interstitial transition videos for the particular user. By playing interstitial transition videos between videos, implementations of the present disclosure improve the user experience by providing a smoother transition between playing videos, reducing discomfort. Due to the custom nature of interstitial transition videos, device computing resources (e.g., memory and / or processing) associated with playing interstitial transition videos necessarily accrue when presenting information relevant to a particular user of a device. Thus, embodiments may address issues related to the delivery of videos to users in networked environments.
[0028] 1 shows an exemplary timeline of a streamed video according to one implementation of the present disclosure. Streaming media is video or audio content that is transmitted over the Internet and played immediately, rather than being stored on a hard drive. Streaming media allows a user to play a video without waiting for a video file to download. A device can play streaming video in real time as the video data arrives at the device. Real-time streaming of video involves displaying portions of a video as soon as the corresponding portion of the video stream is received.
[0029] Axis 101 is time represent Video streaming services can stream various types of video, such as the main portion of the video content (referred to herein as main video) and interstitial portions of the content (referred to herein as interstitial transition video or transition video). Examples of main video can include video from a content provider of a content sharing platform, video from a network television provider, and video from a video streaming service provider. Main Video 1 102, Main Video 2 110, Main Video 3 118, and Main Video 4 126 are examples of main video. The main video can be an individual stream of video.
[0030] The selection of which main video to stream and play can be based on a predefined schedule and / or can be dynamically determined. In one implementation, a main video can be dynamically selected in real time for a particular user. As used herein, real-time selection or real-time determination of one or more videos to play next refers to determining that a main video has finished playing and selecting or determining the next video to play in real time (e.g., within a predefined time limit, such as 0.1 seconds or 0.5 seconds, of the end of the main video) based on an analysis of a set of videos associated with the user (e.g., played by the user, liked by a user, shared by the user, etc.). In one implementation, the selection of which main video to stream and play is based on videos that the user has watched, liked, shared, added to a playlist, commented on, subscribed to (as part of a channel subscription or individually), etc.
[0031] For example, a user may be watching main video 1 102, which is a video about snowboarding in Utah. The recommendation system may select main video 2 110, which may be a video about snowboarding in Colorado, in real time as the next main video to be streamed and played. As part of the selection, the recommendation system may select main video 3 118, which may be a video about snowboarding in Canada, in real time as the main video to play after the next video.
[0032] Transition videos can be played between main videos to provide information about the next main video to be streamed and played. Transition video 1 106, transition video 2 114, and transition video 3 122 are examples of transition videos. Transition videos can be individual streams of video. In one implementation, the transition video provides information about the next main video to be streamed and played next. In another implementation, the transition video provides information about the next two main videos to be streamed and played next. For example, when played, transition video 1 106 can have a duration of 8 seconds and display animations of information about the next main video 2 110 (e.g., the title "Snowboarding in Utah") and information about the next main video 3 118 (e.g., the title "Snowboarding in Colorado").
[0033] 2 shows an example timeline of frames for a presentation of an interstitial transition video according to one implementation of the present disclosure. The transition video may be, for example, transition video 1 106 of FIG. 1. Transition video 1 106 may be eight seconds in duration and may play after main video 1 102 and before main video 2 110. The timeline begins at timestamp 00:00:00 and ends at timestamp 00:00:07.
[0034] At timestamp 00:00:00, when the main video (e.g., Main Video 1 102 in FIG. 1 ) finishes playing, the transition video begins playing. The transition video may include elements such as text, graphics, and one or more channel identifiers. A channel may be data content available from a common source or data content having a common topic or theme. The data content may be digital content selected by a user, digital content available to a user, digital content uploaded by a user, digital content selected by a content provider, digital content selected by a broadcaster, etc. The channel identifier may include text and / or an image. For example, the channel identifier may be text 201 that reads “ACME CHANNEL” and an image 203. The image 203 may be the ACME Channel logo. In one implementation, the transition video is not associated with a channel and does not include any channel identifier. For example, the transition video may include the text “COMING UP” rather than the text “COMING UP ON ACME CHANNEL.”
[0035] Elements in the transition video can be animated. Elements can have animation features such as fading in and out, bouncing in, spinning in, floating in and out, etc. For example, at timestamp 00:00:00, the text "UP," "ACME," and "CHANNEL" may individually float into view from the left side. In another example, image 203 may spin into view and header text 205 "Next" may begin to float into view from below.
[0036] At timestamp 00:00:01, more text 204 floats in individually, the image 202 continues to spin into view, the header text "Next" continues to float in until it reaches position 206, and the header text 207 "After" floats in from below until it reaches its specified position.
[0037] At timestamp 00:00:02, additional text 212 floats into view, with title text "Show 1" 209 fading into view located below header text 208 "Next," and title text "Show 2" 211 also fading into view located below header text 210 "After." Header text 208, 210 indicate the type of information that will be displayed near (e.g., below, above) the respective header text. For example, header text 208 "Next" indicates that the information displayed below header text 208 (e.g., title "Show 1") is for the video that will play next. Header text 210 "After" indicates that the information displayed below header text 210 (e.g., title "Show 2") is for the video that will play after the next video. At timestamp 00:00:02, title text "Show 1" 209 and title text "Show 2" 211 may be configured to have a particular transparency value (eg, 75%) for a fade-in animation.
[0038] At timestamp 00:00:03, title text "Show 1" 213 and title text "Show 2" 215 may be fully faded in and not have any transparency. At timestamp 00:00:05, text "COMING UP ON ACME CHANNEL" 217, image 223, header text "AFTER" 219, and title text "Show 2" 221 fade out of view, each of which may be configured to have a particular transparency value (e.g., 80%). At timestamp 00:00:07, text "COMING UP ON ACME CHANNEL" 217, image 223, header text "AFTER" 219, and title text "Show 2" 221 have fully faded out of view. When the transition video ends, for example, at timestamp 00:00:08, the next video titled "Show 1" begins playing.
[0039] A transition video is a combination of a predefined base video component and a dynamic metadata overlay component. Figure 3 shows an exemplary timeline of frames playing a base video component of an interstitial transition video according to one implementation of the present disclosure. The base video component (hereinafter referred to as the "base video") does not contain information about the actual main video to be played next. The base video is a predefined video that includes an area 302 in its frames, reserved for overlaying metadata describing a main video dynamically selected to be played next. The base video may include one or more other areas (e.g., area 304) within its frames reserved for overlaying metadata describing another main video dynamically selected to be played after the next main video. In one implementation, the base video is for a particular channel and can be provided by the channel owner. The creator of the base video can specify one or more areas within the frames of the base video reserved for overlaying metadata.
[0040] 4 illustrates an exemplary timeline of frames of a dynamic metadata overlay component of a transition video according to one implementation of the present disclosure. For example, when a main video is dynamically selected for a particular user, information presented in the transition video (e.g., video title, video channel, video creator, video statistics, etc.) is also dynamically determined in real time and presented by the client device as part of the dynamic metadata overlay component.
[0041] The dynamic metadata overlay component (hereinafter referred to as "metadata overlay") refers to the presentation of metadata. The presentation can be animated. The metadata can be for one or more main videos dynamically selected to be played. The metadata can include, for example, the title of the video, the creator of the video, the channel of the video, one or more keywords associated with the video, and statistics for the video. Example statistics can include the number of views, the number of likes, the number of dislikes, the number of shares, the number of playlists that include the video, and the number of comments. The metadata overlay can be the presentation of metadata on a layer with portions that are transparent or semi-transparent layers on the display. The metadata overlay can be a foreground layer presented on the display, and the base video playback can be a background layer on the display.
[0042] Metadata overlays can be created from executable presentation templates. Executable presentation templates can include executable code or scripts that include fields and / or placeholders assigned to specific metadata. For example, a presentation template can include a text field for the title of a video and another text field for the channel associated with the video. The fields and / or placeholders in the presentation template can be populated with corresponding metadata in real time, as described in more detail below in connection with FIG. 5. When populated and executed, the presentation template presents one or more animations of the metadata on the display as shown in the time sequence of frames. For example, the text field for the title of the next video to be played can be populated with the metadata "Show 1," and the text field for the title of the video to be played after the next video can be populated with the metadata "Show 2." At timestamp 00:00:02, the animation "Show 1" from metadata 401 and the animation "Show 2" from metadata 403 fade into view.
[0043] 5 illustrates an exemplary system architecture 500 for an implementation of the present disclosure. The system architecture 500 may include one or more client devices 501, one or more servers 515, 517, 519, and one or more data stores 513 coupled to each other via one or more networks 510. The network 510 may be a public network (e.g., the Internet), a private network (e.g., a local area network (LAN) or a wide area network (WAN)), or a combination thereof. The servers 515, 517, 519 may be hosted on machines such as, but not limited to, rack-mounted servers, personal computers, desktop computers, media centers, or any combination of the above.
[0044] The data store 513 can store media items such as main videos for streaming and playback. The media items can include, but are not limited to, digital videos, digital movies, digital photos, digital music, website content, social media updates, electronic books (e-books), e-magazines, digital newspapers, digital audiobooks, e-journals, web blogs, RSS (real simple syndication) feeds, e-comic books, software applications, etc. The data store 513 can be persistent storage capable of storing data. As will be appreciated by those skilled in the art, in some implementations, the data store 513 can be a network-attached file server, while in other implementations, the data store 513 can be some other type of persistent storage, such as an object-oriented database, a relational database, etc.
[0045] The video streaming server 515 can provide video streaming services to one or more client devices 501. The video streaming server 515 can stream video (e.g., main video, base video) to the client devices 501. In one implementation, the video streaming server 515 is part of a content sharing platform, such as the content sharing platform 1120 described in more detail below in connection with FIG. 11. In one implementation, the video streaming server 515 is part of a content provider platform, such as the content provider platform 1195 described in more detail below in connection with FIG. 11.
[0046] The client device 501 may include an application 503 for playing media items (e.g., videos). The application 503 may be, for example, a web browser that can access content served by a video streaming server 515. In another example, the application 503 may be an application (e.g., a mobile application, a smart TV application) that can access content served by the video streaming server 515. The client device 501 may be a computing device such as a personal computer (PC), a laptop, a mobile phone, a smartphone, a tablet computer, a netbook computer, a network-connected television, etc.
[0047] In one implementation, the video streaming server 515 streams the videos according to a predefined schedule. In one implementation, the scheduling server 519 creates a schedule of the videos to be streamed and stores the schedule in a data store 513 that can be accessed by the video streaming server 515.
[0048] In one implementation, the video streaming server 515 streams videos according to a dynamic selection of videos made by the recommendation server 517. The recommendation server 517 can select in real time one or more videos to play next on the video streaming service provided by the video streaming server 515. In one implementation, the recommendation server 517 is part of a recommendation platform, such as the recommendation platform 1157 described in more detail below in connection with FIG.
[0049] The client device 501 can receive a video stream of the main video 550 from the video streaming server 515, and an application 503 on the client device 501 can play the main video 550 on a display coupled to the client device 501. In one implementation, the client device 501 can receive a universe resource identifier (URI) (e.g., a universe resource locator (URL)) for the main video 550 from the video streaming server 515, and the client device 501 can use the URI to obtain the main video 550 over the internet 510 via an internet connection. The client device 501 receives portions of the main video 550 stream and plays the portions as they are received.
[0050] When playback of the main video finishes, the client device 501 can immediately play a transition video as a notification of one or more upcoming videos to be played. A transition video is a composite of a predefined base video component (e.g., base video 557) and a dynamic metadata overlay component (e.g., an executable presentation template). Playing the transition video may include playing the base video in a background layer on the display and executing a presentation template to present metadata items in a foreground layer on the display. The main video may end, for example, when the video reaches an end, when the user advances to the end of the video, or when the user skips playback of the video.
[0051] The client device 501 can include an interstitial component 505 for dynamically creating and playing custom transitional videos. The interstitial component 505 can communicate with or be part of the application 503.
[0052] The interstitial component 505 can receive a base video 557 and configuration parameters 553 for the base video 557 from the video streaming server 515. The base video 557 and configuration parameters 553 can be stored in a data store 513 that the interstitial component 505 can access. In one implementation, the interstitial component 505 receives a base video identifier (e.g., a URI) from the video streaming server 515 and uses the URI to retrieve the base video 557 over the network 510 via an Internet connection. The configuration parameters 553 specify how and when to display metadata items when executing a particular presentation template 507 corresponding to the base video 557. The configuration parameters 553 can include a set of timecodes, font style, font size, font color, position, and animation type for fields and / or placeholders in the presentation template 507 and / or metadata items populating the fields and / or placeholders. In one implementation, each timecode has one or more corresponding metadata identifiers that indicate the metadata item to be displayed at the respective timecode, the corresponding font style, the corresponding font color, the corresponding position, and the corresponding animation type to be used to display the metadata item specified at the respective timecode.
[0053] The dynamic metadata overlay component can be created by populating an executable presentation template 507 corresponding to a base video 557 with metadata 551 of a video selected to be played next and executing the populated presentation template. The interstitial component 505 can select an executable presentation template 507 to use to create the transition video. The selection of an executable presentation template 507 is described in more detail below in connection with FIG. 7. The client device 501 can store one or more executable presentation templates 507 locally or can access one or more executable presentation templates 507 stored in a data store 513. The executable presentation templates 507 can be provided by a video streaming server 515 and / or a content provider (e.g., a channel owner).
[0054] The recommendation server 517 can provide metadata 551 for the video selected to be played next. The data store 513 can store metadata 551 for media items (e.g., videos). The metadata 551 can include, for example, the title of the media item, the creator of the media item, the channel of the media item, one or more keywords associated with the media item, and statistics for the media item. Example statistics can include the number of views, the number of likes, the number of dislikes, the number of shares, the number of playlists that include the media item, and the number of comments about the media item.
[0055] The metadata overlays correspond to one or more particular base videos, and the presentation of the metadata overlays is synchronized with the playback of the corresponding base videos, as described in more detail below in connection with Figures 6A-6E.
[0056] The client device 501 may include a playlist component 506 for dynamically creating a custom filler playlist of videos for a particular user to fill a time period (e.g., 7 minutes) until the next video is to be played. The playlist component 506 is described in more detail below in connection with FIGS. 8-10.
[0057] The transition video is a composite of the playback of base video 557 and the execution of executable presentation template 507 populated with metadata items from metadata 551. Execution of the presentation template may result in animation presenting the metadata items in a foreground layer on the display, with playback of the base video in a background layer on the display. Figures 6A-6E show an exemplary timeline of frames playing base video 557 in a background layer of a display and placing animated metadata presentation in a foreground layer of a display to dynamically create a custom transition video for a user, according to one implementation of the present disclosure.
[0058] FIG. 6A shows the 00:00:00 time point. Frame 602 shows the start of playback of a base video at the 00:00:00 time point. Frame 604 shows the result of executing an executable presentation template corresponding to the base video and populated with metadata items. Even after executing the populated presentation template, the metadata items are not yet displayed at the 00:00:00 time point. Frame 606 shows compositing by overlaying frame 604 on frame 602 to create a custom transition video at the 00:00:00 time point for a particular user. Frame 604 may be in a foreground layer on display 608, and frame 602 may be in a background layer on display 608. At the 00:00:00 time point, frame 604 of the metadata animation does not present any metadata. A client device (e.g., client device 501) can receive configuration parameters (e.g., timecodes) that specify how and when to present the metadata on display 608. The client device may animate the metadata at specific times based on the time code to synchronize the appearance and disappearance of metadata in a foreground layer on the display 608 with the playback of the base video in a background layer on the display 608. For example, header text 603 "Next" in the base video may float from the bottom of the display 608 to eventually reach a specific position (e.g., position 605) on the display 608 at a later time. As shown in FIG. 6B, the time code for the base video may specify that the metadata corresponding to the header text 603 "Next" will not be presented on the display 608 until the header text 603 "Next" reaches position 605.
[0059] 6B shows frame 624 of a base video playing at time 00:00:02 and frame 630 of a metadata animation at the same time. Frame 632 shows compositing by overlaying frame 630 onto frame 624 to create a custom transition video at the same time. In frame 624, header text 620 "Next" and header text 622 "After" each reach their respective specific positions. At the same time, in frame 630, title text 626 "Show 1" and title text 628 "Show 2" fade into view. A base video can have configuration parameters that specify how metadata items should be presented on a display when the base video's executable presentation template is executed. The configuration parameters may specify, for example, that a particular time code, such as 00:00:02, indicating two seconds into the beginning of playback of the base video, triggers the execution of a particular type of animation (e.g., fade-in) of title text 626 "Show 1" and title text 628 "Show 2," as shown in frame 630. The configuration parameters may also specify a transparency value (e.g., 75%) for this particular text and this particular time code. In frame 632 of the composition, the animation (e.g., fade-in) of title text 634 "Show 1" and the animation (e.g., fade-in) of title text 637 "Show 2" are in the foreground layer, which is in front of or overlays the playback of the base video in the background layer.
[0060] 6C shows frame 640 of the base video playing at 0:00:03 and frame 645 of the metadata animation at the same time. Frame 650 shows compositing by overlaying frame 645 on frame 640 to create a custom transition video at the same time. In frame 645, title text 641 "Show 1" and title text 643 "Show 2" each fade fully into view. Configuration parameters may specify a transparency value (e.g., 0%) for this particular text and this particular timecode. For example, in frame 650 of the compositing, title text 636 "Show 1" and title text 638 "Show 2" are each displayed in full view (i.e., no transparency).
[0061] Figure 6D shows frame 660 of the base video playing at time 0:00:05 and frame 665 of the metadata animation at the same time. Frame 670 shows compositing by overlaying frame 665 onto frame 660 to create a custom transition video at the same time. In frame 660, text 661 "COMING UP ON ACME CHANNEL," image 662 of the ACME Channel logo, and header text 663 "After" begin to fade out of view as the base video plays. Text 661, image 662, and header text 663 continue to fade as the base video plays, as shown below in frame 680 at time 00:00:07 in Figure 6E.
[0062] Referring to FIG. 6D , at frame 665, the title text 663 “Show 2” in the metadata animation begins to fade out of view. Configuration parameters may specify that this particular timecode, such as 00:00:05, which indicates 5 seconds from the start of playback of the base video, triggers the execution of a particular type of animation (e.g., fade-out) of the title text 663. The configuration parameters may specify a transparency value (e.g., 80%) for this particular text and this particular timecode. At frame 685 at time 00:00:07 in FIG. 6E , the title text 663 continues to fade as the client device continues to execute the metadata animation, as shown below. Referring to FIG. 6D , frame 670 of the composition shows that the header text 667 “Next” and title text 669 “Show 1” are still displayed in full view (i.e., no fade-out, no transparency).
[0063] 6E shows frame 680 of the base video playing at 0:00:07 and frame 685 of the metadata animation at the same time. Frame 690 shows compositing by overlaying frame 685 onto frame 680 to create a custom transition video at the same time. Frame 690 of the compositing shows that header text 687 "Next" and title text 689 "Show 1" are the only elements of the transition video displayed. The transition video ends at 00:00:08, and the client device can begin playing the next video, "Show 1."
[0064] 7 shows a flow diagram of an aspect of a method 700 for dynamically providing custom interstitial transition video according to one implementation of the present disclosure. Method 700 is performed by processing logic that may include hardware (circuitry, dedicated logic, etc.), software (such as running on a general-purpose computer system or dedicated machine), or a combination of both. In one implementation, the method is performed by interstitial component 505 in client device 501 of FIG. 5. In one implementation, a processing device of the client device performs method 700.
[0065] At block 710, the processing device receives a base video to be played by the client device. In one implementation, the processing device receives a base video identifier (e.g., a URI). The URI identifies a file location of the base video, and the processing device uses the URI to retrieve the file of the base video. When played on a display, the base video includes one or more areas in the frames of the base video that are reserved for being overlaid with a set of metadata items (e.g., areas 302, 304 of FIG. 3). The base video and / or the base video identifier may be received from a video streaming server (e.g., video streaming server 515 of FIG. 5).
[0066] At block 720, the processing device determines a set of videos to be played next for the particular user. The set of videos can include one or more videos. The selection of the set of videos can be based on, for example, a set of videos previously played by the user, liked by the user, recommended by the user, shared by the user, commented on by the user, added to a playlist by the user, and / or subscribed to by the user. In one implementation, the selection of the set of videos can be based on another set of videos associated with the particular user. In one implementation, the selection can be made by a recommendation server, which notifies the client device of the selection of the set of videos. In another implementation, the selection of the set of videos can be made by a scheduling server, which notifies the client device of the selection of the set of videos. One user's video selection may differ from another user's video selection. In yet another implementation, the client device dynamically selects the set of videos to be played next. The processing device can create a custom filler playlist that includes the selected set of videos, as described in more detail below in connection with FIGS. 8 and 9.
[0067] At block 730, the processing device receives metadata content for the set of videos. The metadata content can be received from a recommendation server or a scheduling server. The metadata content can be received simultaneously with receiving the base videos. In one implementation, the video streaming server sends instructions to the recommendation server or the scheduling server to send the metadata content to the client device.
[0068] At block 740, the processing device populates a presentation template for the base video with a set of metadata items extracted from the metadata content of the selected set of videos. The presentation template may be executable code that, when executed, animates one or more individual metadata items in the set of metadata items on a display coupled to the processing device. The set of metadata items may include at least one of a title, an author, a channel, one or more keywords, or statistics for each video in the selected set of videos.
[0069] The processing device can use the base video identifier to select a presentation template that corresponds to the base video identifier. In one implementation, the processing device accesses mapping data stored in a data store that maps the base video identifier to the presentation template. For example, a video streaming service can include an extreme sports channel having data content with an extreme sports theme and a gardening channel having data content with a gardening theme. The base video identifier of the extreme sports channel can be mapped to the presentation template of the extreme sports channel, and the base video identifier of the gardening channel can be mapped to the presentation template of the gardening channel.
[0070] At block 750, the processing device plays the base video on a display coupled to the client device. In one implementation, the display is coupled to a streaming device that supports mirroring and / or casting technology. The base video may include audio (e.g., music). In one implementation, the display is a display of the client device. For example, the display may be a display of a smartphone or a tablet computer. In another implementation, the display is coupled to a streaming device that supports mirroring and / or casting technology. The streaming device and the client device may be connected to the same network (e.g., a wireless network), and the client device may play the base video on a display coupled to the streaming device. In one implementation, the processing device executes a media player to play the base video.
[0071] At block 760, the processing device synchronizes execution of the populated presentation template with playback of the base video on the display to overlay the set of metadata items in reserved areas of frames of the base video. When the populated presentation template is executed, animation of one or more individual metadata items in the set of metadata items is overlaid in reserved areas of frames of the base video played on the display. The synchronization creates a custom transition video that notifies a specific user about the set of videos that will be played next. Immediately after completing the synchronization of the populated presentation template with the playback of the base video, the processing device can play a video in the set of videos selected to be played next.
[0072] For synchronization, the processing device can receive configuration parameters from the video streaming server for displaying metadata items in the populated presentation template on a display coupled to the processing device. The configuration parameters can include a set of time codes and one or more of a font style, font size, font color, position, or animation type. The processing device can use the configuration parameters to display the metadata items in the populated presentation template and synchronize the display of the metadata items with the playback of the base video. For example, font-related parameters can specify a font style, font size, and font color to be used to display a particular metadata item. Position parameters can specify X and Y coordinates for positioning a particular metadata item on the display. Animation parameters can specify a type of animation to perform to display a particular metadata item. The configuration parameters correspond to a particular base video. For example, configuration parameters for a base video of an extreme sports channel can be different from configuration parameters for a base video of a gardening channel.
[0073] When the processing device executes the populated presentation template, one or more specific metadata items may be presented on the display at specific time points based on a set of time codes. The time codes may specify one or more time points for executing animation of one or more specific metadata items in the set of metadata items in the populated presentation template on the display. Synchronization of the execution of the populated presentation template with the playback of the base video may be based on the start time of the playback of the base video. In one implementation, the processing device may determine a timestamp when the base video starts playing and may use the timestamp as a reference time for the time code. The time code may be expressed in seconds.
[0074] Execution of the populated presentation template executes animations of particular metadata items on the display according to a set of time codes. The set of time codes may include a first time point for executing a first type of animation of each metadata item on the display and a second time point for executing a second type of animation of each metadata item on the display. For example, if the processing device receives time code 00:00:02, and the populated presentation template is executed, a fade-in animation of two video titles may be executed two seconds after the base video begins playing, displaying the fade-in animation of the two video titles as shown in frame 630 of FIG. 6B, and time point 00:00:05 may trigger a fade-out animation of one of the video titles as shown in frame 665 of FIG. 6D. The types of animation may include, but are not limited to, fade in, fade out, bounce in, bounce out, spin in, spin out, float in, float out, etc.
[0075] 8 illustrates an example of a video streaming user interface 800 that displays an interactive schedule of videos to be streamed and played, according to one implementation of the present disclosure. The schedule can be predefined, for example, by a scheduling server (e.g., scheduling server 515 of FIG. 5). User interface 800 can be a graphical user interface.
[0076] The user interface may include a timeline 808 that includes time markers (e.g., "9:00," "9:30," "10:00," "10:30") of a schedule for playing videos. In one implementation, the time periods between the markers in the timeline 808 are the same. In one implementation, the time periods are 30-minute time blocks. The user interface 800 may include a visual representation of each of the scheduled videos. In one implementation, the visual representation of the scheduled videos is a cell (e.g., cell 804) that displays a video identifier (e.g., a video title) of the corresponding scheduled video. For example, cell 804 includes the title "Horror Show." One or more of the scheduled videos may be associated with a content provider. For example, the video "Horror Show" and the video "Zombie Show" may be associated with the content provider "ACME."
[0077] Videos can be scheduled to play at intervals of 30-minute time blocks or multiples thereof, such as every 30 minutes. A video streaming service provider can assign channels to content providers, and the content providers' videos can be played according to a schedule through the respective channels. For example, the video "Horror Show" is scheduled to play on the ACME channel at 9:00 PM, and the video "Zombie Show" is scheduled to play on the ACME channel at 9:30 PM.
[0078] A user may select the ACME channel or a particular video (e.g., "Horror Show") from the video streaming user interface to watch the particular video being played on the ACME channel according to a schedule. The user may select the video "Horror Show" at a point (e.g., at time 806) when a seven-minute playback time period 812 remains in the video before the video "Horror Show" ends. At time 806, seven minutes remain in the "Horror Show" video before the next video, "Zombie Show," plays on the ACME channel.
[0079] A client device (e.g., client device 501 of FIG. 5) may include a playlist component (e.g., playlist component 506 of FIG. 5) for dynamically creating a custom filler playlist of videos for a particular user to fill a time period 806 (e.g., 7 minutes) until the next video (e.g., a "zombie show") is played. The filler playlist may include one or more videos. In one implementation, a custom transition video may be played between videos in the filler playlist to notify the user of the next video to play. In one implementation, the videos selected for the filler playlist are associated with the current channel selected by the user. In another implementation, the videos selected for the filler playlist are not associated with the current channel selected by the user. In one implementation, the selection of videos for the custom filler playlist is based on videos that the user has watched, liked, shared, added to a playlist, commented on, subscribed to, etc.
[0080] 9 shows a flow diagram of an aspect of a method 900 for dynamically providing a custom filler video playlist according to one implementation of the present disclosure. Method 900 is performed by processing logic, which may include hardware (circuitry, dedicated logic, etc.), software (such as running on a general-purpose computer system or a dedicated machine), or a combination of both. In one implementation, the method is performed by a playlist component in a client device (e.g., playlist component 506 of FIG. 5). In one implementation, a processing device of the client device performs method 900.
[0081] At block 910, the processing device determines the amount of time from the current time to the start of the next scheduled video. The current time may be when the user executes an instance of the video streaming user interface or when the user selects a channel or video via the video streaming user interface. The processing device may access schedule data to determine the start time of the next scheduled video. The schedule data may be stored in a data store (e.g., data store 513 of FIG. 5 ).
[0082] At block 920, the processing device receives time data for the set of recommended videos from a recommendation server (e.g., recommendation server 517 of FIG. 5). The set of videos may be selected by the recommendation server. In one implementation, the set of videos is selected based on, for example, videos that the user has watched, liked, shared, added to a playlist, commented on, or subscribed to, based on a channel selected by the user, and / or based on a currently playing video.
[0083] At block 930, the processing device determines the duration of each video in the set of recommended videos. The duration data may include the duration of each video. At block 940, the processing device selects one or more videos from the set of recommended videos to create a filler video playlist. The processing device may select the videos based on the duration of the videos and the amount of time from the current time point to the start of the next scheduled video. For example, the amount of time from the current time point to the start of the next scheduled video may be 7 minutes, and the processing device may select a single video from the set of recommended videos for the filler playlist that has a duration of 7 minutes. In another example, the processing device may select a first video that is 3 minutes long, a second video that is 1.3 minutes long, and a third video that is 2.7 minutes long for the filler playlist.
[0084] In one implementation, the processing device automatically plays the first video in the filler video playlist. In another implementation, the processing device displays a visual representation (e.g., a thumbnail) of the first video in the filler video playlist in a video streaming user interface. A user may select the visual representation of the first video in the user interface to begin playback of the first video.
[0085] 10 illustrates an example of a video streaming user interface 1000 displaying a visual representation 1010 of a video in a filler playlist, according to one implementation of the present disclosure. The video representation 1010 may be of the first video in the filler playlist. The video representation 1010 may include one or more of a thumbnail of the video, a title of the video, a duration of the video, a creator or owner of the video, and statistics of the video. The video representation 1010 may be interactive. For example, a user may select the video representation 1010 to trigger playback of the video.
[0086] 11 illustrates an example of a system architecture 1100 for dynamically providing custom transition videos according to one implementation of the present disclosure. The system architecture 1100 includes user devices 1110A-1110Z, one or more networks 1105, one or more data stores 1106, one or more servers 1130, and one or more platforms (e.g., a content sharing platform 1120, a recommendation platform 1157, an advertising platform 1165, a mobile platform 1150, a social network platform 1160, a search platform 1145, a content provider platform 1195, and a collaboration platform 1155). The platforms can be one or more computing devices (such as a rack-mounted server, a router computer, a server computer, a personal computer, a mainframe computer, a laptop computer, a tablet computer, a desktop computer, etc.), data stores (e.g., hard disks, memory, and databases), networks, software components, and / or hardware components.
[0087] The one or more networks 1105 may include one or more public networks (e.g., the Internet), one or more private networks (e.g., a local area network (LAN) or one or more wide area networks (WAN)), one or more wired networks (e.g., an Ethernet network), one or more wireless networks (e.g., an 802.11 network or a Wi-Fi network), one or more cellular networks (e.g., a Long Term Evolution (LTE) network), routers, hubs, switches, server computers, and / or combinations thereof. In one implementation, some components of the architecture 1100 are not directly connected to each other. In one implementation, the architecture 1100 includes separate networks 1105.
[0088] The one or more data stores 1106 may be memory (e.g., random access memory), cache, drive (e.g., hard drive), flash drive, database system, or another type of component or device capable of storing data. The one or more data stores 1106 may include multiple storage components (e.g., multiple drives or multiple databases) that may span multiple computing devices (e.g., multiple server computers). The data stores 1106 may be persistent storage that may store data. The persistent storage may be a local storage unit or a remote storage unit. The persistent storage may be a magnetic storage unit, an optical storage unit, a solid-state storage unit, an electronic storage unit (main memory), or a similar storage unit. The persistent storage may be a monolithic device or a distributed set of devices. As used herein, a "set" refers to any positive integer number of items.
[0089] The content items 1121 can be stored in one or more data stores 1106. The data stores 1106 can be part of one or more platforms. Examples of content items 1121 can include, but are not limited to, digital videos, digital movies, animated images, digital photos, digital music, website content, social media updates, electronic books (e-books), e-magazines, digital newspapers, digital audiobooks, e-journals, weblogs, RSS (real simple syndication) feeds, e-comic books, software applications, and the like. The content items 1121 are also referred to as media items. For brevity and simplicity, online videos (hereinafter also referred to as videos) are used throughout this specification as an example of content items 1121. The content items 1121 can include main videos (e.g., main videos 102, 110, 118, 126 in FIG. 1) and interstitial transition videos (e.g., interstitial transition videos 106, 114, 122 in FIG. 1).
[0090] The content item 1121 may be provided by a content provider. The content provider may be a user, a company, an organization, etc. The content provider may provide the content item 1121, which is a video advertisement. Hereinafter, a content provider providing a video advertisement will be referred to as an advertiser. For example, the content item 1121 may be a car video advertisement provided by a car advertiser. For example, when a service provider provides an advertisement on a user device 1110A-1110Z to be viewed by a user, the service provider may charge the advertiser a fee.
[0091] The user devices 1110A-1110Z may include devices such as smartphones, mobile phones, personal digital assistants (PDAs), portable media players, netbooks, laptop computers, e-book readers, tablet computers, desktop computers, set-top boxes, game consoles, televisions, etc. The user devices 1110A-1110Z may be client devices (e.g., client device 501 of FIG. 5).
[0092] Each user device 1110A-1110Z may include a communication application 1115. Content items 1121 may be consumed via the communication application 1115, the Internet, etc. As used herein, “media,” “media item,” “online media item,” “digital media,” “digital media item,” “content,” and “content item” may include electronic files that can be executed or loaded using software, firmware, or hardware configured to present the content item. In one implementation, the communication application 1115 may be an application that enables a user to create, send, and receive content items 1121 (e.g., videos) via a platform (e.g., content sharing platform 1120, recommendation platform 1157, advertising platform 1165, mobile platform 1150, social network platform 1160, search platform 1145, collaboration platform 1155, and content provider platform 1195) and / or a combination of platforms and / or networks.
[0093] For example, the communication application 1115 may be a social networking application, a video sharing application, a video streaming application, a video on demand application, a photo sharing application, a chat application, a content provider's mobile application, or any combination of such applications. The communication application 1115 in the user device may render, display, and / or present one or more content items 1121 (e.g., videos) to one or more users. For example, the communication application 1115 may provide one or more user interfaces (e.g., graphical user interfaces) rendered on the display of the user device for sending, receiving, and / or playing videos.
[0094] In one implementation, each user device 1110A-1110Z includes a content viewer 1113 (e.g., application 503 of FIG. 5 ) for rendering, displaying, and / or presenting content items 221 (e.g., videos) to one or more users. In one implementation, the content viewer 1113 is embedded in an application (e.g., a communication application 1115). In another implementation, the content viewer 1113 can be a standalone application (e.g., a mobile application, a desktop application, a game console application, a television application, etc.) such as the communication application 1115 that allows a user to consume (e.g., play, view) content items 1121 such as videos, images, documents (e.g., web pages), etc. For example, the content viewer 1113 can be a web browser that can access, search, present, and / or navigate content (e.g., web pages such as Hypertext Markup Language (HTML) pages, digital media items, etc.) served by a platform's web server. In another example, the content viewer 1113 may display an embedded media player (e.g., a Flash player or an HTML5 player) embedded in a document (e.g., a web page).
[0095] The content viewer 1113 can be provided to the user devices 1110A-1110Z by the server 1130 and / or the platform. For example, the content viewer 1113 may be an embedded media player embedded in a document (e.g., a web page) provided by the content sharing platform 1120. In another example, the content viewer 1113 may be an application downloaded from a platform (e.g., the content sharing platform 1120, the recommendation platform 1157, the advertising platform 1165, the mobile platform 1150, the social network platform 1160, the search platform 1145, the collaboration platform 1155, and the content provider platform 1195). In another example, the content viewer 1113 may be a standalone application pre-installed on the user devices 1110A-1110Z.
[0096] In one implementation, each user device 1110A-1110Z includes an interstitial component 1114 (e.g., interstitial component 505 of FIG. 5) for dynamically creating and playing custom transition videos. In one implementation, each user device 1110A-1110Z includes a playlist component 1112 (e.g., playlist component 503 of FIG. 5) for dynamically creating a custom filler playlist of videos for the particular user to fill a time period (e.g., 7 minutes) until the next video is played.
[0097] The content provider platform 1195 may provide a service, and the content provider may be a service provider. For example, the content provider may be a video streaming service provider that provides a media streaming service via the communication application 1115 for users to play videos, television programs, video clips, audio, audio clips, and movies on the user devices 1110A-1110Z via the content provider platform 1195.
[0098] The social network platform 1160 may provide online social networking services. The social network platform 1160 may provide communication applications 1115 for users to create profiles and perform activities on the profiles. Activities may include updating profiles, exchanging messages with other users, posting status updates, photos, videos, etc. to share with other users, rating (e.g., liking, commenting, sharing, recommending) status updates, photos, videos, etc., and receiving notifications of other users' activities.
[0099] Mobile platform 1150 may be and / or include one or more computing devices (e.g., servers), data stores, networks (e.g., telephone networks, cellular networks, local area networks, the Internet, and / or combinations of networks), software components, and / or hardware components that can be used to enable users to connect, share information, and / or interact with each other using one or more mobile devices (e.g., phones, tablet computers, laptop computers, wearable computing devices, etc.) and / or other suitable devices. For example, mobile platform 1150 may enable telephone communication, short message service (SMS) messaging, multimedia message service (MMS) messaging, text chat, and / or any other communication between users. Mobile platform 1150 may support user communication via video messaging, video chat, and / or video conferencing.
[0100] The collaboration platform 1155 may enable collaboration services such as video chat, video messaging, and voice and / or video conferencing (e.g., between users of devices 1110A-1110Z) using, for example, streaming video or voice over IP (VoIP) technology, cellular technology, LAN and / or WAN technology, and may be used for personal, recreational, business, educational, or academic-oriented interactions.
[0101] The recommendation platform 1157 can be one or more computing devices (e.g., rack-mounted servers, router computers, server computers, personal computers, mainframe computers, laptop computers, tablet computers, desktop computers, etc.), data stores (e.g., hard disks, memory, databases), networks, software components, and / or hardware components that can be used to generate and provide content recommendations (e.g., articles, videos, posts, news, games, etc.). The recommendation platform 1157 can include one or more recommendation servers (e.g., recommendation server 517 of FIG. 5).
[0102] The search platform 1145 may be one or more computing devices (such as a rack-mounted server, a router computer, a server computer, a personal computer, a mainframe computer, a laptop computer, a tablet computer, a desktop computer, etc.), data stores (e.g., hard disks, memory, databases), networks, software components, and / or hardware components that may be used to enable a user to query one or more data stores 206 and / or one or more platforms and receive query results.
[0103] The advertising platform 1165 may be one or more computing devices (such as a rack-mounted server, a router computer, a server computer, a personal computer, a mainframe computer, a laptop computer, a tablet computer, a desktop computer, etc.), data stores (e.g., hard disks, memory, databases), networks, software components, and / or hardware components that can be used to provide video advertisements.
[0104] The content sharing platform 1120 may be one or more computing devices (such as a rack-mounted server, a router computer, a server computer, a personal computer, a mainframe computer, a laptop computer, a tablet computer, a desktop computer, etc.), data stores (e.g., hard disks, memory, databases), networks, software components, and / or hardware components that can be used to provide one or more users with access to the content items 1121 and / or to provide the content items 1121 to one or more users. For example, the content sharing platform 1120 may enable users to consume, upload, download, and / or search for the content items 1121. In another example, the content sharing platform 1120 may enable users to rate the content items 1121, such as by approving ("liking"), disliking, recommending, sharing, rating, and / or commenting on the content items 1121. In another example, the content sharing platform 1120 may enable users to edit the content items 1121. The content sharing platform 1120 may also include, for example, a website (e.g., one or more web pages) and / or one or more applications (e.g., communication application 1115) that may be used to provide one or more users with access to the content items 1121 via the user devices 1110A-1110Z. The content sharing platform 1120 may include any type of content delivery network that provides access to the content items 1121.
[0105] The content sharing platform 1120 may include multiple channels (e.g., channel A 1125 through channel Z 1129). A channel may be data content available from a common source or data content having a common topic or theme. The data content may be digital content selected by a user, digital content available to a user, digital content uploaded by a user, digital content selected by a content provider, digital content selected by a broadcaster, etc. For example, channel A 1125 may include videos Y and Z. A channel may be associated with an owner, which is a user who can perform actions on the channel. The data content may be one or more content items 1121. Although a channel is described as one implementation of a content sharing platform, implementations of the present disclosure are not limited to content sharing platforms that provide content items 1121 via a channel model.
[0106] For ease of explanation, the methods of the present disclosure are depicted and described as a series of acts. However, acts according to the present disclosure may occur in various orders and / or simultaneously, as well as with other acts not shown and described herein. Moreover, not all illustrated acts are required to implement a method in accordance with the disclosed subject matter. In addition, those skilled in the art will understand and appreciate that a method may alternatively be represented as a series of interrelated states via a state diagram or events. Furthermore, it should be appreciated that the methods disclosed herein can be stored on an article of manufacture to facilitate transport and transfer of such method to a computing device. As used herein, the term "article of manufacture" is intended to encompass a computer program accessible from any computer-readable device or storage medium.
[0107] FIG. 12 illustrates a diagram of a machine in the exemplary form of a computer system 1200 capable of executing a set of instructions to cause the machine to perform any one or more of the methodologies described herein, according to one implementation of the present disclosure. The computer system 1200 may be the client device 501 of FIG. 5. The machine may operate in the capacity of a client machine in a client / server network environment or as a peer machine in a peer-to-peer (or distributed) network environment. The machine may be a personal computer (PC), a tablet PC, a set-top box (STB), a personal digital assistant (PDA), a mobile phone, a web appliance, a server, a network router, a switch, or a bridge, or any machine capable of executing a set of instructions (e.g., sequentially) that specify actions to be performed by the machine. Furthermore, while only a single machine is shown, the term “machine” shall also be considered to include any collection of machines that individually or jointly execute a set (or sets) of instructions to perform any one or more of the methodologies described herein.
[0108] The exemplary computer system 1200 includes a processing device (processor) 1202, a main memory 1204 (e.g., read-only memory (ROM), flash memory, dynamic random access memory (DRAM) such as synchronous DRAM (SDRAM), double data rate (DDR SDRAM), or DRAM (RDRAM)), a static memory 1206 (e.g., flash memory, static random access memory (SRAM), etc.), and a data storage device 1218, which communicate with each other via a bus 1230.
[0109] Processor (processing device) 1202 represents one or more general-purpose processing devices, such as a microprocessor, a central processing unit, or the like. More specifically, processor 1202 may be a complex instruction set computing (CISC) microprocessor, a reduced instruction set computing (RISC) microprocessor, a very long instruction word (VLIW) microprocessor, or a processor implementing other instruction sets or combinations of instruction sets. Processor 1202 may also be one or more special-purpose processing devices, such as an application-specific integrated circuit (ASIC), a field-programmable gate array (FPGA), a digital signal processor (DSP), a network processor, or the like. Processor 1202 is configured to execute instructions 1222 to perform the operations and steps described herein.
[0110] Computer system 1200 may further include a network interface device 1208. Computer system 1200 may also include a video display unit 1210 (e.g., a liquid crystal display (LCD) or a cathode ray tube (CRT)), input devices 1212 (e.g., a keyboard, an alphanumeric keyboard, a motion-sensitive input device, a touch screen), cursor control devices 1214 (e.g., a mouse), and signal generation devices 1216 (e.g., a speaker).
[0111] The data storage device 1218 may include a non-transitory computer-readable storage medium 1228 on which one or more sets of instructions 1222 (e.g., software) embodying any one or more of the methods or functions described herein are stored. The instructions 1222 may reside, completely or at least partially, within the main memory 1204 and / or the processor 1202 during execution by the computer system 1200, with the main memory 1204 and the processor 1202 also constituting computer-readable storage media. The instructions 1222 may further be transmitted or received over the network 1220 via the network interface device 1208.
[0112] In one implementation, instructions 1222 include instructions for an interstitial component (e.g., interstitial component 505 of FIG. 5 ) and / or a software library including a method for invoking the interstitial component. In one implementation, instructions 1222 include instructions for a playlist component (e.g., playlist component 506 of FIG. 5 ) and / or a software library including a method for invoking the playlist component. While computer-readable storage medium 1228 (machine-readable storage medium) is shown in the exemplary implementation to be a single medium, the term “computer-readable storage medium” shall be interpreted to include a single medium or multiple media (e.g., centralized or distributed databases and / or associated caches and servers) that store one or more sets of instructions. The term “computer-readable storage medium” shall also be interpreted to include any medium that can store, encode, or execute a set of instructions for execution by a machine, causing the machine to perform any one or more of the methodologies of this disclosure. Accordingly, the term “computer-readable storage medium” shall be interpreted to include, but is not limited to, solid-state memory, optical media, and magnetic media.
[0113] In the above description, many details are set forth. However, it will be apparent to one skilled in the art having the benefit of this disclosure that the present disclosure may be practiced without these specific details. In some instances, well-known structures and devices are shown in block diagram form, rather than in detail, in order to avoid obscuring the present disclosure.
[0114] Some portions of the detailed description are presented in terms of algorithms and symbolic representations of operations on data bits within a computer memory. These algorithmic descriptions and representations are the means used by those skilled in the data processing arts to most effectively convey the substance of their work to others skilled in the art. An algorithm is here, and generally, conceived to be a self-consistent sequence of steps leading to a desired result. The steps require physical manipulations of physical quantities. Usually, though not necessarily, these quantities take the form of electrical or magnetic signals capable of being stored, transferred, combined, compared, and otherwise manipulated. It has proven convenient at times, for reasons of common usage, to refer to these signals as bits, values, elements, symbols, characters, terms, numbers, or the like.
[0115] It should be borne in mind, however, that all of these and similar terms are associated with, and are merely convenient labels applied to, the appropriate physical quantities. Unless otherwise specified, as will be apparent from the description that follows, throughout the description, discussions using terms such as "receive," "determine," "populate," "synchronize," "play," "select," "create," and the like refer to the actions and processes of a computer system or similar electronic computing device that manipulate and convert data represented as physical (e.g., electronic) quantities in the computer system's registers and memory into other data similarly represented as physical quantities in the computer system's memory or registers, or other such information storage, transmission, or display device.
[0116] For ease of explanation, the methods are illustrated and described herein as a series of acts. However, acts in accordance with the present disclosure may occur in various orders and / or simultaneously, as well as with other acts not shown and described herein. Moreover, not all illustrated acts are required to implement a method in accordance with the disclosed subject matter. In addition, those skilled in the art will understand and appreciate that a method may alternatively be represented as a series of interrelated states via a state diagram or events. Furthermore, it will be appreciated that the methods disclosed herein can be stored on an article of manufacture to facilitate transport and transfer of such method to a computing device. As used herein, the term "article of manufacture" is intended to encompass a computer program accessible from any computer-readable device or storage medium.
[0117] Some implementations of the present disclosure also relate to an apparatus for performing the operations herein. This apparatus can be constructed for the intended purposes or can include a general-purpose computer selectively activated or reconfigured by a computer program stored in the computer. Such a computer program can be stored on a computer-readable storage medium, such as, but not limited to, a floppy disk, an optical disk, a CD-ROM, a magneto-optical disk, a read-only memory (ROM), a random-access memory (RAM), an EPROM, an EEPROM, a magnetic or optical card, or any type of medium suitable for storing electronic instructions.
[0118] Throughout this specification, a reference to “one implementation” or “an implementation” means that a particular feature, structure, or characteristic described in connection with an implementation is included in at least one implementation. Thus, the appearances of the phrase “in one implementation” or “in an implementation” in various places throughout this specification do not necessarily all refer to the same implementation. Further, the term “or” is intended to mean an inclusive “or” rather than an exclusive “or.” Furthermore, the word “example” or “exemplary” is used herein to mean serving as an example, instance, or illustration. Any aspect or design described herein as “exemplary” should not necessarily be construed as preferred or advantageous over other aspects or designs. Rather, use of the term “example” or “exemplary” is intended to present concepts in a concrete manner.
[0119] It should be understood that the above description is illustrative, and not restrictive. Many other implementations will be apparent to those skilled in the art upon reading and understanding the above description. The scope of the present disclosure should, therefore, be determined with reference to the appended claims, along with the full scope of equivalents to which such claims are entitled.
[0120] In situations where the systems described herein may collect or utilize personal information about a user, the user may be given the opportunity to control whether a program or feature collects user information (e.g., information about the user's social network, social behavior or activities, occupation, user preferences, or the user's current location) or whether and / or how to receive content from a content server that may be more relevant to the user. Additionally, some data may be treated in one or more ways before it is stored or used, such that personally identifiable information is removed. For example, a user's identity may be treated so that personally identifiable information cannot be determined about the user, or the user's geographic location from which location information is obtained may be generalized (e.g., to the city, zip code, or state level) so that the user's specific location cannot be identified. Thus, the user may control how information about the user is collected and used by the content server.
[0121] In situations where the systems described herein may collect or utilize personal information about a user, the user may be given the opportunity to control whether a program or feature collects user information (e.g., information about the user's social network, social behavior or activities, occupation, user preferences, or the user's current location) or whether and / or how to receive content from a content server that may be more relevant to the user. Additionally, some data may be treated in one or more ways before it is stored or used, such that personally identifiable information is removed. For example, a user's identity may be treated so that personally identifiable information cannot be determined about the user, or the user's geographic location from which location information is obtained may be generalized (e.g., to the city, zip code, or state level) so that the user's specific location cannot be identified. Thus, the user may control how information about the user is collected and used by the content server.
[0122] In one implementation, if a video in the filler playlist only partially plays, the client device updates the set of videos in the filler playlist. For example, if only 0.5 minutes of a 3-minute video plays because the user stopped the video, the processing device recalculates the amount of time from the current time to the start of the next scheduled video and changes the set of videos in the filler playlist based on the recalculation.
[0123] An apparatus for dynamically providing custom interstitial transition videos is also described. In one implementation, the apparatus includes means for receiving a base video to be played by a client device. The base video includes areas within frames of the base video reserved to be overlaid with a set of metadata items. The apparatus includes means for determining, by the client device, a first set of videos to be next played for a particular user. The selection of the first set of videos is based on a second set of videos associated with the particular user.
[0124] The apparatus includes means for receiving, by a client device, from a server, metadata content for a first set of videos, and means for populating, by the client device, an executable presentation template for the base video with a set of metadata items extracted from the metadata content of the first set of videos.
[0125] The apparatus includes means for playing, by a client device, a base video on a display coupled to the client device, and means for synchronizing, by the client device, execution of the populated presentation template with the playback of the base video on the display to overlay reserved areas of frames of the base video with a set of metadata items, whereby a custom interstitial transition video is created that informs a particular user about a first set of videos that will be played next.
[0126] Execution of the populated presentation template results in animation of one or more individual metadata items in the set of metadata items on a display coupled to the client device, with reserved areas of frames of a base video played on the display being overlaid with the animation of one or more individual metadata items in the set of metadata items. The apparatus includes: means for receiving a set of time codes for the base video, the time codes specifying one or more time points for executing the animation of each metadata item in the set of metadata items in the populated presentation template on the display; and means for executing the animation of each metadata item in the set of metadata items on the display coupled to the client device in accordance with the set of time codes. The set of time codes includes first time points for executing a first type of animation of each metadata item on the display and second time points for executing a second type of animation of each metadata item on the display.
[0127] The apparatus includes means for receiving configuration parameters for displaying metadata items in a populated presentation template on a display coupled to a client device, the configuration parameters including at least one of a font style, a font size, a font color, a position of text, or a type of animation, and means for displaying the metadata items in the populated presentation template on the display based on the configuration parameters.
[0128] In one implementation, the set of metadata items includes at least one of a title, a creator, a channel, one or more keywords, or statistics for each video in the first set of videos.
[0129] In one implementation, the apparatus includes means for determining an amount of time from a current time point to the start of a next scheduled video in a predefined schedule of videos, means for receiving time data for a plurality of recommended videos from a recommendation server, means for determining a duration of each video in the plurality of recommended videos, and means for selecting one or more videos from the plurality of recommended videos based on the duration of each video in the plurality of recommended videos and the amount of time from the current time point to the start of the next scheduled video.
[0130] In one implementation, an apparatus includes means for creating a filler playlist including a first set of videos. The filler playlist is played from a current time to the start of a next scheduled video in a predefined schedule of videos. The apparatus includes means for playing a custom interstitial transition video between playback of the videos in the filler playlist. [Explanation of symbols]
[0131] 101 axis 102 Main Video 1 106 Transition Video 1 110 Main Video 2 114 Transition Video 2 118 Main Video 3 122 Transition Video 3 126 Main Video 4 201 Text 203 images 204 Text 205 Header Text 206 position 207 Header Text 208 Header Text 209 Title Text 211 Title Text 212 Additional Text 213 Title Text 215 Title Text 217 Text 219 Header Text 221 Title Text 302 Area 401 Metadata 403 Metadata 500 System Architecture 501 Client Device 503 Application 505 Interstitial Components 506 Playlist Component 507 Presentation Templates 510 Network 513 Data Store 515 Server 517 Server 519 Server 550 Main Video 551 Metadata 553 Configuration Parameters 557 Base Video 602 frames 603 Header Text 604 frames 605 position 608 Display 620 Header Text 622 Header Text 624 frames 626 Title Text 628 Title Text 630 frames 632 frames 634 Title Text 636 Title Text 637 Title Text 638 Title Text 640 frames 641 Title Text 643 Title Text 645 frames 650 frames 660 frames 661 Text 662 images 663 Header Text 665 frames 667 Header Text 669 Title Text 670 frames 680 frames 685 frames 687 Header Text 689 Title Text 690 frames 700 methods 800 Video Streaming User Interface 804 cells As of 806 808 Timeline 812 hour period 1000 Video Streaming User Interface 1010 Visual Representation 1100 System Architecture 1105 Network 1106 Datastore 1110A~1110Z User Device 1112 Playlist Component 1113 Content Viewer 1114 Interstitial Components 1115 Communication Applications 1120 Content Sharing Platform 1121 Content Items 1125 Channel A 1129 Channel Z 1130 Server 1145 Search Platform 1150 Mobile Platform 1155 Collaboration Platform 1157 Recommended Platforms 1160 Social Network Platforms 1165 Advertising Platform 1195 Content Provider Platform 1200 Computer System 1202 Processing device (processor) 1204 main memory 1206 static memory 1208 Network Interface Device 1210 Video Display Unit 1212 Input Devices 1214 Cursor Control Device 1216 Signal Generating Device 1218 Data storage device 1220 Network 1222 Command 1228 Non-transitory computer-readable storage medium 1230 Bus
Claims
[Claim 1] receiving, by a client device of a user, a base media item including a display area customized for the user to provide transitions between a first video played on the client device and a plurality of second videos playable on the client device after the first video; playing, by the client device, the first video on a screen of the client device; automatically customizing the display area of the base media item to transform the base media item into a custom transition media item that presents information about each of the plurality of second videos playable after the first video; customizing the display area, determining, by the client device, the plurality of second videos of interest to the user based at least in part on at least one video that the user has "liked," "shared," "playlisted," "commented on," or "subscribed to," wherein the at least one video includes the first video; populating, by the client device, the display area of the base media item with a plurality of metadata content items, each of the metadata content items including the information about a respective one of the plurality of second videos playable after the first video; and presenting the base media item with the customized display area on the screen of the client device before playing any of the plurality of secondary videos; the customized display area including overlaid metadata content items of the plurality of metadata content items each including the information for a respective video of the plurality of second videos; A method comprising:
Citation Information
Patent Citations
Method and corresponding device for providing targeted content in image frames of video
JP2016509811A
Method and system for automatically generating interstitial material related to video content
US20150143413A1
Cloud-based tool for creating video interstitials
US9557896B1