Providing templates for media content generation

By introducing a template system into the messaging system, users can create and use templates that combine preset audio tracks with media content. This solves the problems of low user participation and high computational resource consumption when generating and sharing media content, and simplifies the media content generation process.

CN121605475APending Publication Date: 2026-03-03SNAP INC
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
CN202480050135.0
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Priority Date
2023-07-31
Filing Date
2024-07-30
Publication Date
2026-03-03

AI Technical Summary

Technical Problem

Existing messaging systems lack user participation when generating and sharing media content, resulting in a cumbersome generation process and high computational resource consumption.

Method used

It provides a template system that allows users to create and use templates that combine preset audio tracks with media content, select media slots for videos/photos and edit them through the user interface to generate media content items.

Benefits of technology

It increases user engagement, reduces the time and computing resources required to generate media content, and simplifies the media content creation process.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN121605475A_ABST
    Figure CN121605475A_ABST
Patent Text Reader

Abstract

Aspects of the present disclosure relate to a method for providing a template for media content generation and a system including a storage medium storing a program. The program and method allow receiving, from a first device of a first user, an indication of a first user input setting an attribute to create a template for combining user-selected media with an audio track, the attributes specify an audio track, a sequence of media slots, a duration of each media slot, and a predefined edit for application to the media slots; causing a user interface to be displayed on a second device of a second user, the user interface to assign a respective video or photo to each media slot; and receiving, from a second device, a media content item generated based on a second user input provided via the user interface, the second user input assigning a respective video or photo to each media slot.
Need to check novelty before this filing date? Find Prior Art

Description

[0001] Priority requirements

[0002] This patent application claims the benefit of priority to U.S. Application Serial No. 18 / 362,644, filed July 31, 2023, which is incorporated herein by reference in its entirety. Background Technology

[0003] Systems such as messaging systems enable the exchange of information between users. For example, such systems allow users to exchange message content (e.g., text, video, images) with each other. Attached Figure Description

[0004] In the accompanying drawings (which are not necessarily drawn to scale), similar reference numerals may describe similar parts in different views. To facilitate identification of any discussion of a particular element or action, one or more of the highest-order digits in the reference numerals indicate the drawing number in which the element was first introduced. Some non-limiting examples are shown in the accompanying drawings:

[0005] Figure 1 It is a diagrammatic representation of a networked environment in which the content of this disclosure can be deployed, based on some examples.

[0006] Figure 2 It is a graphical representation of a messaging system with both client-side and server-side functionalities, based on some examples.

[0007] Figure 3 It is a graphical representation of the data structures maintained in the database based on some examples.

[0008] Figure 4 It is a graphical representation based on some example messages.

[0009] Figure 5 This is an interactive diagram illustrating the process of providing templates for media content generation, based on some examples.

[0010] Figure 6 The user interface corresponding to the camera device interface, including a template, is shown according to some examples.

[0011] Figure 7 The user interface corresponding to the media content item with the second entry point, including the template, is shown according to some examples.

[0012] Figure 8 The user interface corresponding to the template grid view is shown based on some examples.

[0013] Figures 9A to 9B The user interface corresponding to the template selection view is shown based on some examples.

[0014] Figures 10A to 10B The user interface corresponding to the media selection interface is shown according to some examples.

[0015] Figure 11 The user interface corresponding to the trim view is shown based on some examples.

[0016] Figure 12 The user interface corresponding to the capture interface is shown based on some examples.

[0017] Figure 13 The user interface corresponding to the preview interface is shown based on some examples.

[0018] Figure 14 This is a flowchart illustrating the process of providing templates for media content generation, based on some examples.

[0019] Figure 15 It is a graphical representation of a machine in the form of a computer system, within which a set of instructions can be executed to cause the machine to perform any or more of the methods discussed herein.

[0020] Figure 16 It is a block diagram showing the software architecture in which examples can be implemented. Detailed Implementation

[0021] Systems such as messaging systems typically allow users to exchange media content items (e.g., messages, images, and / or videos). As described herein, the system allows users to capture video and customize the interface elements displayed during video recording.

[0022] The disclosed implementation relates to a system that allows a first user (e.g., a template creator) to create templates for combining audio tracks with media content subsequently selected by a second user (e.g., an end user). The first user specifies a preset audio track, defines media slots for subsequent users to select video / photos accompanying the audio track, and defines edits (e.g., captions, labels, augmented reality content items) applied to the subsequently selected video / photos.

[0023] The system makes the template available to the end user. When a second user selects to use the template, the system provides the second user with a user interface for selecting the video / photo to be assigned to the media slot, and for selecting any additional edits (e.g., if the template allows). The system generates media content items based on the template's attributes and edits, as well as the second user's selections.

[0024] Based on the foregoing, the system provides increased user engagement in the generation and / or sharing of media content items. For example, the system facilitates the creation of media content items by employing templates with preset audio tracks(s) and accompanying media time slots. Therefore, the system helps create media content items for sharing among contacts, saving end users time and reducing computational resources / processing power.

[0025] Networked computing environment

[0026] Figure 1 This is a block diagram illustrating an example interactive system 100 for facilitating interactions on a network, such as exchanging text messages, making text audio and video calls, or playing games. Interactive system 100 includes multiple user systems 102, each of which hosts multiple applications including an interactive client 104 and other applications 106. Each interactive client 104 is communicatively coupled to other instances of the interactive client 104 (e.g., hosted on corresponding other user systems 102), an interactive server system 110, and a third-party server 112 via one or more communication networks including a network 108 (e.g., the Internet). The interactive client 104 may also communicate with the locally hosted applications 106 using an application programming interface (API).

[0027] Each user system 102 may include multiple user devices, such as mobile devices 114, head-mounted devices 116, and computer client devices 118, which can be communicatively connected to exchange data and messages.

[0028] Interactive client 104 interacts with other interactive clients 104 and with interactive server system 110 via network 108. The data exchanged between interactive clients 104 (e.g., interaction 120) and between interactive client 104 and interactive server system 110 includes functions (e.g., commands for activating functions) and payload data (e.g., text, audio, video, or other multimedia data).

[0029] Interactive server system 110 provides server-side functionality to interactive client 104 via network 108. While some functions of interactive system 100 are described herein as being performed by interactive client 104 or interactive server system 110, the location of certain functions within interactive client 104 or interactive server system 110 may be a design choice. For example, it may be technically preferred that specific technologies and functions are initially deployed within interactive server system 110, but later migrated to interactive client 104, where user system 102 has sufficient processing power.

[0030] The interactive server system 110 supports various services and operations provided to the interactive client 104. Such operations include sending data to and receiving data from the interactive client 104, and processing data generated by the interactive client 104. This data may include message content, client device information, geolocation information, media enhancements and overlays, message content persistence conditions, entity relationship information, and live event information. Data exchange within the interactive system 100 is activated and controlled via functions available through the user interface (UI) of the interactive client 104.

[0031] Specifically, the focus now shifts to interactive server system 110. Application Programming Interface (API) server 122 is coupled to interactive server 124 and provides it with a programming interface, making the functionality of interactive server 124 accessible to interactive client 104, other applications 106, and third-party server 112. Interactive server 124 is communicatively coupled to database server 126, thereby facilitating access to database 128, which stores data associated with the interactions processed by interactive server 124. Similarly, web server 130 is coupled to interactive server 124 and provides a web-based interface to interactive server 124. For this purpose, web server 130 handles incoming network requests via Hypertext Transfer Protocol (HTTP) and several other related protocols.

[0032] Application Programming Interface (API) server 122 receives and sends interactive data (e.g., command and message payloads) between interactive server 124 and user system 102 (as well as interactive client 104 and other applications 106) and third-party server 112. Specifically, API server 122 provides a set of interfaces (e.g., routines and protocols) that interactive client 104 and other applications 106 can call or query to activate the functionality of interactive server 124. Application Programming Interface (API) server 122 exposes various functions supported by interaction server 124, including account registration; login functionality; sending interactive data from one interaction client 104 to another interaction client 104 via interaction server 124; transferring media files (e.g., images or videos) from interaction client 104 to interaction server 124; setting up media data sets (e.g., stories); retrieving the friend list of users of user system 102; retrieving messages and content; adding and deleting entities (e.g., friends) against an entity relationship graph (e.g., entity graph 304); locating friends in the entity relationship graph; and opening (e.g., application events associated with interaction client 104).

[0033] Interactive server 124 hosts multiple systems and subsystems, as shown below. Figure 2 Describe it.

[0034] System Architecture

[0035] Figure 2 This is a block diagram illustrating further details of the interactive system 100 according to some examples. Specifically, the interactive system 100 is shown as including an interactive client 104 and an interactive server 124. The interactive system 100 includes multiple subsystems supported on the client side by the interactive client 104 and on the server side by the interactive server 124. In some examples, these subsystems are implemented as microservices. A microservice subsystem (e.g., a microservice application) may have components that enable it to operate independently and communicate with other services. Example components of a microservice subsystem may include:

[0036] Functional logic: Functional logic implements the functions of the microservice subsystem and represents the specific capabilities or functions provided by the microservice.

[0037] API Interface: Microservices can use lightweight protocols such as REST or messaging to communicate with each other through well-defined APIs or interfaces. The API interface defines the inputs and outputs of a microservice subsystem, and how it interacts with other microservice subsystems within the interactive system 100.

[0038] Data storage: The microservice subsystem can be responsible for its own data storage, which can be in the form of a database, cache, or other storage mechanisms (e.g., using database server 126 and database 128). This allows the microservice subsystem to operate independently of other microservices in the interactive system 100.

[0039] Service discovery: Microservice subsystems can discover and communicate with other microservice subsystems of the interacting system 100. The service discovery mechanism enables microservice subsystems to locate and communicate with other microservice subsystems in a scalable and efficient manner.

[0040] Monitoring and logging: Monitoring and logging of microservice subsystems may be necessary to ensure availability and performance. Monitoring and logging mechanisms enable the tracking of the health and performance of microservice subsystems.

[0041] In some examples, the interactive system 100 may employ a monolithic architecture, a service-oriented architecture (SOA), a function-as-a-service (FaaS) architecture, or a modular architecture:

[0042] The example subsystem is discussed below.

[0043] The image processing system 202 provides various functions that enable users to capture and enhance (e.g., annotate or otherwise modify or edit) media content associated with a message.

[0044] The camera device system 204 includes (e.g., in a camera device application) control software that (e.g., directly or via operating system controls) interacts with and controls the hardware camera device hardware of the user system 102 to modify and enhance real-time images captured and displayed via the interactive client 104.

[0045] Enhancement system 206 provides functionality related to the generation and distribution of enhancements (e.g., media overlays) for images captured in real-time by the camera device of user system 102 or retrieved from the memory of user system 102. For example, enhancement system 206 is operable to select, present, and display media overlays (e.g., image filters or image lenses) for interactive client 104 to enhance real-time images received via camera device system 204 or stored images retrieved from the memory of user system 102. These enhancements are selected by enhancement system 206 and presented to the user of interactive client 104 based on some inputs and data, such as:

[0046] The geographic location of user system 102; and

[0047] User entity relationship information of users in user system 102.

[0048] Enhancements may include audio and visual content and visual effects. Examples of audio and visual content include images, text, logos, animations, and sound effects. Examples of visual effects include color overlays. Audio and visual content or visual effects may be applied to media content items (e.g., photos or videos) at user system 102 for transmission in messages, or to video content such as video content streams or feeds sent from interactive client 104. Therefore, image processing system 202 can interact with and support various subsystems of communication system 208, such as messaging system 210 and video communication system 212.

[0049] Media overlays may include text or image data that can be superimposed on photographs taken by user system 102 or video streams produced by user system 102. In some examples, media overlays may be location overlays (e.g., Venice Beach), names of live events, or names of businesses (e.g., beach cafes). In other examples, image processing system 202 uses the geolocation of user system 102 to identify media overlays that include the names of businesses located at the geolocation of user system 102. Media overlays may include additional tags associated with businesses. Media overlays may be stored in database 128 and accessed through database server 126.

[0050] Image processing system 202 provides a user-based publishing platform that allows users to select a geographic location on a map and upload content associated with that location. Users can also specify which media overlays should be provided to other users. Image processing system 202 generates a media overlay that includes the uploaded content and associates it with the selected geographic location.

[0051] The augmented reality creation system 214 supports augmented reality developer platforms and includes applications for content creators (e.g., artists and developers) to create and publish interactive clients 104, such as augmented reality experiences. The augmented reality creation system 214 provides content creators with a library of built-in features and tools, including, for example, custom shaders, tracking technologies, and templates.

[0052] In some examples, enhancement creation system 214 provides a merchant-based publishing platform that enables merchants to select specific enhancements associated with geolocation via a bidding process. For example, enhancement creation system 214 associates the media overlay of the highest bidder with a corresponding geolocation for a predefined amount of time.

[0053] Communication system 208 is responsible for enabling and processing various forms of communication and interaction within interactive system 100, and includes messaging system 210, audio communication system 216, and video communication system 212. Messaging system 210 is responsible for enabling temporary or time-limited access to content by interactive client 104. Messaging system 210 includes (e.g., in a short-lived timer system) multiple timers that selectively enable access (e.g., for presentation and display) of messages and associated content via interactive client 104 based on duration and display parameters associated with a message or set of messages (e.g., a story). Audio communication system 216 enables and supports audio communication (e.g., real-time audio chat) between multiple interactive clients 104. Similarly, video communication system 212 enables and supports video communication (e.g., real-time video chat) between multiple interactive clients 104.

[0054] User management system 218 is operationally responsible for managing user data and profiles, and maintaining relationships between users of interactive system 100 and user entity information (e.g., stored in entity table 308, entity diagram 304, and profile data 302).

[0055] The collection management system 220 is operationally responsible for managing collections or sets of media (e.g., collections of text, images, video, and audio data). Collections of content (e.g., messages, including images, videos, text, and audio) can be organized into “event libraries” or “event stories.” Such collections can be made available for a specified time period (e.g., the duration of the event to which the content relates). For example, content related to a concert can be available as a “story” for the duration of the concert. The collection management system 220 can also be responsible for publishing icons that notify the user interface of the interactive client 104 of the availability of specific collections. The collection management system 220 includes curation functions that enable collection managers to manage and curate specific content collections. For example, a curation interface enables event organizers to curate collections of content related to a specific event (e.g., removing inappropriate content or redundant messages). Additionally, the collection management system 220 employs machine vision (or image recognition technology) and content rules to automatically curate content collections. In some examples, users may be compensated for including user-generated content in a collection. In such cases, the collection management system 220 operates to automatically pay such users for using their content.

[0056] Map system 222 provides various geolocation (e.g., geolocation) functions and supports the presentation of map-based media content and messages by interactive client 104. For example, map system 222 enables the display (e.g., stored in profile data 302) of user icons or avatars on the map to indicate the current or past locations of the user's "friends" within the context of the map, as well as media content generated by these friends (e.g., a collection of messages including photos and videos). For example, on the map interface of interactive client 104, messages posted by a user from a specific geolocation to interactive system 100 can be displayed to the specific user's "friends" within the context of that specific location on the map. Users can also share their location and status information with other users of interactive system 100 via interactive client 104 (e.g., using an appropriate status avatar), where the location and status information is similarly displayed to selected users within the context of the map interface of interactive client 104.

[0057] External resource system 224 provides interactive client 104 with an interface to communicate with remote servers (e.g., third-party server 112) to launch or access external resources (i.e., applications or applets). Each third-party server 112 hosts applications or smaller versions of applications (e.g., game applications, utility applications, payment applications, or ride-sharing applications) based on markup languages ​​(e.g., HTML5). Interactive client 104 can launch web-based resources (e.g., applications) by accessing HTML5 files from the third-party server 112 associated with the web-based resource. The application hosted by the third-party server 112 is programmed in JavaScript using a software development kit (SDK) provided by interactive server 124. The SDK includes application programming interfaces (APIs) with functionality that can be called or activated by the web-based application. Interactive server 124 hosts a JavaScript library that provides access to a given external resource for specific user data of interactive client 104. HTML5 is an example of a technology for programming games, but applications and resources programmed using other technologies can be used.

[0058] To integrate the SDK's functionality into the web-based resource, the third-party server 112 downloads the SDK from the interactive server 124, or the third-party server 112 otherwise receives the SDK. Once downloaded or received, the SDK is included as part of the application code of the web-based external resource. The code of the web-based resource can then call or activate certain functions of the SDK to integrate the features of the interactive client 104 into the web-based resource.

[0059] The SDK stored on the interactive server system 110 effectively bridges the gap between external resources (e.g., application 106 or applet) and the interactive client 104. This provides users with a seamless experience communicating with other users on the interactive client 104 while preserving the appearance of the interactive client 104. To bridge communication between the external resources and the interactive client 104, the SDK facilitates communication between the third-party server 112 and the interactive client 104. A bridging script running on the user system 102 establishes two unidirectional communication channels between the external resources and the interactive client 104. Messages are sent asynchronously between the external resources and the interactive client 104 via these communication channels. Each SDK function activation is sent as a message and callback. Each SDK function is implemented by constructing a unique callback identifier and sending a message with that callback identifier.

[0060] By using the SDK, not all information from the interactive client 104 is shared with the third-party server 112. The SDK limits which information is shared based on the needs of the external resources. Each third-party server 112 provides the interactive server 124 with an HTML5 file corresponding to the web-based external resource. The interactive server 124 can add a visual representation (e.g., box design or other graphics) of the web-based external resource to the interactive client 104. Once the user selects the visual representation or instructs the interactive client 104 to access the features of the web-based external resource through the interactive client 104's GUI, the interactive client 104 obtains the HTML5 file and instantiates the resource for accessing the features of the web-based external resource.

[0061] Interactive client 104 presents a graphical user interface (GUI) for an external resource (e.g., a login page or title screen). During, before, or after presenting the login page or title screen, interactive client 104 determines whether the initiated external resource has previously been authorized to access user data of interactive client 104. In response to determining that the initiated external resource has previously been authorized to access user data of interactive client 104, interactive client 104 presents another GUI of the external resource, including its functionality and characteristics. In response to determining that the initiated external resource has not previously been authorized to access user data of interactive client 104, after displaying the login page or title screen of the external resource for a threshold time period (e.g., 3 seconds), interactive client 104 slides up a menu (e.g., animates the menu to appear from the bottom of the screen to the middle or other part of the screen) to authorize the external resource to access user data. This menu identifies the type of user data that the external resource will be authorized to use. In response to receiving a user selection of the accept option, interactive client 104 adds the external resource to the list of authorized external resources and allows the external resource to access user data from interactive client 104. External resources are authorized by the interactive client 104 to access user data under the OAuth 2 framework.

[0062] Interactive client 104 controls the type of user data shared with external resources based on the type of authorized external resource. For example, it provides access to a first type of user data (e.g., two-dimensional avatars of users with or without different avatar characteristics) to external resources including full-scale applications (e.g., application 106). As another example, it provides access to a second type of user data (e.g., payment information, two-dimensional avatars of users, three-dimensional avatars of users, and avatars with various avatar characteristics) to external resources including smaller versions of applications (e.g., web-based versions of applications). Avatar characteristics include different ways of customizing the appearance of an avatar (e.g., different poses, facial features, clothing, etc.).

[0063] The advertising system 226 is operationally designed to enable third parties to purchase advertisements to be presented to end users via the interactive client 104, and also handles the delivery and presentation of these advertisements.

[0064] Artificial intelligence and machine learning system 228 provides various services to different subsystems within interaction system 100. For example, AI and machine learning system 228 operates in conjunction with image processing system 202 and camera device system 204 to analyze images and extract information such as objects, text, or faces. This information can then be used by image processing system 202 to enhance, filter, or manipulate the image. Augmentation system 206 can use AI and machine learning system 228 to generate augmented content and augmented reality experiences, such as adding virtual objects or animations to real-world images. Communication system 208 and messaging system 210 can use AI and machine learning system 228 to analyze communication patterns and provide insights into how users interact with each other, as well as provide intelligent message classification and tagging, such as categorizing messages based on sentiment or topic. AI and machine learning system 228 can also provide chatbot functionality to messaging interactions 120 between user systems 102 and between user systems 102 and interaction server system 110. Artificial intelligence and machine learning system 228 can also work with audio communication system 216 to provide speech recognition and natural language processing capabilities, allowing users to interact with interactive system 100 using voice commands.

[0065] Template system 230 provides for the creation and use of templates for generating media content items. As described herein, templates can be used by end users to combine preset audio tracks with user-selected media content. In an example implementation, template system 230 allows a first user (e.g., a template creator) to create a template. The first user specifies a preset audio track, defines media slots for subsequent users to select accompanying video / photos, and defines corresponding edits (e.g., captions, labels, augmented reality content items). Template system 230 provides a user interface to a second user (e.g., an end user) who selects the video / photo to be assigned to the media slots and selects any additional edits (e.g., if the template allows). Template system 230 is configured to generate media content items based on the template's attributes and edits, as well as the second user's selections.

[0066] Data Architecture

[0067] Figure 3 This is a schematic diagram illustrating a data structure 300 that can be stored in a database 128 of an interactive server system 110, according to certain examples. Although the contents of the database 128 are shown as including multiple tables, it should be understood that data can be stored in other types of data structures, such as object-oriented databases.

[0068] Database 128 includes message data stored in message table 306. For any given message, this message data includes at least message sender data, message receiver (or recipient) data, and a payload. See below for reference. Figure 3 Further details are provided regarding information that can be included in the message and is contained within the message data stored in message table 306.

[0069] Entity table 308 stores entity data and (for example, links to entity diagram 304 and profile data 302). Entities for which records are maintained in entity table 308 can include individuals, company entities, organizations, objects, locations, events, etc. Regardless of the entity type, any entity for which the interactive server system 110 stores data can be an identifiable entity. Each entity is assigned a unique identifier and an entity type identifier (not shown).

[0070] Entity graph 304 stores information about relationships and associations between entities. As an example only, such relationships can be social, professional (e.g., working in a common company or organization), interest-based, or activity-based. Some relationships between entities can be one-way, such as an individual user subscribing to digital content from a business or publishing user (e.g., a newspaper or other digital media channel or brand). Other relationships can be two-way, such as the "friendship" relationships between the various users of interactive system 100.

[0071] Certain licenses and relationships can be attached to each relationship, and also to each direction of the relationship. For example, a two-way relationship (e.g., a friendship between individual users) can include authorization for the posting of digital content items between the individual users, but certain restrictions or filters can be imposed on the posting of such digital content items (e.g., based on content characteristics, location data, or time of day data). Similarly, a subscription relationship between an individual user and a business user can impose varying degrees of restrictions on the posting of digital content from the business user to the individual user, and can significantly restrict or prevent the posting of digital content from the individual user to the business user. As an example of an entity, a specific user can (e.g., through privacy settings) record certain restrictions in the records for that entity within entity table 308. Such privacy settings can be applied to all types of relationships in the context of interaction system 100, or selectively applied to certain types of relationships.

[0072] Profile data 302 stores various types of profile data about a specific entity. Based on privacy settings specified by the specific entity, profile data 302 can be selectively used and presented to other users of the interaction system 100. In the case of an individual, profile data 302 includes, for example, the user's name, phone number, address, settings (e.g., notification and privacy settings), and an avatar representation (or a set of such avatar representations) selected by the user. A specific user can then selectively include one or more of these avatar representations within the content of messages transmitted via the interaction system 100 and on a map interface displayed to other users by the interaction client 104. The set of avatar representations may include "status avatars," which present a graphical representation of a status or activity that the user can choose to transmit at a specific time.

[0073] In the case that the entity is a group, in addition to the group name, members and various settings for the relevant group (e.g., notifications), the profile data 302 for the group may similarly include one or more avatars associated with the group.

[0074] Database 128 also stores enhancement data, such as overlays or filters, in enhancement table 310. Enhancement data is associated with and applied to videos (video data is stored in video table 314) and images (image data is stored in image table 318).

[0075] In some examples, filters are displayed as overlays on images or videos during presentation to the recipient user. Filters can be of various types, including user-selected filters from a set of filters presented to the sending user by the interactive client 104 while the sending user is composing a message. Other types of filters include geolocation filters (also known as geographic filters), which can be presented to the sending user based on geographic location. For example, geolocation filters specific to nearby or particular locations can be presented by the interactive client 104 within the user interface based on geolocation information determined by the Global Positioning System (GPS) unit of the user system 102.

[0076] Another type of filter is a data filter, which can be selectively presented to the sending user by the interactive client 104 based on other inputs or information collected by the user system 102 during the message creation process. Examples of data filters include the current temperature at a specific location, the sending user's current speed, the battery life of the user system 102, or the current time.

[0077] Other augmented data that can be stored in image table 318 includes augmented reality content items (e.g., corresponding to an application "lens" or augmented reality experience). Augmented reality content items can be real-time special effects and sounds that can be added to images or videos.

[0078] Collection table 312 stores data about collections of messages and associated image, video, or audio data, compiled into collections (e.g., stories or galleries). The creation of a specific collection can be initiated by a specific user (e.g., each user for whom records are maintained in entity table 308). A user can create a "personal story" in the form of a collection of content that has been created and sent / broadcast by that user. For this purpose, the user interface of interactive client 104 may include user-selectable icons to allow the sending user to add specific content to his or her personal story.

[0079] The collection can also constitute a "live story," which is a collection of content from multiple users created manually, automatically, or using a combination of manual and automatic techniques. For example, a "live story" can constitute a curated stream of user-submitted content from different locations and events. Users whose client devices have location services enabled and who are at a co-located event at a specific time can be presented with the option to contribute content to a specific live story, for example, via the user interface of interactive client 104. Live stories can be identified to a user by interactive client 104 based on their location. The end result is a "live story" told from a collective perspective.

[0080] Another type of content collection is called a "location story," which allows users of user system 102 located in a specific geographic location (e.g., on a college or university campus) to contribute to a specific collection. In some examples, contributions to a location story may employ secondary authentication to verify that the end user belongs to a specific organization or other entity (e.g., is a student on a university campus).

[0081] As mentioned above, video table 314 stores video data, which in some examples is associated with messages for which records are maintained within message table 306. Similarly, image table 318 stores image data associated with messages whose message data is stored in entity table 308. Entity table 308 can associate various enhancements from enhancement table 310 with various images and videos stored in image table 318 and video table 314.

[0082] Database 128 also includes a template table 316 storing available templates (e.g., those created by a template creator). As described herein, templates can be used to combine (multiple) audio tracks with user-selected videos / photos based on media slots defined by the template. Each media slot has a preset duration (e.g., synchronized with the beat of the audio track). In an example implementation, the template has predefined edits (e.g., captions, labels, augmented reality content items) applied to the selected video / photo. Media content items can be generated based on the attributes and edits of a given template and the end-user's selections (e.g., video / photo, additional edits).

[0083] Data communication architecture

[0084] Figure 4 This is a schematic diagram illustrating the structure of message 400 according to some examples, generated by interactive client 104 for transmission to another interactive client 104 via interactive server 124. The content of a particular message 400 is used to populate message table 306 within database 128 accessible by interactive server 124. Similarly, the content of message 400 is stored in memory as "in-transit" or "in-flight" data for user system 102 or interactive server 124. Message 400 is shown to include the following example components:

[0085] Message Identifier 402: A unique identifier that identifies message 400.

[0086] Message text payload 404: The text to be generated by the user via the user interface of user system 102 and included in message 400.

[0087] Message image payload 406: Image data captured by the camera device component of user system 102 or retrieved from the memory component of user system 102 and included in message 400. The image data for the sent or received message 400 can be stored in image table 318.

[0088] Message video payload 408: Video data captured by the camera device component or retrieved from the memory component of the user system 102 and included in the message 400. The video data for the sent or received message 400 can be stored in image table 318.

[0089] Message audio payload 410: Audio data captured by the microphone or retrieved from the memory component of the user system 102 and included in message 400.

[0090] Message enhancement data 412: Enhancement data (e.g., filters, labels, or other annotations or enhancements) representing enhancements to be applied to the message image payload 406, message video payload 408, or message audio payload 410 of message 400. Enhancement data for the sent or received message 400 can be stored in enhancement table 310.

[0091] Message duration parameter 414: A parameter value, in seconds, indicating the amount of time that the content of the message (e.g., message image payload 406, message video payload 408, message audio payload 410) will be presented to the user via the interactive client 104 or made accessible to the user.

[0092] Message geolocation parameter 416: Geolocation data (e.g., latitude and longitude coordinates) associated with the message's content payload. Multiple message geolocation parameter 416 values ​​may be included in the payload, each of which is associated with a content item included in the content (e.g., a specific image within the message image payload 406 or a specific video within the message video payload 408).

[0093] Message Story Identifier 418: An identifier value that identifies one or more sets of content (e.g., “story” identified in set table 312) associated with a specific content item in the message image payload 406 of message 400. For example, the identifier value can be used to associate multiple images within the message image payload 406 with multiple sets of content, respectively.

[0094] Message Tag 420: Each message 400 can be labeled with multiple tags, each of which indicates the subject of the content included in the message payload. For example, in the case where a specific image depicts an animal (e.g., a lion) is included in the message image payload 406, a tag value can be included within the message tag 420 indicating the relevant animal. Tag values ​​can be manually generated based on user input, or can be automatically generated using, for example, image recognition.

[0095] Message sender identifier 422: An identifier (e.g., message sending system identifier, email address, or device identifier) ​​indicating the user of the user system 102 on which message 400 is generated and from which message 400 is sent.

[0096] Message receiver identifier 424: An identifier (e.g., message sending and receiving system identifier, email address, or device identifier) ​​indicating the user of the user system 102 to which message 400 is addressed.

[0097] The content (e.g., values) of each component of message 400 can be pointers to locations in tables where content data values ​​are stored. For example, image values ​​in message image payload 406 can be pointers (or addresses) to locations within image table 318. Similarly, values ​​in message video payload 408 can point to data stored in image table 318, values ​​in message enhancement data 412 can point to data stored in enhancement table 310, values ​​in message story identifier 418 can point to data stored in set table 312, and values ​​in message sender identifier 422 and message receiver identifier 424 can point to user records stored in entity table 308.

[0098] Figure 5 This is an interactive diagram illustrating a process 500 for providing templates for media content generation, based on some examples. For illustrative purposes, this document primarily refers to... Figure 1 The process 500 is described in terms of an interactive client 104 (e.g., corresponding to a first interactive client 502 and a second interactive client 504) and an interactive server system 110. However, one or more blocks (or operations) of the process 500 may be executed by one or more other components and / or other suitable devices. Further, for illustrative purposes, the blocks (or operations) of the process 500 are described herein as occurring serially or linearly. However, multiple blocks (or operations) of the process 500 may occur in parallel or simultaneously. Furthermore, the blocks (or operations) of the process 500 do not need to be executed in the order shown, and / or one or more blocks (or operations) of the process 500 need not be executed and / or may be replaced by other operations. The process 500 may be terminated when its operations are completed. Furthermore, the process 500 may correspond to a method, program, algorithm, etc.

[0099] In the example implementation, each of the first interactive client 502 and the second interactive client 504 corresponds to a corresponding instance of interactive client 104, wherein the first interactive client 502 runs on a first device (e.g., the first user system 102), and the second interactive client 504 runs on a second device (e.g., the second user system 102). The first interactive client 502 is associated with a corresponding first user, and the second interactive client 504 is associated with a corresponding second user of interactive system 100. For example, the first user is associated with a corresponding first user account of interactive server system 110, and the second user is associated with a corresponding second user account of interactive server system 110. As described above, interactive server system 110 identifies the first user and the second user based on unique identifiers (e.g., messaging system identifiers, email addresses, and / or device identifiers) associated with the corresponding user accounts of the first user and the second user.

[0100] As described herein, the template system 230, implemented by the interactive system 100, allows a first user (e.g., a template creator) to create templates for combining audio tracks with media content subsequently selected by a second user (e.g., an end user). The first user specifies the audio track, defines media slots for subsequent users to select video / photos accompanying the audio track, and defines edits (e.g., captions, labels, augmented reality content items) applied to the subsequently selected video / photos.

[0101] Template system 230 makes templates available to end users. When a second user selects to use a template, template system 230 provides the second user with a user interface for selecting videos / photos assigned to media time slots and for selecting any additional edits (e.g., if the template allows). Template system 230 generates media content items based on the template's attributes and edits, as well as the second user's selections.

[0102] exist Figure 5 In the example, operations 506 to 512 correspond to the first stage (e.g., the "template creation stage"), and operations 514 to 528 correspond to the second stage (e.g., the "template usage stage"). During the template creation stage, the first user provides input for setting template attributes (e.g., defining media slots). Each media slot can be assigned to a corresponding video or photo, with such assignment occurring during the template usage stage. During the template usage stage, the template is presented to the second user along with other available templates. The second user selects the created template and then assigns the corresponding video / photo to each media slot to generate media content items. It is understood that the second stage may occur shortly after the first stage or after an extended period of time following the first stage. Therefore, Figure 5The dashed line separating the first and second stages is included for illustrative purposes.

[0103] At operation 506, the interactive server system 110 provides a template creation interface to the first interactive client 502 for creating templates. The template system 230 allows a first user, such as an administrator (e.g., an employee) of the interactive system 100 or a regular end user of the interactive system 100, to design and create templates.

[0104] The template creation interface corresponds to a user interface with interface elements for setting template properties. For example, the template creation interface includes interface elements for a first user to specify one or more of the following: the number of media slots; the sequence of media slots (e.g., order); the duration of each media slot (e.g., in seconds); and the edits applied to each media slot (e.g., audio tracks, captions, labels, augmented reality content items, etc.).

[0105] At block 508, the first interactive client 502 receives first user input via a template creation interface to set the properties of a template. Regarding editing, the template creation interface includes interface elements for selecting one or more audio tracks(s) accompanying the subsequent selection of media content for the template. The audio tracks(s) correspond to pre-recorded music, speech, and / or other sounds that the user can select from a library of audio tracks. For example, the library of audio tracks is maintained by the interactive system 100 (e.g., with an appropriate licensing agreement).

[0106] In an example implementation, template system 230 may implement or otherwise access multiple beat detection algorithms configured to detect the beats of an audio track corresponding to music. Based on the detected beats, template system 230 is configured to determine available boundaries for media time slots. For example, boundaries correspond to transitions between media time slots, where media assigned to one media time slot stops and media assigned to the next media time slot begins. In the example implementation, template system 230 makes each available boundary synchronized with the beat of the audio track. In other words, the template creation interface provides predefined available positions for media time slots to "fit" to the beats of the audio track.

[0107] Additionally, the template creation interface includes multiple interface elements for the first user to specify the number of media slots, the sequence of media slots, and the duration of each media slot. The duration of a specific media slot can be limited relative to the aforementioned available boundaries, such that the start and end points of the media slot fall on the available boundaries. In this way, media slots can have different durations relative to each other while still being synchronized with the beat of the audio track.

[0108] In addition to the audio track, the template creation interface includes multiple interface elements for the first user to select and edit. For example, editing includes captions, labels, or other types of overlays, as well as their respective sizes and positions. Additionally, editing includes augmented reality content items applied to video / photos subsequently assigned to media slots.

[0109] In an example implementation, template system 230 provides a first user with interface elements to select whether a specific edit (e.g., audio track, caption, label, augmented reality content item, etc.) is applied as a whole (e.g., globally) across media slots or on a per-segment basis. In this way, similar edits, different edits, or a combination of similar and different edits can be applied across media slots.

[0110] At operation 510, the first interactive client 502 sends an instruction for attributes (e.g., template data) to the interactive server system 110. At block 512, the interactive server system 110 stores the attributes in association with the template. For example, the interactive server system 110 provides the option to store the attributes of the template in template table 316 of database 128.

[0111] In the example implementation, the template is stored in template table 316 as a data structure with the following data fields: attribution (e.g., attribution for identifying the template and the original template); number of media slots; duration of media slots; whether each media slot is mutable / immutable (e.g., editable by a second user); global editing; editing based on each segment; whether each editing is mutable / immutable; whether the template is saved to "memory" (e.g., as a personal story), and whether the template can be edited from memory; multiple transition effects between segments (e.g., fade in, fade out, fade away, dissolve, jump cut, toggle, circle in, circle out); transition effects for subtitles; and / or other template-specific metadata.

[0112] As described above, operations 514 to 528 involve a template usage phase, during which a second user (e.g., from available templates) selects a template to be created and assigns the corresponding video / photo to each media slot to generate media content items.

[0113] At operation 514, the interactive server system 110 provides an entry point for the template to the second interactive client 504. The entry point allows the second user to select a template and use it to generate media content items.

[0114] For example, see the following reference Figure 6 Further discussion reveals that a first entry point can be selected from the camera device interface displayed on the second interactive client 504. The camera device interface is configured to capture and display image data in real time.

[0115] In the example implementation, the camera device interface corresponds to a director mode for capturing image data, which can be accessed from a toolbar within an initial camera device interface that is presented when the second interactive client 504 is launched. The director mode provides the second user with camera device features (e.g., including a first entry point) for creating video content.

[0116] In the example implementation, the first entry point is a user-selectable button within the camera device interface (e.g., director mode). The user's selection of the button redirects the second interactive client 504 to the template grid view (e.g., see below). Figure 8 (As discussed above), the template grid view displays available templates for the user to select from. Available templates include those created during the template creation phase described above.

[0117] In an example implementation, available templates are presented in ranking order based on one or more ranking factors, including but not limited to: overall template popularity; templates associated with personal data such as content preferences (e.g., for music or other content), user interaction history, device geolocation, etc., wherein the personal data is accessed and used with appropriate user permission; the time the template was created; promotion associated with an incentive program implemented by the interaction system 100; and / or machine learning associated with one or more of the factors listed above.

[0118] See below for reference. Figure 7 The second entry point to the created template is presented within the media content item displayed on the second interactive client 504. In the example implementation, the created template is used to generate the media content item. In other words, a previous user (e.g., a contact, influencer, or other user) uses the template to create the media content item, which is then viewed by the second user.

[0119] In the example implementation, media content items may have already been accessed and viewed through content feeds provided to the second interactive client 504. In this regard, the second interactive client 504, in conjunction with the interactive server system 110, is configured to provide different content feeds to the second user, each content feed including multiple media content items that can be viewed by the second user.

[0120] In an example implementation, media content items for content feeding are presented in ranking order based on one or more ranking factors, including but not limited to: the overall popularity of the media content items; media content items associated with personal data such as content preferences (e.g., for music or other content), user interaction history, device geolocation, etc., wherein the personal data is accessed and used with appropriate user permission; the time when the media content items were created; promotion associated with incentive programs implemented by the interaction system 100; and / or machine learning associated with one or more of the factors listed above.

[0121] By way of non-limiting example, the content feeds provided by the interactive system 100 include, but are not limited to, focused content feeds, contact content feeds, subscription content feeds, and suggested content feeds. For example, focused content feeds include media content items that the interactive system 100 focuses on (e.g., for those that are currently popular / viral, or have the potential to become popular / viral). These media content items may have been created and uploaded to the interactive system 100 by businesses, influencers, and / or ordinary users.

[0122] In an example implementation, the contact content feed includes a set of available content corresponding to the second user's contacts (e.g., friends). Each content set corresponds to a set of media content items associated with the corresponding contact.

[0123] In the example implementation, the subscription content feed includes user-selectable content submitted by the second user regarding entities subscribed to by the interaction system 100 (e.g., influencers, merchants, etc.). Additionally, suggested content feeds include user-selectable content suggested to the second user in other ways (e.g., as determined by the interaction system 100).

[0124] In the example implementation, the second entry point is a user-selectable button (e.g., "Use Template") within a media content item. The user's selection of the button redirects the second interactive client 504 to the template selection view (e.g., as shown below). Figure 9A (As discussed), a template has been pre-selected for the second user. The template selection view allows the second user to scroll through other available templates, for example, in response to predefined user gestures (e.g., swipe gestures).

[0125] At block 516, the second interactive client 504 receives second user input selecting an entry point. For example, if the second user selects the first entry point, the second user can further select the created template from the available templates within the template grid view. The second interactive client 504 sends a request for the selected template (e.g., as stored according to block 512) to the interactive server system 110. The interactive server system 110 causes the second interactive client 504 to display a template selection view (operation 518), in which the selected template is presented as the active template.

[0126] In another example, a second user selects a second entry point (e.g., a "Use Template" button included in a media content item). In response, the second interactive client 504 sends a request for a template (e.g., as stored according to block 512) to the interactive server system 110. The interactive server system 110 causes the second interactive client 504 to display a template selection view (operation 518), in which the template is presented as the active template.

[0127] Although Figure 5 The examples describe the first and second entry points, but the interactive system 100 is not limited to these entry points. Other entry points for accessing and using templates include, but are not limited to: attention-grabbing (or “CTA”, used to direct access to a specific template or to a template selection interface); icons within a carousel of selectable augmented reality content items (e.g., shots), where the icon is selectable to activate the created template; and / or buttons for activating the created template based on captured video / photos (e.g., within a preview interface). As described above, other entry points may present created templates and / or available templates in ranking order.

[0128] At block 520, the second interactive client 504 displays a media selection interface (for example, as shown below). Figures 10A to 10B (To be discussed further). The media selection interface includes a media slot for each media slot within a media slot. In the example implementation, the media selection interface indicates the duration of each media slot. Each media slot can be assigned a corresponding video or photo that can be selected by a second user.

[0129] In an example implementation, the media selection interface allows a second user to select videos / photos from a media library (e.g., the second user's personal story) stored associated with the second user's account. Alternatively or additionally, the media library is stored locally on the user system 102 running the second interactive client 504. The selectable videos / photos can be presented as corresponding tiles in a grid, where each tile is selectable for allocation to a corresponding media slot.

[0130] The media selection interface is configured to gray out or otherwise prevent a second user from selecting a corresponding video that is shorter in length than the duration of the current media slot. Since the interactive client 104 specifies that photos are displayable for the entire duration of the current media slot, photos are not grayed out in this manner.

[0131] In the example implementation, the media selection interface is also configured to include user-selectable elements (e.g., individual buttons or additional tiles) for redirecting to the capture interface. In the capture interface, the second interactive client 504 activates the device's camera to capture video or photographs assigned to the corresponding media time slot. When capturing video instead of photographs, the second interactive client 504 is configured to display a countdown timer corresponding to the media time slot based on the duration of the media time slot.

[0132] In an example implementation, the second interactive client 504 allows the second user to capture a single video or a single photo to occupy the entire duration of a media slot. Alternatively or additionally, the second interactive client 504 allows the second user to capture multiple videos / photos that, when combined, occupy the entire duration of a slot, wherein each video decrements a countdown timer based on its respective length, and each photo decrements a counter by a preset time (e.g., 1 second).

[0133] Therefore, at block 522, the second interactive client 504 receives input from a third user, who selects the appropriate video and / or photo to be assigned to each media slot in the media slot. As mentioned above, the first user may have already specified edits for the media slot at a global level or on a per-segment basis (e.g., audio tracks, captions, labels, augmented reality content items, etc.).

[0134] In an example implementation, the interactive system 100 specifies that certain edits are immutable. For example, the audio tracks(s) selected by the first user are immutable. Additionally, the first user can pre-assign videos / photos (e.g., with edits) to media slots and designate those media slots as immutable, preventing the second user from modifying the pre-assigned videos / photos. For the remaining media slots and / or edits that are not immutable, the second interactive client 504 provides the second user with interface elements for optionally modifying, removing, and / or adding edits regarding those remaining media slots.

[0135] In some cases, the corresponding video assigned to the current media slot may be longer than the duration of that media slot. Therefore, the second interactive client 504 provides interface elements that allow the second user to select which segment of the video (e.g., a "trimmed segment") is assigned to the media slot. For example, the second interactive client 504 provides a trim view with a selector for selecting the trimmed segment.

[0136] At block 524, the second interactive client 504 generates a media content item based on a template and second user input. Based on a sequence of media slots as defined by the template, the second interactive client 504 is configured to combine the corresponding video and / or photos assigned to media slots of specified durations with specified audio tracks(s) and any additional edits to generate the media content item. See below for reference. Figure 12 As discussed further, the second interactive client 504 generates a media content item in response to user input that selects an element to confirm completion of the media content item (e.g., a check button).

[0137] In response to the second user selecting the check button, the second interactive client 504 is configured to preview and / or send the generated media content item. See below for reference. Figure 13 The preview interface discussed may include one or more user-selectable elements (e.g., buttons) for: modifying / annotating (e.g., drawing on it, adding text to it, adding labels to it, cropping it, etc.) media content items; saving media content items; publishing stories based on media content items; and / or sending messages that include media content items.

[0138] Therefore, at operation 526, the second interactive client 504 sends the media content item, along with a user request to save, publish, or send the media content item as specified by the second user, to the interactive server system 110. At block 528, the interactive server system 110 provides the media content item. For example, the interactive server system 110 provides the ability to save, publish, and / or send the media content item as specified by the second user.

[0139] Therefore, the template system 230, implemented by the interactive system 100, allows a first user (e.g., a template creator such as an administrator or a regular user) to create templates that combine preset audio tracks with media content subsequently selected by a second user (e.g., an end user). The first user specifies the preset audio track, defines media slots for subsequent users to select accompanying videos / photos, and defines edits (e.g., captions, labels, augmented reality content items) applied to the subsequently selected videos / photos.

[0140] Template system 230 makes templates available to end users. When a second user selects to use a template, template system 230 provides the second user with a user interface for selecting videos / photos assigned to media time slots and for selecting any additional edits (e.g., if the template allows). Template system 230 generates media content items based on the template's attributes and edits, as well as the second user's selections.

[0141] Based on the foregoing, the interactive system 100 provides increased user engagement regarding the generation and / or sharing of media content items. For example, the interactive system 100 facilitates the creation of media content items by employing templates with preset audio tracks(s) and media time slots accompanying the audio tracks. Therefore, the interactive system 100 helps create media content items for sharing among contacts, thereby saving time for end users and reducing computational resources / processing power.

[0142] Figure 6 User interface 602, according to some examples, corresponds to a camera device interface including a first entry point of a template. For example, user interface 602 corresponds to... Figure 5 The template usage phase operation 514. In Figure 6 In the example, the user interface 602 includes image data 604, camera device tool 606, template button 608, shutter button 610, and carousel interface start button 612.

[0143] In the example implementation, user interface 602 corresponds to a director mode for capturing image data 604, which can be accessed from a toolbar within an initial camera device interface (not shown), which is presented when the second interactive client 504 is launched. Relative to the initial camera device interface, the director mode provides the second user with a set of additional camera device features (e.g., including a first entry point) for creating complex video content.

[0144] User interface 602 is configured to capture and display image data 604 in real time. In an example embodiment, camera device tool 606 includes one or more of the following: a flip camera button for switching between a front camera and a rear camera; a sound button for adding audio (e.g., licensed song clips, excerpts from television and movies, or one's own original audio); a dual camera button for capturing content using both the front and rear cameras simultaneously; a lens button for browsing augmented reality content items applied to the captured image data; a green screen button for selecting a background; a speed button for changing the camera speed for the captured image data; a timer button for counting down from a preset time before automatically taking photos / videos; a flash button for activating the camera's flash; and an import media button for importing photos / videos.

[0145] In the example implementation, the carousel activation button 612 is user-selectable to display a carousel interface (not shown) for augmented reality content. The carousel interface first allows the user to cycle through and / or select different augmented reality content items represented by corresponding icons to apply to image data 604. Each augmented reality content item provides the ability to add real-time special effects and / or sound to image data 604.

[0146] In the example implementation, the shutter button 610 is user-selectable to either (e.g., in response to a press / tap gesture) take a picture of the image data 604 captured by the camera device or (e.g., in response to a press and hold gesture) record a video of the image data 604 captured by the camera device. If augmented reality content is selected (e.g., via a carousel interface), such augmented reality content is applied in real-time with respect to the image data 604.

[0147] In the example implementation, the user's selection of the template button 608 redirects the second interactive client 504 to the template grid view (e.g., see below). Figure 8 (As discussed above), the template grid view displays available templates for the user to select from. Available templates include those created during the template creation phase described above. In the example implementation, the available templates are presented in the sorting order described above.

[0148] Figure 7 User interface 702 is shown, corresponding to a media content item with a second entry point including a template, according to some examples. User interface 702 displays a media content item 704 generated using the template. Media content item 704 may be accessible via content feed.

[0149] exist Figure 7 In the example, the content feed corresponds to the focused content feed. However, a content feed can correspond to different content feeds, such as a contact content feed, a subscription content feed, or a suggested content feed.

[0150] User interface 702 may include profile information 706, which is optional to present a profile page of the creator of media content item 704. Additionally, user interface 702 includes labels 708 to indicate the type of content (e.g., metadata) associated with media content item 704.

[0151] Furthermore, for example, the user interface 702 includes context cards 712 to 714 to indicate editing associated with the template of the media content item 704. Figure 7 In the example, context card 712 indicates the audio track, and context card 714 indicates the augmented reality content item associated with media content item 704.

[0152] The template button 710 (e.g., "Use Template") is user-selectable to redirect to the template selection view, as shown below. Figure 9A Further discussion. As mentioned above, the template selection view allows a second user to scroll through other available templates, for example, in response to predefined user gestures (e.g., swipe gestures).

[0153] Figure 8 The user interface 802 corresponding to the template grid view is shown according to some examples. The user interface 802 includes thumbnails 804 and a close button 806.

[0154] As shown above (refer to the reference) Figure 5 The discussion focuses on responses to user actions at the first entry point (e.g., Figure 6 The selection of the template button 608 exposes the user interface 802. The user interface 802 displays available templates for the user to choose from within a thumbnail 804.

[0155] In the example implementation, Figure 8 The template grid view renders each available template as a corresponding thumbnail in a 2x2 layout. In the example implementation, each thumbnail within thumbnail 804 includes a preview of the template (e.g., a partial playback of a media content item previously generated using the template), the total duration of the template and the number of segments (e.g., "x seconds, y segments"), and / or the audio track assigned to the template (e.g., music name / artist). Furthermore, each thumbnail is selectable to redirect to a template selection view, where the selected template is rendered as the active template.

[0156] In the example implementation, the user selects the close button 806 to close the template grid view and is redirected to the previous interface. For example, the previous interface corresponds to the director mode of the camera device interface (e.g., according to...). Figure 6 ).

[0157] Figures 9A to 9B The user interface 902 corresponding to the template selection view is shown according to some examples. The user interface 902 includes an active template 904, a media slot 906, a mute button 908, and a close button 910.

[0158] As mentioned above, in response to the user's selection of a second entry point (e.g., Figure 7 The template selection view is displayed in response to the user's selection of the corresponding thumbnail within the thumbnail (template button 710) or in response to the user's selection of the corresponding thumbnail within the thumbnail 804.

[0159] In the example implementation, the active template 904 displays a preview of the template. For example, the preview corresponds to playback (e.g., loop playback) of media content items previously generated using the template. Figure 9AIn the example, the previously generated media content item includes a context card that shows the edits (e.g., augmented reality content items) and / or audio tracks (e.g., songs) used in the template.

[0160] The mute button 908 is user-selectable for muting and unmutedling the sound in relation to the preview of the activity template 904. In the example implementation, the mute button 908 in the upper right corner is hidden by default and is only displayed when the user mutes the volume via hardware or by tapping on the card activity template 904, indicating that the sound is turned off.

[0161] In the example implementation, media slot 906 for active template 904 is presented in a docked view. Media slot 906 may default to all empty slots, or a combination of empty slots and pre-filled slots (e.g., immutable slots specified by the template creator). Each media slot in media slot 906 is presented with its corresponding duration (e.g., in seconds). See below for reference. Figures 10A to 10B Further discussion reveals that media slots are filled after the user selects the appropriate video / photo.

[0162] Additionally, the user interface 902 allows the user to select from different templates, where the active template 904 corresponds to the currently selected template. For example... Figure 9A As shown in the example, active template 904 is displayed horizontally centered in a cyclical carousel of templates. The user cycles through the carousel by performing a predefined gesture (e.g., a swipe gesture) applied to the display screen, either to the left or right. The carousel cycles to place different templates in the horizontally centered position, thus making each different template active template 904.

[0163] Figure 9B An example scenario is shown where a user performs a predefined gesture to loop through media slot 906 after adding at least one video / photo. In response, user interface 902 is configured to prompt the user (e.g., via notification 912) to save a draft of the media content item before switching to a different template (e.g., via the user's selection of the save button 914).

[0164] Figures 10A to 10B A user interface 1002 corresponding to a media selection interface is shown according to some examples. The user interface 1002 includes a camera device button 1004, a media library selector 1006, a media selector 1008, a media slot 906, a preview button 1010, and a cancel button 1012.

[0165] The user interface 1002 includes a corresponding media slot 906 for each media slot in the media slots used for the template. Each media slot indicates the duration of the corresponding media slot (e.g., in seconds). Furthermore, each media slot can be assigned to a corresponding video or photo that can be selected by the user.

[0166] As mentioned above, media slot 906 is initially displayed in the template selection view of a specific template (see, for example, see...). Figure 9A Within. In response to the user's selection of media slots, interactive client 104 from... Figure 9A The user interface 902 is switched to Figure 10A User interface 1002.

[0167] Figure 10A The example shows the first (e.g., the leftmost) media slot with a highlighted (e.g., yellow) frame. For example, the first media slot can be automatically highlighted when switching from the template selection view to user interface 1002. The highlighted media slot corresponds to the current media slot of the video / photo selected by the user. When a media slot is assigned to a video / photo, the highlight moves to the next (e.g., the subsequent rightmost) media slot in the sequence 906 of media slots (e.g., as...). Figure 10B (As shown). In addition, the user's selection of a specific media slot within media slot 906 causes the highlight to move to the user-selected media slot (e.g., skipping a slot).

[0168] Therefore, for each media slot, the user interface 1002 allows the user (e.g., Figure 5 The second user selects videos / photos from media selector 1008. Media selector 1008 is populated with videos / photos from one or more media libraries. For example, the first media library corresponds to personal stories (e.g., "memories") stored by the interactive system 100 in association with the user's personal account. The second media library is stored locally on the user system 102 running the interactive client 104. At this point, media library selector 1006 can be used in the first media library (e.g., such as...) Figure 10A Choose between the "Memory" library shown and a second media library containing locally saved videos / photos. The first media library can be the default selection for media library selector 1006.

[0169] like Figure 10AAs shown in the example, media selector 1008 presents videos / photos within media selector 1008 as corresponding tiles in a grid. Each tile within media selector 1008 is user-selectable for allocation to a corresponding (e.g., highlighted) media slot in media slot 906. In the example implementation, each tile presents an empty checkbox (e.g., a circle) that is filled (e.g., with a checkmark) when selected by the user.

[0170] In the example implementation, the interactive client 104 allows the user to select multiple tiles at once. In this case, the interactive client 104 allows the user interface 1002 to assign each selected video / photo to a corresponding unfilled media slot within media slot 906. Although Figure 10B The example shows multiple checkmarks, but the interactive client 104 may instead depict a sequence of numbers (e.g., 1, 2, 3, etc.) to indicate the order in which the remaining empty media slots are filled.

[0171] In the example implementation, the interactive client 104 is configured to determine which videos are shorter in length than the duration of the current (e.g., highlighted) media slot and prevent the user from selecting such videos. For example, shorter videos are grayed out and / or presented with titles indicating they are not selectable (e.g., "Too Short"). This approach does not prevent the selection of photos, as photos are displayable for the entire duration of the corresponding media slot.

[0172] In the example implementation, the interactive client 104 allows the user to select a media slot that is already filled within media slot 906. In response to such a selection, the user interface 1002 allows the user to select a different video / photo for the media slot from the media selector 1008, remove the video / photo currently assigned to the media slot, and / or redirect to a trimmed view for selecting the currently assigned video / photo (e.g., as shown below). Figure 11 (To be discussed further). In the event that a video / photo in a filled media slot is removed, the media slot becomes unfilled while the highlighted frame remains, and the remaining media slots within media slot 906 are unaffected.

[0173] In an example implementation, user interface 1002 includes a method for rebooting to the capture interface (e.g., see below). Figure 12 The camera device button 1004 (discussed) activates the device's camera device to capture video or photos for the corresponding media slot. In the case of capturing video instead of photos, the interactive client 104 is configured to display a countdown timer for the video based on the duration of the highlighted media slot (e.g., as shown below). Figure 12(To be discussed further). After capturing video / photos, the interactive client 104 returns to the user interface 1002.

[0174] In the example implementation, the user interface 1002 enables the preview button 1010 once all media slots within media slot 906 have been filled. For example, the preview button 1010 can be grayed out and disabled when the user selects a corresponding video / photo for each media slot in media slot 906. However, after all media slots in media slot 906 have been assigned videos / photos, the interactive client 104 is configured to enable the preview button 1010 and display the preview button 1010 as enabled for selection (e.g., by displaying the preview button 1010 in yellow instead of gray).

[0175] In the example implementation, the cancel button 1012 is selectable by the user to return to (e.g., Figure 9A The template selection view. As mentioned above, if the user switches to another template via a swipe gesture within the template selection view, the user is prompted to save a draft of the media content item (e.g., according to...). Figure 9B ).

[0176] Although Figures 10A to 10B The example shows that media slot 906 is initially empty by default (e.g., unassigned), but interactive client 104, in conjunction with interactive server system 110, may automatically populate all or some media slots in media slot 906 with (multiple) videos and / or (multiple) photos selected from a media library associated with the user. With appropriate user permission, interactive server system 110 can be configured to pre-select videos / photos from the media library based on the context of the videos / photos (e.g., geolocation, object detection, tagged content, metadata, etc.) matching the context of the template (e.g., music, location, age, etc.). In this way, interactive client 104 is able to provide “draft” media content items with the selected videos / photos for the user to review, approve, and / or otherwise modify, thereby generating the corresponding media content item.

[0177] Figure 11 A user interface 1102 corresponding to the trim view is shown, based on some examples. As mentioned above, the trim view allows the user to select a currently assigned segment of video / photo. Figure 11 In the example, the user interface 1102 includes image data 1104, a save button 1106, a pause button 1108, a delete button 1110, a preview bar 1112, and a segment selector 1114.

[0178] In the example implementation, in response to the user's selection of a media slot to which video is allocated, the interactive client 104 is configured to determine whether the allocated video has a longer duration than the selected media slot. If the allocated video has a longer duration, the interactive client 104 provides a user interface 1102 that displays a trimmed view.

[0179] User interface 1102 allows the user to select a segment of video to be assigned to a media slot, wherein the selected segment is set to have a duration corresponding to the media slot. In the example implementation, interactive client 104 does not allow the user to change the duration of the media slot. Initially, interactive client 104 defaults to the initial segment (e.g., starting from the beginning of the video and having the duration of the media slot).

[0180] The user interface 1102 also includes a preview bar 1112 that displays frames of the corresponding video. The segment selector 1114 is a user-draggable selector with a width corresponding to the duration of a media slot, used for selecting segments.

[0181] As the segment selector 1114 is dragged, the image data 1104 is updated to correspond to the selected segment. In the example implementation, the image data 1104 is displayed as a loop playback of the selected segment within the user interface 1102 to the video segment to be used for the corresponding media slot.

[0182] In the example implementation, the pause button 1108 is user-selectable to pause and unpause playback of the selected segment (e.g., loop playback). Additionally, the delete button 1110 is selectable to delete the video associated with the corresponding media slot. Selecting the delete button 1110 causes the interactive client 104 to redirect to... Figures 10A to 10B The user interface 1002 displays the corresponding media slot as empty.

[0183] In the example implementation, the save button 1106 is user-selectable to save the segment that the user has set for the corresponding media slot via the segment selector 1114. Selecting the save button 1106 causes the interactive client 104 to redirect to the user interface 1002 and display the corresponding media slot as filled (e.g., a frame with the selected segment).

[0184] Figure 12 A user interface 1202 corresponding to the capture interface is shown according to some examples. The capture interface activates the device's camera to capture video or photographs for allocation to the corresponding media time slot. Figure 12In the example, user interface 1202 includes a countdown timer 1204, a camera device tool 1206, image data 1208, a carousel interface 1210, a selected AR icon 1212, a delete button 1214, and a back button 1216. Additionally, user interface 1202 includes the above-mentioned references. Figures 10A to 10B The description includes the preview button 1010 and media slot 906.

[0185] As shown above (refer to the reference) Figures 10A to 10B As stated, the user interface 1202 is displayed in response to the user's selection of the camera device button 1004. The user interface 1202 displays image data 1208 captured by the device's camera device (e.g., a front-facing camera or a rear-facing camera) in real time. Furthermore, the camera device tool 1206 includes one or more of the following: a flip camera device button for switching between the front and rear cameras; a dual camera device button for capturing content using both the front and rear cameras simultaneously; a green screen button for selecting the background; a speed button for changing the camera speed based on the captured image data; a timer button for counting down from a preset time before automatically taking photos / videos; a flash button for activating the camera device's flash; and an import media button for importing photos / videos.

[0186] In an example implementation, the carousel interface 1210 allows the user to cycle through and / or select different augmented reality content items (e.g., shots) to apply / display with respect to image data 1208. Each of the available augmented reality content items is represented by an icon that the user can select to switch to the corresponding augmented reality content item. In the example implementation, the icon corresponding to the active augmented reality content item (e.g., the selected AR icon 1212) is displayed differently relative to the other icons (e.g., larger than the other icons).

[0187] As mentioned above, during the template creation phase, the template creator can specify edits corresponding to augmented reality content items for media slot 906 at the global level or on a per-segment basis. Figure 12 In the example, the selected AR icon 1212 corresponds to an augmented reality content item pre-selected by the template creator during the template creation phase. In the template creator (e.g., Figure 5 If the first user in the context has already specified that the augmented reality content item is immutable, then the end user (e.g., Figure 5The second user (e.g., the first user) will not be allowed to select different augmented reality content items within 1212. On the other hand, if the template creator (e.g., the first user) allows changes regarding augmented reality content items, the end user (e.g., the second user) will be allowed to select different augmented reality content items via the selected AR icon 1212, or not select any augmented reality content items.

[0188] The user's selection of the chosen AR icon 1212 allows the generation of images of screen content (e.g., in response to a press / tap gesture on the chosen AR icon 1212) and / or videos (e.g., in response to a press and hold gesture on the chosen AR icon 1212). While in Figure 12 The example is not shown, but the selected AR icon 1212 may correspond to a blank button in which no augmented reality content item is selected, in order to capture regular video / photo without applying augmented reality content to image data 1208.

[0189] Furthermore, during the template creation phase, the creator may have already specified edits corresponding to the audio track for media slot 906 at the global level or on a per-segment basis. During the capture of image data 1208, the interactive client 104 is configured to play the audio track with a time offset based on the start of the corresponding media slot.

[0190] In the example implementation, the audio tracks(s) selected by the first user are immutable. Therefore, the user interface 1202 does not include interface elements (e.g., a music tuner) for editing the audio associated with the video / photo corresponding to the image data 1208.

[0191] As described above, when capturing video rather than photos, the interactive client 104 is configured to display a countdown timer 1204 for the video based on the duration of the current media slot. For example, the countdown timer initially displays the duration of the corresponding media slot in seconds, and then counts down in seconds as the press-and-hold gesture on the selected AR icon 1212 is held.

[0192] In an example implementation, interactive client 104 allows a user to capture a single video or a single photo to occupy the entire duration of the current media slot. Alternatively or additionally, interactive client 104 allows a user to capture multiple videos / photos that are combined to occupy the entire duration of the current media slot. Each video in the current media slot is counted down based on its respective length using a countdown timer, and each photo in the media slot is counted down by a preset time (e.g., 1 second).

[0193] Interactive client 104 is configured to perform a certain duration of the corresponding media slot (e.g., such as...) Figure 12Recording stops at 25 seconds (as shown in the corresponding media time slot). In the example implementation, the delete button 1214 is user-selectable to delete the video(s) and / or(s) photos associated with the corresponding media time slot. Selecting the delete button 1214 causes the interactive client 104 to display the corresponding media time slot as empty and allows the user to re-record the video / photo for the corresponding media time slot via the user interface 1202. Additionally, the back button 1216 is user-selectable to exit the capture interface and return to... Figures 10A to 10B The media selection interface retains the captured image data 1208 for the corresponding media slot (e.g., based on user prompts).

[0194] As described above, if media slot 906 is not yet filled, the interactive client 104 provides a highlighted display of the next available media slot. The user can then select according to... Figures 10A to 10B Choose videos / photos from the media selection interface, or use the following methods: Figure 12 The next available media slot is filled with newly captured (multiple) videos / (multiple) photos via the capture interface.

[0195] Figure 12 An example scenario is depicted where media slot 906 is filled. User interface 1002 enables preview button 1010 (e.g., by changing the color of preview button 1010 from gray to yellow). Preview button 1010 is user-selectable to generate media content items based on the video and / or photo assigned to media slot 906. Additionally, interactive client 104 is redirected to the preview interface, as shown below. Figure 13 The subject of discussion.

[0196] Figure 13 User interface 1302 corresponding to the preview interface is shown according to some examples. The interactive client 104 is configured to combine the corresponding video and / or photos assigned to the media slots with specified audio tracks(s) and any additional edits to generate media content items. User interface 1302 includes image data 1304, editing tools 1306, audio track information 1308, captions 1310, labels 1312, save button 1314, send button 1316, position selector 1320, and pause button 1322.

[0197] In the example implementation, the editing tool 1306 includes one or more of the following: a text button for adding or editing caption(s) context; a doodle button for drawing on photos and videos; a label button for adding labels such as emojis, bitmojis, GIFs, etc.; a scissors button for creating custom labels; a web attachment for adding URLs; a loop button for enabling or disabling loop playback of media content items; a sound filter button for changing the sound; and a filter button for adding / editing filter-based effects.

[0198] As described above, during the template creation phase, the first user (e.g., the template creator) may have already specified edits (e.g., audio tracks, captions, labels, augmented reality content items, etc.) for media slots at a global level or on a per-segment basis. In doing so, the template creator also specifies which edits are global and / or which are immutable. In the example implementation, the interactive client 104 is configured to present the editing tool 1306 based on which edits are mutable / immutable. For example, the buttons of the editing tool 1306 are enabled / disabled based on whether their corresponding edits are mutable or immutable.

[0199] exist Figure 13 In the example, audio track information 1308, subtitles 1310, and labels 1312 correspond to pre-applied edits. As mentioned above, audio track information 1308 and the corresponding audio track can be immutable. However, subtitles 1310 and labels 1312 can be changed by an end user (e.g., a second user) via one or more editing tools of editing tool 1306.

[0200] In the example implementation, the user interface 1302 also includes a preview bar 1318 that displays frames of the corresponding media content item. A position selector 1320 is a user-draggable selector positioned to a specific frame within the media content item. As the position selector 1320 is dragged, the image data 1304 is updated to correspond to the selected position.

[0201] In the example implementation, image data 1304 is displayed as a looping playback of media content items within the user interface 1302. Furthermore, a pause button 1322 is user-selectable to pause and unpause playback of the selected segment (e.g., looping playback).

[0202] like Figure 13 As shown in the example, preview bar 1318 displays the boundaries between the corresponding media slots. Each media slot is user-selectable to apply edits (e.g., captions, labels, augmented reality content items, etc.) in a captured manner based on the mutable / immutable state of the corresponding segment as specified by the template creator.

[0203] Regarding augmented reality content items, user interface 1302 can be updated to include a carousel interface (e.g., similar to...). Figure 12 The carousel interface (1210) allows for the addition of captured augmented reality content on a global or per-segment basis, based on template variability / invariance.

[0204] In the example implementation, the back button 1324 is selectable by the user to exit the preview interface and return to the previous screen. Figures 10A to 10B The media selection interface retains both the media content items and any changes made to them by the user via the editing tool 1306.

[0205] User interface 1302 also includes a save button 1314 for saving media content items (e.g., with modifications / annotations). Additionally, a send button 1316 is user-selectable for sending media content items, including any modifications and / or annotations, to recipients (e.g., contacts / friends), groups, and / or stories (e.g., personal stories).

[0206] Figure 14 This is a flowchart illustrating a process 1400 for providing templates for media content generation, based on some examples. For illustrative purposes, this document primarily refers to... Figure 1 and Figure 5 The process 1400 is described using an interactive server system 110, a first interactive client 502, and a second interactive client 504. However, one or more blocks (or operations) of the process 1400 may be executed by one or more other components and / or other suitable devices. Further, for illustrative purposes, the blocks (or operations) of the process 1400 are described herein as occurring serially or linearly. However, multiple blocks (or operations) of the process 1400 may occur in parallel or simultaneously. Additionally, the blocks (or operations) of the process 1400 do not need to be executed in the order shown, and / or one or more blocks (or operations) of the process 1400 need not be executed and / or may be replaced by other operations. The process 1400 may terminate upon completion of its operations. Furthermore, the process 1400 may correspond to a method, program, algorithm, etc.

[0207] Interactive server system 110 receives instructions from a first interactive client 502 associated with a first user to set attributes in order to create a template for combining user-selected media with preset audio tracks (block 1402). Attributes specify the preset audio tracks, the sequence of media slots, the duration of each media slot, and predefined edits applied associated with the media slots. In an example implementation, the predefined edits also include at least one of captions, labels, or augmented reality content items. Interactive server system 110 stores the attributes in association with the template.

[0208] The interactive server system 110 displays a user interface (block 1404) on a second interactive client 504 associated with a second user based on attributes. The user interface allows the second user to assign corresponding videos or photos to each media slot in the media slots. The first user and the second user can correspond to the same user or different users.

[0209] In the example implementation, prior to displaying the user interface, the interactive server system 110 provides multiple entry points for display on the second interactive client 504, each of which can be selected by the second user to expose the user interface. The multiple entry points include a first entry point selectable from a camera device interface displayed on the second interactive client 504, the camera device interface being configured to capture and display image data in real time. The multiple entry points also include a second entry point selectable within a second media content item displayed on the second interactive client 504, the second media content item having been accessed via content feeds provided to the second interactive client 504.

[0210] In an example implementation, the user interface includes a media selection element for selecting a corresponding video or photo from a media library to be assigned to a media time slot. Additionally, the user interface includes a user-selectable button for activating the device's camera to capture the corresponding video or photo assigned to the media time slot in real time. The real-time capture of the corresponding video is accompanied by the display of a corresponding countdown timer based on the duration of the media time slot. The user interface is configured to receive third-user input to select a segment of the corresponding video to be assigned to the media time slot, the selected segment corresponding to the corresponding duration of the media time slot.

[0211] The interactive server system 110 receives media content items (block 1406) generated from the second interactive client 504 based on second user input provided via the user interface. The second user input assigns the corresponding video or photo to each media slot in the media slot.

[0212] Machine architecture

[0213] Figure 15This is a schematic representation of machine 1500, within which instructions 1502 (e.g., software, programs, applications, applets, or other executable code) can be executed to cause machine 1500 to perform any or more of the methods discussed herein. For example, instructions 1502 can cause machine 1500 to perform any or more of the methods described herein. Instructions 1502 transform the general, unprogrammed machine 1500 into a specific machine 1500 programmed to perform the described and illustrated functions in the described manner. Machine 1500 can operate as a standalone device or can be coupled (e.g., networked) to other machines. In a networked deployment, machine 1500 can operate as a server machine or a client machine in a server-client network environment, or as a peer machine in a peer-to-peer (or distributed) network environment. Machine 1500 may include, but is not limited to, server computers, client computers, personal computers (PCs), tablet computers, laptop computers, netbooks, set-top boxes (STBs), personal digital assistants (PDAs), entertainment media systems, cellular phones, smartphones, mobile devices, wearable devices (e.g., smartwatches), smart home devices (e.g., smart appliances), other smart devices, web devices, network routers, network switches, network bridges, or any machine capable of sequentially or otherwise executing instructions 1502 specifying actions to be taken by machine 1500. Furthermore, although only a single machine 1500 is shown, the term "machine" should also be considered as a collection of machines that individually or jointly execute instructions 1502 to perform any or more of the methods discussed herein. For example, machine 1500 may include user system 102 or any of a plurality of server devices forming part of interactive server system 110. In some examples, machine 1500 may also include both client and server systems, wherein certain operations of a particular method or algorithm are performed on the server side and certain operations of said particular method or algorithm are performed on the client side.

[0214] Machine 1500 may include a processor 1504, a memory 1506, and an input / output (I / O) unit 1508 that can be configured to communicate with each other via a bus 1510. In the example, processor 1504 (e.g., a central processing unit (CPU), a reduced instruction set computing (RISC) processor, a complex instruction set computing (CISC) processor, a graphics processing unit (GPU), a digital signal processor (DSP), an application-specific integrated circuit (ASIC), a radio frequency integrated circuit (RFIC), another processor, or any suitable combination thereof) may include, for example, processors 1512 and 1514 that execute instruction 1502. The term "processor" is intended to include multi-core processors, which may include two or more independent processors (sometimes referred to as "cores") capable of executing instructions simultaneously. Although Figure 15 Multiple processors 1504 are shown, but machine 1500 may include a single processor with a single core, a single processor with multiple cores (e.g., a multi-core processor), multiple processors with a single core, multiple processors with multiple cores, or any combination thereof.

[0215] Memory 1506 includes main memory 1516, static memory 1518, and memory cell 1520, all of which are accessible by processor 1504 via bus 1510. Main memory 1506, static memory 1518, and memory cell 1520 store instructions 1502 that implement any one or more of the methods or functions described herein. Instructions 1502 may also reside wholly or partially in main memory 1516, static memory 1518, machine-readable medium 1522 within memory cell 1520, at least one processor of processor 1504 (e.g., within the processor's cache memory), or any suitable combination thereof during execution by machine 1500.

[0216] I / O component 1508 may include various components for receiving input, providing output, generating output, sending information, exchanging information, capturing measurement results, etc. The specific I / O component 1508 included in a particular machine will depend on the type of machine. For example, a portable machine such as a mobile phone may include a touch input device or other such input mechanism, while a headless server machine is unlikely to include such a touch input device. It should be recognized that I / O component 1508 may include... Figure 15Many other components are not shown. In various examples, I / O component 1508 may include user output component 1524 and user input component 1526. User output component 1524 may include visual components (e.g., displays such as plasma display panels (PDPs), light-emitting diode (LED) displays, liquid crystal displays (LCDs), projectors, or cathode ray tube (CRT) displays), acoustic components (e.g., speakers), haptic components (e.g., vibration motors, resistance mechanisms), other signal generators, etc. User input component 1526 may include alphanumeric input components (e.g., keyboards, touchscreens configured to receive alphanumeric input, optical keyboards, or other alphanumeric input components), point-based input components (e.g., mice, touchpads, trackballs, joysticks, motion sensors, or other pointing instruments), haptic input components (e.g., physical buttons, touchscreens or other haptic input components that provide the position and force of a touch or touch gesture), audio input components (e.g., microphones), etc.

[0217] In other examples, I / O component 1508 may include biometric component 1528, motion component 1530, environmental component 1532, or position component 1534, as well as a wide range of other components. For example, biometric component 1528 includes components for detecting expressions (e.g., hand gestures, facial expressions, vocal expressions, body posture, or eye tracking), measuring biosignals (e.g., blood pressure, heart rate, body temperature, sweating, or brain waves), and identifying a person (e.g., voice recognition, retinal recognition, facial recognition, fingerprint recognition, or EEG-based recognition). Biometric components may include brain-computer interface (BMI) systems that allow communication between the brain and external devices or machines. This can be achieved by recording brain activity data, converting that data into a format that can be understood by a computer, and then using the resulting signals to control the device or machine.

[0218] Examples of BMI technology types include:

[0219] Brain-based brain-computer interfaces (BMIs) use electrodes placed on the scalp to record electrical activity in the brain.

[0220] Invasive BMI uses electrodes surgically implanted in the brain.

[0221] Optogenetics BMI uses light to control the activity of specific nerve cells in the brain.

[0222] Any biometric data collected by biometric components is captured and stored only with the user's consent and is deleted upon the user's request. Furthermore, this biometric data may be used for very limited purposes, such as authentication. To ensure limited and authorized use of biometric information and other personally identifiable information (PII), access to this data is restricted to authorized personnel (if applicable). Any use of biometric data may be strictly limited to authentication purposes, and the data will not be shared or sold to any third party without the user's explicit consent. In addition, appropriate technical and organizational measures have been implemented to ensure the security and confidentiality of this sensitive information.

[0223] The moving part 1530 includes an acceleration sensor part (e.g., an accelerometer), a gravity sensor part, and a rotation sensor part (e.g., a gyroscope).

[0224] The environmental component 1532 includes, for example, one or more camera devices (with still image / photograph and video capabilities), lighting sensor components (e.g., photometers), temperature sensor components (e.g., one or more thermometers for detecting ambient temperature), humidity sensor components, pressure sensor components (e.g., barometers), acoustic sensor components (e.g., one or more microphones for detecting background noise), proximity sensor components (e.g., infrared sensors for detecting nearby objects), gas sensors (e.g., gas detection sensors for detecting the concentration of hazardous gases for safety purposes or for measuring pollutants in the atmosphere), or other components that can provide indications, measurements, or signals corresponding to the surrounding physical environment.

[0225] Regarding the camera device, user system 102 may have a camera device system including, for example, a front-facing camera on the front surface of user system 102 and a rear-facing camera on the rear surface of user system 102. The front-facing camera may be used, for example, to capture still images and videos (e.g., "selfies") of the user of user system 102, which can then be enhanced with the aforementioned enhancement data (e.g., filters). For example, the rear-facing camera may be used to capture still images and videos in a more conventional camera device mode, which are similarly enhanced with the enhancement data. In addition to the front-facing and rear-facing cameras, user system 102 may also include a 360° camera for capturing 360° photos and videos.

[0226] Furthermore, the camera system of user system 102 may include dual rear cameras (e.g., a main camera and a depth-sensing camera), or even triple, quadruple, or quintuple rear camera configurations on the front and rear sides of user system 102. For example, these multi-camera systems may include wide-angle cameras, ultra-wide-angle cameras, telephoto cameras, macro cameras, and depth sensors.

[0227] The position component 1534 includes a positioning sensor component (e.g., a GPS receiver component), an altitude sensor component (e.g., an altimeter or barometer that detects air pressure and from which altitude can be obtained), an orientation sensor component (e.g., a magnetometer), and the like.

[0228] Various technologies can be used to achieve communication. I / O component 1508 also includes communication component 1536, which is operable to couple machine 1500 to network 1538 or device 1540 via a corresponding coupling or connection. For example, communication component 1536 may include a network interface component or another suitable device that interfaces with network 1538. In other examples, communication component 1536 may include wired communication component, wireless communication component, cellular communication component, near field communication (NFC) component, Bluetooth component, etc. ® Components (e.g., Bluetooth) ® Low energy consumption), Wi-Fi ® Components and other communication components for providing communication via other means. Device 1540 can be any peripheral device from another machine or various peripheral devices (e.g., a peripheral device coupled via USB).

[0229] Furthermore, communication component 1536 can detect identifiers, or includes components operable to detect identifiers. For example, communication component 1536 may include a radio frequency identification (RFID) tag reader component, an NFC smart tag detection component, an optical reader component (e.g., for detecting one-dimensional barcodes such as Universal Product Code (UPC) barcodes, QR codes such as Quick Response (QR) codes, Aztec codes, data matrices, and data symbols). TM The system can utilize optical sensors for multidimensional barcodes and other optical codes, such as MaxiCode, PDF417, UltraCode, and UCC RSS-2D barcodes, or acoustic detection components (e.g., microphones for identifying audio signals of the tags). Additionally, various information can be obtained via communication component 1536, such as location via Internet Protocol (IP) geolocation, location via Wi-Fi® signal triangulation, and location via detecting NFC beacon signals that indicate a specific location.

[0230] Various memories (e.g., main memory 1516, static memory 1518, and the memory of processor 1504) and storage unit 1520 may store one or more sets of instructions and data structures (e.g., software) implemented or used by any one or more of the methods or functions described herein. These instructions (e.g., instruction 1502) cause various operations to implement the disclosed examples when executed by processor 1504.

[0231] Instructions 1502 can be sent or received over network 1538 via a transmission medium using a network interface device (e.g., a network interface component included in communication component 1536) and using any of several known transmission protocols (e.g., Hypertext Transfer Protocol (HTTP)). Similarly, instructions 1502 can be sent or received via a transmission medium coupled to device 1540 (e.g., peer-to-peer coupling).

[0232] Software Architecture

[0233] Figure 16 This is a block diagram 1600 illustrating a software architecture 1602 that can be installed on any or more devices described herein. The software architecture 1602 is supported by hardware, such as a machine 1604 including a processor 1606, memory 1608, and I / O components 1610. In this example, the software architecture 1602 can be conceptualized as a stack of layers, where each layer provides a specific function. The software architecture 1602 includes layers such as an operating system 1612, libraries 1614, frameworks 1616, and applications 1618. Operationally, application 1618 activates API calls 1620 via the software stack and receives messages 1622 in response to API calls 1620.

[0234] Operating system 1612 manages hardware resources and provides public services. Operating system 1612 includes, for example, a kernel 1624, services 1626, and drivers 1628. Kernel 1624 serves as an abstraction layer between hardware and other software layers. For example, kernel 1624 provides functions such as memory management, processor management (e.g., scheduling), component management, networking, and security settings. Services 1626 can provide other public services to other software layers. Drivers 1628 are responsible for controlling or interfacing with the underlying hardware. For example, drivers 1628 may include display drivers, camera drivers, BLUETOOTH® or BLUETOOTH® low-power drivers, flash memory drivers, serial communication drivers (e.g., USB drivers), Wi-Fi® drivers, audio drivers, power management drivers, etc.

[0235] Library 1614 provides common low-level infrastructure used by application 1618. Library 1614 may include system library 1630 (e.g., the C standard library), which provides functions such as memory allocation, string manipulation, and mathematical functions. Furthermore, library 1614 may include API library 1632, such as media libraries (e.g., libraries for supporting the rendering and manipulation of various media formats, such as Moving Picture Experts Group-4 (MPEG4), Advanced Video Coding (H.264 or AVC), Moving Picture Experts Group Layer-3 (MP3), Advanced Audio Coding (AAC), Adaptive Multi-Rate (AMR) audio codec, Joint Picture Experts Group (JPEG or JPG), or Portable Web Graphics (PNG)), graphics libraries (e.g., the OpenGL framework for rendering graphic content on a display in two-dimensional (2D) and three-dimensional (3D) formats), database libraries (e.g., SQLite, which provides various relational database functions), web libraries (e.g., WebKit, which provides web browsing capabilities), and so on. Library 1614 may also include a wide variety of other libraries 1634 to provide many other APIs to application 1618.

[0236] Framework 1616 provides common high-level infrastructure for use by application 1618. For example, Framework 1616 provides various graphical user interface (GUI) functions, high-level resource management, and high-level location services. Framework 1616 can provide a wide range of other APIs that can be used by application 1618, some of which may be specific to a particular operating system or platform.

[0237] In the example, application 1618 may include home application 1636, contact application 1638, browser application 1640, book reader application 1642, location application 1644, media application 1646, messaging application 1648, game application 1650, and a wide variety of other applications such as third-party application 1652. Application 1618 is a program that performs the functions defined in the program. One or more applications 1618 can be created using various programming languages, such as object-oriented programming languages ​​(e.g., Objective-C, Java, or C++) or procedural programming languages ​​(e.g., C or assembly language). In a particular example, third-party application 1652 (e.g., an application developed by an entity other than a platform-specific vendor using the Android™ or iOS™ Software Development Kit (SDK)) may be mobile software that runs on mobile operating systems such as iOS™, Android™, Windows® Phone, or other mobile operating systems. In this example, a third-party application 1652 can activate API call 1620 provided by the operating system 1612 to facilitate the functionality described herein.

[0238] Example

[0239] Example 1 is a system comprising: at least one processor; at least one memory unit storing instructions that, when executed by the at least one processor, cause the at least one processor to perform operations including: receiving from a first device associated with a first user an instruction to set attributes to create a template for combining user-selected media with preset audio tracks, wherein the attributes specify the preset audio tracks, a sequence of media slots, a duration of each media slot, and predefined edits applied in association with the media slots; based on the attributes, causing a user interface to be displayed on a second device associated with a second user, the user interface allowing the second user to assign corresponding videos or photos to each media slot; and receiving from the second device media content items generated based on second user input provided via the user interface, the second user input assigning the corresponding videos or photos to each media slot.

[0240] In Example 2, the subject of Example 1 includes the operation further comprising: providing a plurality of entry points on the second device for display before causing the user interface to be displayed, each of the plurality of entry points being selectable by the second user to reveal the user interface.

[0241] In Example 3, the subject of Example 2 includes, wherein the plurality of entry points includes a first entry point selectable from a camera device interface displayed on the second device, the camera device interface being configured to capture image data in real time and display the captured image data.

[0242] In Example 4, the themes of Examples 2 to 3 include, wherein the plurality of entry points include a second entry point selectable within a second media content item that can be displayed on the second device, the second media content item having been accessed via a content feed provided to the second device.

[0243] In Example 5, the subject of Examples 1 to 4 includes a user interface that includes a media selection element for selecting a corresponding video or photo from a media library to be assigned to the media slot.

[0244] In Example 6, the subject matter of Examples 1 to 5 includes, wherein the user interface includes a user-selectable button for activating the device's camera to capture in real time a corresponding video or photograph for allocation to the media time slot.

[0245] In Example 7, the subject of Example 6 includes the following: the real-time capture of the corresponding video is accompanied by the display of a corresponding countdown timer based on the duration of the media slot.

[0246] In Example 8, the subject of Examples 1 to 7 includes a user interface configured to receive input from a third user to select a segment of video assigned to the media slot, the selected segment corresponding to a corresponding duration of the media slot.

[0247] In Example 9, the subject matter of Examples 1 to 8 includes the operation further comprising: storing the attribute in association with the template before causing the user interface to be displayed.

[0248] In Example 10, the topics of Examples 1 to 9 include, where the first user and the second user correspond to the same user.

[0249] In Example 11, the topics of Examples 1 to 10 include, wherein the first user and the second user correspond to different users.

[0250] In Example 12, the themes of Examples 1 to 11 include, wherein the predefined edits also include at least one of captions, labels, or augmented reality content items.

[0251] Example 13 is a method comprising: receiving from a first device associated with a first user an instruction to set attributes to create a template for combining user-selected media with preset audio tracks, wherein the attributes specify the preset audio tracks, a sequence of media slots, the duration of each media slot, and predefined edits applied in association with the media slots; based on the attributes, causing a user interface to be displayed on a second device associated with a second user, the user interface allowing the second user to assign a corresponding video or photo to each media slot; and receiving from the second device media content items generated based on second user input provided via the user interface, the second user input assigning the corresponding video or photo to each media slot.

[0252] In Example 14, the subject of Example 13 includes providing a plurality of entry points on the second device for display before causing the user interface to be displayed, each of the plurality of entry points being selectable by the second user to reveal the user interface.

[0253] In Example 15, the subject of Example 14 includes, wherein the plurality of entry points includes a first entry point selectable from a camera device interface displayed on the second device, the camera device interface being configured to capture image data in real time and display the captured image data.

[0254] In Example 16, the subject of Examples 14 to 15 includes, wherein the plurality of entry points include a second entry point selectable within a second media content item that can be displayed on the second device, the second media content item having been accessed via a content feed provided to the second device.

[0255] In Example 17, the subject of Examples 13 to 16 includes a user interface that includes a media selection element for selecting a corresponding video or photo from a media library to be assigned to the media slot.

[0256] In Example 18, the subject matter of Examples 13 to 17 includes, wherein the user interface includes a user-selectable button for activating the device's camera to capture in real time a corresponding video or photograph for allocation to the media time slot.

[0257] In Example 19, the subject of Example 18 includes the following: the real-time capture of the corresponding video is accompanied by the display of a corresponding countdown timer based on the duration of the media slot.

[0258] Example 20 is a non-transitory computer-readable storage medium storing instructions that, when executed by at least one processor, cause the at least one processor to perform operations including: receiving from a first device associated with a first user an instruction to set attributes to create a template for combining user-selected media with preset audio tracks, wherein the attributes specify the preset audio tracks, a sequence of media slots, a duration of each media slot, and predefined edits applied in association with the media slots; based on the attributes, causing a user interface to be displayed on a second device associated with a second user, the user interface allowing the second user to assign a corresponding video or photo to each media slot; and receiving from the second device media content items generated based on second user input provided via the user interface, the second user input assigning the corresponding video or photo to each media slot.

[0259] Glossary

[0260] "Carrier signal" refers to any intangible medium, such as a medium capable of storing, encoding, or carrying instructions to be executed by a machine and including digital or analog communication signals, or other intangible medium that facilitates the communication of such instructions. Instructions can be sent or received over a network using a transmission medium via a network interface device.

[0261] "Client device" means any machine that interfaces with a communication network to obtain resources from one or more server systems or other client devices. Client devices can be, but are not limited to, mobile phones, desktop computers, laptop computers, portable digital assistants (PDAs), smartphones, tablet computers, ultrabooks, netbooks, laptop computers, multiprocessor systems, microprocessor-based or programmable consumer electronics, game consoles, set-top boxes, or any other communication device that a user can use to access the network.

[0262] "Communication network" means, for example, one or more parts of a network, which can be an ad hoc network, intranet, extranet, virtual private network (VPN), local area network (LAN), wireless LAN (WLAN), wide area network (WAN), wireless WAN (WWAN), metropolitan area network (MAN), the Internet, a part of the Internet, a part of the Public Switched Telephone Network (PSTN), a Common Old-Style Telephone Service (POTS) network, a cellular telephone network, a wireless network, a Wi-Fi® network, other types of networks, or a combination of two or more such networks. For example, a network or part of a network may include a wireless network or a cellular network, and the coupling may be a Code Division Multiple Access (CDMA) connection, a Global System for Mobile Communications (GSM) connection, or other types of cellular or wireless coupling. In this example, coupling can enable any data transmission technology of various types, such as single-carrier radio transmission technology (1xRTT), evolved data optimization (EVDO) technology, general packet radio service (GPRS) technology, enhanced data rate GSM evolution (EDGE) technology, the 3rd Generation Partnership Project (3GPP) including 3G, fourth-generation wireless (4G) networks, Universal Mobile Telecommunications System (UMTS), High-Speed ​​Packet Access (HSPA), Global Microwave Access Interoperability (WiMAX), Long Term Evolution (LTE) standards, other data transmission technologies defined by various standards setting organizations, other long-distance protocols, or other data transmission technologies.

[0263] A “component” refers to a logical or physical entity having boundaries defined by functional or subroutine calls, branch points, APIs, or other technologies that partition or modularize a particular processing or control function. A component can be combined with other components via its interface to perform machine processing. A component can be an encapsulated functional hardware unit designed for use with other components, and part of a program that typically performs a related function. A component can constitute a software component (e.g., code implemented on a machine-readable medium) or a hardware component. A “hardware component” is a tangible unit capable of performing certain operations and can be configured or arranged in some physical manner. In various examples, one or more computer systems (e.g., standalone computer systems, client computer systems, or server computer systems) or one or more hardware components (e.g., processors or processor groups) of a computer system can be configured by software (e.g., an application or application portion) to operate to perform certain operations as described herein. Hardware components can also be implemented mechanically, electronically, or in any suitable combination thereof. For example, a hardware component can include dedicated circuitry or logic permanently configured to perform certain operations. Hardware components can be dedicated processors, such as field-programmable gate arrays (FPGAs) or application-specific integrated circuits (ASICs). Hardware components can also include programmable logic or circuitry temporarily configured by software to perform certain operations. For example, a hardware component may include software executed by a general-purpose processor or other programmable processor. Once configured by such software, the hardware component becomes a particular machine (or a specific part of a machine), which is uniquely tailored to perform the configured function and is no longer a general-purpose processor. It will be appreciated that a decision can be made, for cost and time considerations, whether to implement the hardware component mechanically in a dedicated and permanently configured circuit or in a temporarily configured (e.g., software-configured) circuit. Therefore, the phrase “hardware component” (or “hardware-implemented component”) should be understood to include tangible entities, i.e., entities physically constructed, permanently configured (e.g., hardwired), or temporarily configured (e.g., programmed) to operate in a certain way or perform certain operations described herein. Consider the example of a hardware component being temporarily configured (e.g., programmed), without needing to configure or instantiate each hardware component at any given time. For example, in cases where the hardware components include a general-purpose processor that is configured as a dedicated processor via software, this general-purpose processor can be configured at different times as its respective dedicated processor (e.g., including different hardware components). The software accordingly configures one or more specific processors to constitute a specific hardware component at one time and different hardware components at different times. Hardware components can provide information to and receive information from other hardware components. Therefore, the described hardware components can be considered communicatively coupled.In the presence of multiple hardware components, communication can be achieved through signal transmission between or among two or more hardware components (e.g., via appropriate circuitry and buses). In examples where multiple hardware components are configured or instantiated at different times, such communication between hardware components can be achieved, for example, by storing information in a memory structure accessible to the multiple hardware components and retrieving information from the memory structure. For example, a hardware component can perform an operation and store the output of that operation in a memory device communicatively coupled to it. Another hardware component can then access the memory device at a subsequent time to retrieve and process the stored output. Hardware components can also initiate communication with input or output devices and can operate on resources (e.g., collections of information). The various operations of the example methods described herein can be performed, at least in part, by one or more processors configured, either temporarily (e.g., by software) or permanently, to perform the relevant operations. Whether temporarily or permanently configured, such processors can constitute processor-implemented components that operate to perform one or more operations or functions described herein. As used herein, "processor-implemented component" refers to a hardware component implemented using one or more processors. Similarly, the methods described herein can be implemented at least in part by processors, where a particular processor or one or more processors are examples of hardware. For example, at least some of the various operations of the methods can be performed by one or more processors or processor-implemented components. Furthermore, one or more processors can also operate to support the execution of related operations in a “cloud computing” environment or as a “Software as a Service” (SaaS) operation. For example, at least some of the operations can be performed by a group of computers (as an example of a machine including processors), where these operations are accessible via a network (e.g., the Internet) and via one or more appropriate interfaces (e.g., APIs). The execution of some operations can be distributed among processors, not residing within a single machine, but deployed across multiple machines. In some examples, the processor or processor-implemented component can be located in a single geographic location (e.g., within a home environment, office environment, or server cluster). In other examples, the processor or processor-implemented component can be distributed across multiple geographic locations.

[0264] "Computer-readable storage medium" refers to both, for example, machine storage media and transmission media. Therefore, these terms include both storage devices / media and carrier / modulated data signals. The terms "machine-readable medium," "computer-readable medium," and "device-readable medium" refer to the same thing and can be used interchangeably in this disclosure.

[0265] A "brief message" is a message that is accessible for a limited time, such as a short period of time. Brief messages can be text, images, videos, etc. The access time for a brief message can be set by the message sender. Alternatively, the access time can be a default setting or a setting specified by the recipient. Regardless of the setting method, the message is temporary.

[0266] "Machine storage medium" refers to one or more storage devices and media (e.g., centralized or distributed databases, and associated caches and servers) that store executable instructions, routines, and data. Therefore, this term should be considered to include, but is not limited to, solid-state memory and optical and magnetic media, including memory internal or external to the processor. Specific examples of machine storage media, computer storage media, and device storage media include: non-volatile memory, including, for example, semiconductor memory devices such as erasable programmable read-only memory (EPROM), electrically erasable programmable read-only memory (EEPROM), FPGAs, and flash memory devices; disks, such as internal hard disks and removable disks; magneto-optical disks; and CD-ROM and DVD-ROM disks. The terms "machine storage medium," "device storage medium," and "computer storage medium" mean the same thing and may be used interchangeably in this disclosure. The terms "machine storage medium," "computer storage medium," and "device storage medium" expressly exclude carrier waves, modulated data signals, and other such media, at least some of which are covered by the term "signal medium."

[0267] "Non-transitory computer-readable storage medium" means, for example, a tangible medium capable of storing, encoding, or carrying instructions that can be executed by a machine.

[0268] "Signal medium" means any intangible medium capable of storing, encoding, or carrying instructions that can be executed by a machine, and includes digital or analog communication signals or other intangible media that facilitate the communication of software or data. The term "signal medium" should be considered to include any form of modulated data signal, carrier wave, etc. The term "modulated data signal" means a signal whose characteristics are set or altered in a manner that encodes information in the signal. The terms "transmission medium" and "signal medium" mean the same thing and may be used interchangeably in this disclosure.

[0269] "User equipment" means, for example, a device that is accessed, controlled, or owned by a user, and that the user interacts with to perform actions or interactions on the user equipment, including interactions with other users or computer systems.

Claims

1. A system comprising: At least one processor; At least one memory unit stores instructions that, when executed by the at least one processor, cause the at least one processor to perform an operation, the operation including: The first device associated with the first user receives instructions to set attributes to create a template for combining user-selected media with preset audio tracks, wherein the attributes specify the preset audio tracks, the sequence of media slots, the duration of each media slot, and predefined edits applied in association with the media slots. Based on the aforementioned attributes, a user interface is displayed on a second device associated with the second user, the user interface allowing the second user to assign corresponding videos or photos to each media slot in the media slots; and The second device receives media content items generated based on second user input provided via the user interface, the second user input assigning the corresponding video or photo to each media slot in the media slot.

2. The system according to claim 1, wherein the operation further includes: Before displaying the user interface, a plurality of entry points are provided on the second device, each of which can be selected by the second user to reveal the user interface.

3. The system according to claim 2, wherein, The plurality of entry points includes a first entry point selectable from a camera device interface displayed on the second device, the camera device interface being configured to capture and display image data in real time.

4. The system according to claim 2, wherein, The plurality of entry points includes a second entry point selectable within a second media content item displayed on the second device, the second media content item having been accessed via a content feed provided to the second device.

5. The system according to claim 1, wherein, The user interface includes a media selection element for selecting a corresponding video or photo from the media library to be assigned to the media slot.

6. The system according to claim 1, wherein, The user interface includes a user-selectable button for activating the device's camera to capture, in real time, the corresponding video or photograph allocated to the media time slot.

7. The system according to claim 6, wherein, The real-time capture of the corresponding video is accompanied by the display of a corresponding countdown timer based on the duration of the media time slot.

8. The system according to claim 1, wherein, The user interface is configured to receive input from a third user to select a segment of video to be assigned to the media slot, the selected segment corresponding to the corresponding duration of the media slot.

9. The system according to claim 1, wherein the operation further comprises: The attributes are stored in association with the template before the user interface is displayed.

10. The system according to claim 1, wherein, The first user and the second user correspond to the same user.

11. The system according to claim 1, wherein, The first user and the second user correspond to different users.

12. The system according to claim 1, wherein, The predefined edits also include at least one of captions, stickers, or augmented reality content items.

13. A method comprising: The first device associated with the first user receives instructions to set attributes to create a template for combining user-selected media with preset audio tracks, wherein the attributes specify the preset audio tracks, the sequence of media slots, the duration of each media slot, and predefined edits applied in association with the media slots. Based on the aforementioned attributes, a user interface is displayed on a second device associated with the second user, the user interface allowing the second user to assign corresponding videos or photos to each media slot in the media slots; and The second device receives media content items generated based on second user input provided via the user interface, the second user input assigning the corresponding video or photo to each media slot in the media slot.

14. The method of claim 13, further comprising: Before displaying the user interface, a plurality of entry points are provided on the second device, each of which can be selected by the second user to reveal the user interface.

15. The method according to claim 14, wherein, The plurality of entry points includes a first entry point selectable from a camera device interface displayed on the second device, the camera device interface being configured to capture and display image data in real time.

16. The method of claim 14, wherein, The plurality of entry points includes a second entry point selectable within a second media content item displayed on the second device, the second media content item having been accessed via a content feed provided to the second device.

17. The method according to claim 13, wherein, The user interface includes a media selection element for selecting a corresponding video or photo from the media library to be assigned to the media slot.

18. The method according to claim 13, wherein, The user interface includes a user-selectable button for activating the device's camera to capture, in real time, the corresponding video or photograph allocated to the media time slot.

19. The method according to claim 18, wherein, The real-time capture of the corresponding video is accompanied by the display of a corresponding countdown timer based on the duration of the media time slot.

20. A non-transitory computer-readable storage medium storing instructions that, when executed by at least one processor, cause the at least one processor to perform an operation, the operation comprising: The first device associated with the first user receives instructions to set attributes to create a template for combining user-selected media with preset audio tracks, wherein the attributes specify the preset audio tracks, the sequence of media slots, the duration of each media slot, and predefined edits applied in association with the media slots. Based on the aforementioned attributes, a user interface is displayed on a second device associated with the second user, the user interface allowing the second user to assign corresponding videos or photos to each media slot in the media slots; and The second device receives media content items generated based on second user input provided via the user interface, the second user input assigning the corresponding video or photo to each media slot in the media slot.