Generate and access video content for product use

Through the combination of client applications and server systems, users are allowed to generate and share video content, and the content is arranged according to user characteristics, solving the problem of inconvenient access and purchase process of video content in the existing system, improving efficiency and convenience.

CN115735361BActive Publication Date: 2025-01-14SNAP INC
View PDF 1 Cites 0 Cited by

Patent Information

Application Number
CN202180046028.7
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Priority Date
2020-06-29
Filing Date
2021-06-29
Publication Date
2025-01-14
Estimated Expiration
2041-06-29

AI Technical Summary

Technical Problem

Existing systems are inefficient in creating, publishing, and accessing video content related to products, consumers need to access multiple sources to obtain information, and the access and purchase process of video content is inconvenient.

Method used

The client application allows users to generate and share video content related to the product, store and analyze these contents in the server system, arrange video content according to user characteristics and interest levels, and provide dedicated pages for access and purchase.

Benefits of technology

It enables consumers to easily access video content related to the product, improves the production and access efficiency of video content, simplifies the product purchase process, and reduces dependence on multiple platforms.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN115735361B_ABST
    Figure CN115735361B_ABST
Patent Text Reader

Abstract

In one or more implementations, video content generated using a client application can be provided to a user of the client application in association with one or more products for purchase via the client application. Video content items presented to a user can be identified based on the user's level of interest in the corresponding video content items. The user's level of interest in the video content items can be based on the user's profile information.
Need to check novelty before this filing date? Find Prior Art

Description

[0001] Priority claim

[0002] This patent application claims the benefit of priority to U.S. application serial number 16 / 915,785, filed on June 29, 2020, the entire contents of which are incorporated herein by reference. Background Art

[0003] Applications executed by client devices can be used to generate content. For example, client applications can be used to generate messaging content, image content, video content, audio content, media overlays, documents, creative works, combinations thereof, etc. In various cases, content related to products for sale can be accessed via one or more client applications. BRIEF DESCRIPTION OF THE DRAWINGS

[0004] In the drawings that are not necessarily drawn to scale, similar reference numerals may describe similar components in different views. To easily identify the discussion of any particular element or action, the highest digit or digits in the reference numerals refer to the figure number in which the element was first introduced. Some implementations are shown by way of example and not limitation.

[0005] Figure 1 is a pictorial representation of an architecture for exchanging data (eg, messages and related content) over a network according to one or more example implementations.

[0006] Figure 2 is a graphical representation of a system that may have both client-side and server-side functionality, according to some examples.

[0007] Figure 3 is a schematic diagram illustrating data that may be stored in a database of a server system according to one or more example implementations.

[0008] Figure 4 is a diagram illustrating an example framework for content that may be generated by a client application according to one or more example implementations.

[0009] Figure 5 is a diagram illustrating an architecture that may obtain and provide product-related content to a user of a client application according to one or more example implementations.

[0010] Figure 6 is a flow diagram illustrating example operations performed by a server system to obtain video content related to a product and provide the video content to a user of a client application according to one or more example implementations.

[0011] Figure 7is a flow diagram illustrating example operations performed by a client device to provide product-related video content to a server system, according to one or more example implementations.

[0012] Figure 8 is an illustration of a user interface including video content related to a product according to one or more example implementations.

[0013] Fig. 9 is an illustration of a user interface for capturing video content related to a product, according to one or more example implementations.

[0014] Fig.10 is an illustration of a user interface for editing product-related video content using tools of a client application according to one or more example implementations.

[0015] Fig.11 is a block diagram illustrating components of a machine in the form of a computer system that can read and execute instructions from one or more machine-readable media to perform any one or more of the methods described herein, according to one or more example implementations.

[0016] Fig.12 is a block diagram illustrating a representative software architecture that may be used in conjunction with one or more hardware architectures described herein, according to one or more example implementations. DETAILED DESCRIPTION

[0017] Products can be purchased using online platforms. Typically, consumers can access a website or mobile device application to obtain information about a product and purchase the product. Consumers may need to access multiple sources to obtain some information about the product that cannot be obtained via a website or client application that can be used to purchase the product. For example, video content related to the use of a product or a video review of a product cannot usually be accessed from a website page or client application dedicated to the product. Instead, consumers access video content including comments or information about how to use the product based on a source (e.g., a social media account) that creates the content or a website that makes the video content. The consumer can then move to another website or client application to purchase the product.

[0018] In addition, the individual who creates the content for the product may need to use different websites, client applications or other technical platforms to make content and publish the content for other individuals to access. For illustration, the individual can use the first website, the first client application or the first technical platform to capture the video content related to the product. The individual can then use the second website, the second client application or the second technical platform to publish the video content. In one or more examples, the individual can publish a link to the content related to the product created using the first website, the first client application or the first technical platform in the second website, the second client application or the second technical platform, for the user of the second website, the second client application or the second technical platform to access the content related to the product. Therefore, existing systems, technologies and methods are inefficient in terms of the time and computing resources used to create, publish and access information (e.g., video content) about the product and the purchase of the product.

[0019] The systems, methods, techniques, instruction sequences, and computer program products described herein are intended to enable users of client applications to create video content related to products, and to enable other users of client applications to access the video content through a page dedicated to providing information about the product. The process of initiating a product purchase can also be performed via a page providing information about the product. In addition, the video content created by the user of the client application can be shared with other users of the client application via at least one of the messaging function or social networking function of the client application. In addition, the content related to the product can be customized for the user of the client application. For illustration, content related to the product with a higher level of interest to the user of the client application may be more easily accessed by the user than content with a lower level of interest to the user.

[0020] In one or more implementations, a user of a client application can use the client application to capture video content related to a product and submit the video content to a server system. In one or more illustrative examples, the video content can include a review of the product. The server system can then store the video content in association with the product. When other users of the client application request information about the product, the server system can enable the video content to be accessed by the user of the client application in association with other information about the product.

[0021] In addition, the server system can store video content in association with the information from the user profile. In this way, the video content can be stored in association with the features of the user who created the video content. In various examples, the server system can also identify the features of the user of the client application that watches the video content, the features of the user of the client application that purchases the product, or a combination thereof. In one or more implementations, the server system can perform an analysis of the information about the video content and one or more users related to the video content to determine the ranking of the video content items related to the product relative to one or more users of the client application. The ranking can indicate the predicted interest level of each user to the video content items related to the product. The server system can use the ranking to determine the order of presenting the video content related to the product to the user who requests the information about the product.

[0022] Thus, the systems, methods, techniques, instruction sequences, and computing machine program products described herein provide various implementations to efficiently enable consumers who may be interested in purchasing a product to access product-related video content. For example, by providing a dedicated page that can access product-related video content and text content and includes a user interface element that can be selected to purchase the product, consumers can avoid accessing content from different sources (e.g., different websites or different mobile applications) in order to obtain information about the product and purchase the product. In addition, by providing a single platform for creating and publishing product-related video content, the implementations described herein can achieve efficient production and access of product-related video content relative to existing systems that utilize multiple platforms, client applications, or websites to create and publish video content for products.

[0023] As referred to herein, the phrases "augmented reality experience," "augmented reality content item," and "augmented reality content generator" include or refer to various image processing operations corresponding to image modifications, filtering, LENSES, media overlays, transformations, etc. as further described herein.

[0024] Figure 1 1 is a graphical representation of an architecture 100 for exchanging data (e.g., messages and related content) over a network. The architecture 100 may include a plurality of client devices 102. The client devices 102 may individually include, but are not limited to, mobile phones, desktop computers, laptop computing devices, portable digital assistants (PDAs), smart phones, tablet computing devices, ultrabooks, netbooks, multiprocessor systems, microprocessor-based or programmable consumer electronic systems, game consoles, set-top boxes, in-vehicle computers, wearable devices, one or more combinations thereof, or any other communication device that a user may use to access one or more components included in the architecture 100.

[0025] Each client device 102 can host multiple applications including client applications 104 and one or more third-party applications 106. Users can use client applications 104 to create content such as video, images (e.g., photos), audio, and media overlays. In one or more illustrative examples, client applications 104 may include social networking functions that enable users to create and exchange content. In various examples, client applications 104 may include messaging functions that can be used to send messages between instances of client applications 104 executed by various client devices 102. Messages created using client applications 104 may include video, one or more images, audio, media overlays, text, content made using one or more creation tools, annotations, etc. In one or more implementations, client applications 104 may be used to view and generate interactive messages, view the locations of other users of client applications 104 on a map, chat with other users of client applications 104, etc.

[0026] One or more users may be a person, machine, or other device that interacts with a client device (e.g., client device 102). In an example implementation, a user may not be part of architecture 100, but may interact with one or more components of architecture 100 via client device 102 or other device. In various examples, a user may provide input (e.g., touch screen input or alphanumeric input) to client device 102, and the input may be transmitted to other entities in architecture 100. In this case, other entities in architecture 100 may transmit information to client device 102 in response to the user input for presentation to the user. In this manner, a user may interact with various entities in architecture 100 using client device 102.

[0027] Each instance of the client application 104 is capable of communicating and exchanging data with at least one of another instance of the client application 104, one or more third-party applications 106, or a server system 108. The data exchanged between instances of the client application 104, between third-party applications 106, and between instances of the client application 104 and the server system 108 include functions (e.g., commands to invoke functions) and payload data (e.g., text, audio, image, video, or other multimedia data). The data exchanged between instances of the client application 104, between third-party applications 106, and between at least one instance of the client application 104 and at least one third-party application 106 can be exchanged directly from instances of applications executed by the client device 102 and instances of applications executed by other client devices 102. In addition, the data exchanged between the client applications 104, between third-party applications 106, and between at least one client application 104 and at least one third-party application 106 can be transmitted indirectly (e.g., via one or more intermediate servers) from instances of applications executed by client devices 102 to another instance of applications executed by other client devices 102. In one or more illustrative examples, one or more intermediary servers used in indirect communications between applications may be included in server system 108 .

[0028] The third-party application 106 can be independent of the client application 104 and different from the client application 104. The third-party application 106 can be downloaded and installed by the client device 102 independently of the client application 104. In various implementations, the third-party application 106 is downloaded and installed by the client device 102 before or after the client application 104 is downloaded and installed. The third-party application 106 is an application provided by an entity or organization different from the entity or organization that provides the client application 104. The third-party application 106 can be accessed by the client device 102 using different login credentials than the client application 104. That is, the third-party application 106 can maintain a first user account, and the client application 104 can maintain a second user account. In one or more implementations, the third-party application 106 can be accessed by the client device 102 to perform various activities and interactions, such as listening to music, watching videos, tracking sports, viewing graphic elements (e.g., stickers), communicating with other users, etc. As examples, third-party applications 106 may include social networking applications, dating applications, ride or car sharing applications, shopping applications, trading applications, gaming applications, imaging applications, music applications, video browsing applications, sports tracking applications, health monitoring applications, graphic element or sticker browsing applications, or any other suitable application.

[0029] The server system 108 provides server-side functionality to the client application 104 via one or more networks 110. According to some example implementations, the server system 108 may be a cloud computing environment. For example, in one illustrative example, the server system 108 and one or more servers associated with the server system 108 may be associated with a cloud-based application. In one or more implementations, the client device 102 and the server system 108 may be coupled via one or more networks 110.

[0030] The server system 108 supports various services and operations provided to the client applications 104. Such operations include: sending data to the client applications 104; receiving data from the client applications 104; and processing data generated by the client applications 104. The data may include message content, media content, client device information, geo-location information, media annotations and overlays, message content persistence conditions, social network information, and live event information as examples. The data exchange within the architecture 100 is invoked and controlled by functions available via the user interface (UI) of the client applications 104.

[0031] Although certain functions of the architecture 100 are described herein as being performed by the client application 104 or by the server system 108, it is a design choice to locate certain functions within the client application 104 or within the server system 108. For example, it may be technically preferable to initially deploy certain techniques and functions within the server system 108 but later migrate the techniques and functions to the client application 104 where the client device 102 has sufficient processing power.

[0032] The server system 108 includes an application programming interface (API) server 112 that is coupled to and provides a programming interface to an application server 114. The application server 114 is communicatively coupled to a database server 116 that facilitates access to one or more databases 118. The one or more databases 118 may store data associated with information processed by the application server 114. The one or more databases 118 may be storage devices that store information such as unprocessed media content, original media content from a user (e.g., high-quality media content), processed media content (e.g., media content formatted to be shared with and viewed on a client device 102), contextual data associated with media content items, contextual data associated with a user device (e.g., a computing or client device 102), media overlays, media overlay smart components or smart elements, user data, user device information, media content (e.g., videos and images), media content data (e.g., data associated with videos and images), computing device context data, serialization data, session data items, user device location data, mapping information, interaction message usage data, interaction message metrics data, etc. The one or more databases 118 may also store information associated with third-party servers, client devices 102, client applications 104, users, third-party applications 106, etc.

[0033] The API server 112 receives and sends data (e.g., commands and message payloads) between the client device 102 and the application server 114. Specifically, the application program interface (API) server 112 provides a set of interfaces (e.g., routines and protocols) that can be called or queried by the client application 104 to invoke functions of the application server 114. The application program interface (API) server 112 exposes various functions supported by the application server 114, including account registration, login functionality, sending messages from one instance of the client application 104 to another instance of the client application 104 via the application server 114, sending media files (e.g., images, audio, video) from the client application 104 to the application server 114 and possible access for another client application 104, setting up a collection of media content (e.g., a gallery, story, message collection, or media collection), retrieving a list of friends of the user of the client device 102, retrieving such a collection, retrieving messages and content, adding and removing friends from a social graph, locating friends within a social graph, and opening application events (e.g., related to the client application 104).

[0034] The server system 108 may also include a web server 120. The web server 120 is coupled to the application server 114 and provides a web-based interface to the application server 114. To this end, the web server 120 handles incoming network requests via the Hypertext Transfer Protocol (HTTP) and several other related protocols.

[0035] The application server 114 hosts multiple applications and subsystems, including a messaging application system 122, a media content processing system 124, a social networking system 126, a visual effect option system 128, and a product list system 130. The messaging application system 122 implements a variety of message processing technologies and functions, particularly related to the aggregation and other processing of content (e.g., text and multimedia content) included in messages received from multiple instances of the client application 104. For example, the messaging application system 122 can use email (email), instant messaging (IM), short message service (SMS), text, fax, or voice (e.g., voice over IP (VoIP)) messages to deliver messages via a wired network (e.g., the Internet), a plain old telephone service (POTS), or a wireless network (e.g., mobile, cellular, WIFI, long term evolution (LTE) or Bluetooth). The messaging application system 122 can aggregate text and media content from multiple sources into content collections. These collections are then made available to the client application 104 by the messaging application system 122. Given the hardware requirements for additional processor and memory intensive processing of the data, such processing may also be performed on the server side by the messaging application system 122 .

[0036] The media content processing system 124 is dedicated to performing various media content processing operations, typically on images, audio, or video received within the payload of a message or other content item at the messaging application system 122. The media content processing system 124 can access one or more data storage devices (e.g., database 118) to retrieve stored data for use in processing media content and store the results of the processed media content.

[0037] The social networking system 126 supports various social networking functions and services and makes these functions and services available to the messaging application system 122. To do this, the social networking system 126 maintains and accesses an entity graph within the database 118. Examples of functions and services supported by the social networking system 126 include identifying other users with whom a particular user of the client application 104 has a relationship or is "following" it, and also include identifying interests and other entities of a particular user. The social networking system 126 can access location information associated with each of the user's friends or other social network connections to determine where they live or are currently geographically located. In addition, the social networking system 126 can maintain a location profile for each of the user's friends, which indicates the geographical location where the user's friend lives.

[0038] The product content management system 128 can obtain content related to products for sale via the client application 104. The content can include text content, image content, video content, audio content, augmented reality content, or a combination thereof generated using the client application 104. The product content management system 128 can store the information obtained by the product content management system 128 as product data 130 in the database 118. The product data 130 can include system product content 132 obtained by the product content management system 128 from one or more sources (e.g., a manufacturer of a product, a retailer of a product, or a wholesaler of a product). The product data 130 can also include user-generated product content 134 generated by an individual user of the client application 104 for one or more products for purchase via the client application 104.

[0039] The system product content 132 may include text content, audio content, image content, video content, or one or more combinations thereof. The system product content 132 may include pricing information for products for purchase via the client application 104. The system product content 132 may also include descriptions of products for purchase via the client application 104. In addition, the system product content 132 may include reviews of products for purchase via the client application 104. In addition, the system product content 132 may include image content that includes pictures of one or more products for purchase via the client application 104. In various examples, the system product content 132 may include video content corresponding to the products for purchase via the client application 104. In one or more implementations, at least one of the image content or the video content may include an advertisement related to the product for purchase using the client application 104. The system product content 132 may also include at least one of a video or an image indicating the use of the product for purchase via the client application 104.

[0040] The system product content 132 obtained by the product content management system 128 can be obtained by the product content management system 128 from one or more websites. In various examples, the product content management system 128 can implement one or more web crawlers to obtain information about products offered for sale via the client application 104 and store the information as the system product content 132. In other examples, at least one of a manufacturer of a product, a retailer of the product, or a wholesaler of the corresponding product offered for sale via the client application 104 can directly send information related to the corresponding product to the server system 108. The product content management system 128 can then store the information obtained directly by the server system 108 from at least one of the manufacturer, retailer, or wholesaler in the one or more databases 118.

[0041] The user-generated product content 134 may include text content, image content, video content, audio content, augmented reality content, media overlays, or one or more combinations thereof generated using the client application 104. In various examples, the user-generated product content 134 may include an image captured using the client application 104 that includes a product (e.g., a product offered for sale via the client application 104). Further, the user-generated product content 134 may include an image captured by the client application 104 that includes a product, wherein the image has one or more media overlays added to the image using a tool of the client application 104. Further, the user-generated product content 134 may include a video captured using the client application 104, wherein the video includes a product, e.g., a product offered for purchase via the client application 104. In one or more illustrative examples, the user-generated product content 134 may include a video review 136 of a product that is captured using the client application 104 and is for a product offered for purchase via the client application 104.

[0042] The product content management system 128 can make information about products available to users of the client application 104. For example, a user of the client application 104 can request data about a product from the server system 108, and the product content management system 128 can provide the information to the client device 102 of the user making the request. In various examples, based on receiving a request for information about a product, the product content management system 128 can generate user interface data including information about the product associated with the request. The product content management system 128 can then send the user interface data to the client device 102 of the user making the request for information about the product, and the client application 104 can display one or more pages including the product information. In one or more illustrative examples, one or more pages including information about a product can be dedicated to providing data about the product. In these cases, the one or more pages dedicated to providing information about the product can have very little information about other products available for purchase via the client application 104.

[0043] In addition to using the client application 104 to generate content that can be stored as user-generated product content 134, the user of the client application 104 can use at least one of the messaging function or the social networking function of the client application 104 to share product-related content. For example, the user of the client application 104 can capture a video review 136 related to the product and send the video review 136 to the server system 108. The product content management system 128 can store the video review 136 as user-generated product content 134. In addition, the messaging application system 122 can generate one or more messages including the video review 136 and send the one or more messages to one or more recipients of the one or more messages. In addition, the social networking system 126 can make the video review 136 accessible to other users of the client application 104 associated with the social networking account of the user of the client application 104 who created the video review 136. For illustration, the contacts (e.g., friends, followers, social network connections, etc.) of the creator of the video review 136 can access the video review 136 via at least one social network page of the creator of the video review 136.

[0044] In one or more implementations, based on input related to a product available for purchase using the client application 104 provided for one or more user interface elements displayed by the client application 104, at least one of the messaging application system 122, the social networking system 126, or the product content management system 128 can be called. For example, for a product available for purchase via the client application 104, the client application 104 can display a user interface including information about the product (e.g., the name of the product, the description of the product, the rating of the product, the price of the product, or one or more combinations thereof). The user interface can also include a first user interface element that can be selected for submitting video content related to the product. The selection of the first user interface element can enable the user of the client application 104 to capture video content related to the product, such as a video review 136. Based on the selection of the first user interface element and the subsequent capture of the video content, an identifier of the product can be associated with the video content. Other identifiers can also be associated with the video content, thereby indicating that the video content can be accessed via one or more pages dedicated to providing information about the product displayed by the client application 104.

[0045] In various examples, after capturing video content using client application 104, multiple user interface elements can be displayed relative to the video content. At least a portion of the user interface elements can be selected to invoke one or more tools of client application 104. The one or more tools can be implemented by a user of client application 104 to modify the video content. For example, one or more tools can be used to add augmented reality content such as one or more overlays to the video content. In other examples, one or more tools can be used to modify features of the video content such as the playback rate of the video content or the audio features of the video content.

[0046] The plurality of user interface elements displayed relative to the video content after capturing the video content may also include a first additional user interface element and a second additional user interface element. The first additional user interface element can be selected to call the messaging function of the client application 104 to generate a message including the video content and indicating one or more recipients of the message. The message data including the video content can be sent to the server system 108, and the messaging application system 122 can send the corresponding message to each of the one or more recipients indicated in the message data. In addition, the selection of the second additional user interface element can call the social network function of the client application 104, which enables the client application 104 to send the video content to the server system 108. The social network system 126 can then notify one or more social network connections of the creator of the video content: the video content can be viewed using the social network function of the client application 104.

[0047] In various examples, the user interface including information about the product displayed by the client application 104 may also include one or more user interface elements that can be selected to share the information about the product by sending a message to one or more recipients indicating one or more user-attached user interface elements, the one or more user-attached user interface elements being selectable to access one or more pages including information about the product. In addition, the user interface including information about the product displayed by the client application 104 may include one or more user interface elements that can be selected to make the information about the product accessible to one or more contacts of the user of the client application 104.

[0048] The product content management system 128 may also determine an order in which to present video content related to the product to individual users of the client application 104. In one or more implementations, the server system 108 may receive a request from an instance of the client application 104 executed by the client device 102 to obtain information about the product. In response to the request, the product content management system 128 may retrieve a portion of the system product content 132 that corresponds to the product and a portion of the user-generated product content 134 that corresponds to the product. The product content management system 128 may determine the interest level of the content items included in the user-generated product content 134 relative to the user of the client application 104 that submitted the request. In various examples, the product content management system 128 may analyze the characteristics of the user of the client application 104 that submitted the request in relation to the characteristics of other users of the client application 104 that created at least a portion of the content items included in the user-generated product content 134 to determine the user's interest level in the respective content items associated with the product. In addition, the product content management system 128 can analyze the relationship between the characteristics of the user of the client application 104 that submitted the request and the characteristics of other users of the client application 104 that consume (e.g., watch, listen to) the various content items associated with the product to determine the user's interest level in the various content items. Based on the interest level of the user of the client application 104 requesting information about the product in the content items associated with the product, the product content management system 128 can rank the various content items for the user. Content items with relatively high rankings, such as video reviews 136, can be presented to the user before content items with relatively low rankings. In various examples, content items with relatively high rankings can be presented closer to the top of the user interface page including information about the product than content items with relatively low rankings that can be presented in lower positions on the page.

[0049] Figure 21 is a block diagram showing further details about the server system 108 according to some examples. Specifically, the server system 108 is shown as including the client application 104 and the application server 114. The server system 108 contains several subsystems, which are supported on the client side by the client application 104 and on the server side by the application server 114. These subsystems include, for example, a transient timer system 202, a collection management system 204, an enhancement system 206, a map system 208, a game system 210, and a product content management system 128.

[0050] The transient timer system 202 is responsible for enforcing temporary or time-limited access to content by the client applications 104 and the messaging application system 122. The transient timer system 202 includes several timers that selectively enable access (e.g., for presentation and display) of messages and associated content via the client applications 104 based on duration and display parameters associated with a message or a collection of messages (e.g., a story). Additional details regarding the operation of the transient timer system 202 are provided below.

[0051] The collection management system 204 is responsible for managing groups or collections 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 galleries" 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 made available as a "story" for the duration of the concert. The collection management system 204 can also be responsible for publishing an icon to the user interface of the client application 104 that provides notification that a particular collection exists.

[0052] In addition, the collection management system 204 includes a curation interface 212 that enables a collection manager to manage and curate the content of a particular collection. For example, the curation interface 212 enables an event organizer to curate a collection of content related to a particular event (e.g., to remove inappropriate content or redundant messages). In addition, the collection management system 204 employs machine vision (or image recognition technology) and content rules to automatically curate content collections. In some examples, compensation may be paid to users for including user-generated content in a collection. In such cases, the collection management system 204 operates to automatically pay such users for the use of their content.

[0053] The enhancement system 206 provides various functions that enable a user to enhance (e.g., annotate or otherwise modify or edit) media content, such as messages, associated with content generated via the client application 104. For example, the enhancement system 206 provides functions related to the generation and publication of media overlays for content processed by the server system 108. The enhancement system 206 is operable to supply media overlays or enhancements (e.g., image filters) to the client application 104 based on the geographic location of the client device 102. In another example, the enhancement system 206 is operable to supply media overlays to the client application 104 based on other information (e.g., social network information of the user of the client device 102). The media overlay can include audio and visual content and visual effects. Examples of audio and visual content include pictures, text, logos, animations, and sound effects. Examples of visual effects include color overlays. Audio and visual content or visual effects can be applied to media content items (e.g., photos) at the client device 102. For example, a media overlay can include text or images that can be superimposed on top of a photo taken by the client device 102. In another example, the media overlay includes a location identification overlay (e.g., Venice Beach), the name of a live event, or a business name overlay (e.g., Beach Cafe). In another example, the enhancement system 206 uses the geographic location of the client device 102 to identify a media overlay that includes the name of a business at the geographic location of the client device 102. The media overlay may include other tags associated with the business. The media overlay may be stored in the database 118 and accessed by the database server 116.

[0054] In some examples, the enhancement system 206 provides a user-based publishing platform that enables a user to select a geographic location on a map and upload content associated with the selected geographic location. The user can also specify situations in which a particular media overlay should be provided to other users. The enhancement system 206 generates a media overlay including the uploaded content and associates the uploaded content with the selected geographic location.

[0055] In other examples, the enhancement system 206 provides a merchant-based publishing platform that enables merchants to select specific media overlays associated with geographic locations via a bidding process. For example, the enhancement system 206 associates the highest bidding merchant's media overlay with the corresponding geographic location for a predefined amount of time.

[0056] The mapping system 208 provides various geo-location functions and supports the presentation of map-based media content and messages by the client application 104. For example, the mapping system 208 enables the display of (e.g., stored in Figure 3A user icon or avatar (in the profile data 308 of the user) is displayed to indicate the current or past locations of the user's "friends" and media content (e.g., a collection of messages including photos and videos) generated by these friends in the context of a map. For example, on the map interface of the client application 104, messages posted by the user to the server system 108 from a specific geographic location can be displayed to the "friends" of the particular user within the context of that specific location on the map. In addition, the user can also share his or her location and status information with other users of the server system 108 via the client application 104 (e.g., using an appropriate status avatar), which is similarly displayed to the selected user within the context of the map interface of the client application 104.

[0057] The gaming system 210 provides various gaming functions within the context of the client application 104. The client application 104 provides a gaming interface that provides a list of available games that can be launched by a user within the context of the client application 104 and played with other users of the server system 108. The server system 108 also enables a particular user to invite other users to participate in playing a particular game by issuing an invitation to such other users from the client application 104. The client application 104 also supports both voice messaging and text messaging (e.g., chat) within the context of gaming, provides leaderboards for gaming, and also supports providing in-game rewards (e.g., coins and items).

[0058] Product content management system 128 can acquire, store, and manage content generated using client application 104 that is related to products available for purchase via client application 104. Product-related content can be included in a collection of content related to one or more users of client application 104 that is managed by collection management system 204. In addition, product-related content can include one or more enhancements generated in conjunction with enhancement system 206.

[0059] Figure 3 is a schematic diagram illustrating a data structure 300 that may be stored in a database 118 of a server system 108 according to one or more example implementations. Although the contents of the database 118 are illustrated as including a plurality of tables, it should be understood that data may be stored in other types of data structures (e.g., as an object-oriented database).

[0060] The database 118 includes message data stored in a message table 302. For any particular message, the message data includes at least message sender data, message recipient (or receiver) data, and a payload.

[0061] The entity table 304 stores entity data and is linked (e.g., referenced) to the entity graph 306 and profile data 308. Entities whose records are maintained within the entity table 304 may include individuals, corporate entities, organizations, objects, places, events, etc. Regardless of the entity type, any entity about which the server system 108 stores data may be an identified entity. Each entity is provided with a unique identifier as well as an entity type identifier (not shown).

[0062] The entity graph 306 stores information about the relationships and associations between entities. As examples only, such relationships may be interest-based or activity-based social relationships, professional relationships (e.g., working in a common company or organization).

[0063] Profile data 308 stores multiple types of profile data about a particular entity. Based on the privacy settings specified by the particular entity, profile data 308 can be selectively used and presented to other users of the messaging system 100. In the case where the entity is a person, profile data 308 includes, for example, a user name, phone number, address, settings (e.g., notification and privacy settings), and an avatar representation (or a collection of such avatar representations) selected by the user. A particular user can then selectively include one or more of these avatar representations within message content or other data transmitted via the architecture 100, as well as on a map interface displayed to other users by the client application 104. The collection of avatar representations can include a "status avatar" that presents a graphical representation of a status or activity that a user can choose to transmit at a particular time.

[0064] Where the entity is a group, the profile data 308 for the group may similarly include one or more avatar representations associated with the group, in addition to the group name, members, and various settings related to the group (eg, notifications).

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

[0066] In one example, a filter is an overlay that is displayed as an overlay on an image or video during presentation to a recipient user. Filters can be of various types, including filters selected by a user from a set of filters presented to a sender user by the client application 104 when the sender user is composing a message. Other types of filters include geolocation filters (also known as geofilters), which can be presented to a sending user based on geographic location. For example, a geolocation filter specific to a nearby or special location can be presented by the client application 104 within a user interface based on geographic location information determined by a global positioning system (GPS) unit of the client device 102.

[0067] Another type of filter is a data filter, which can be selectively presented to the sending user by the client application 104 based on other input or information collected during the message creation process by the client device 102. Examples of data filters include the current temperature at a particular location, the current speed the sending user is traveling, the battery life of the client device 102, or the current time.

[0068] Other augmented data that may be stored in the image table 316 include augmented reality content items (eg, corresponding to application lenses or augmented reality experiences). Augmented reality content items may be live special effects and sounds that may be added to an image or video.

[0069] As described above, augmented data includes augmented reality content items, overlays, image transformations, AR images, and similar items involving modifications that can be applied to image data (e.g., videos or images). This includes live modifications, which modify the image when it is captured using the device sensor (e.g., one or more cameras) of the client device 102 and then display the image on the screen of the client device 102 with the modification. This also includes modifications to stored content (e.g., video clips in a gallery that can be modified). For example, in a client device 102 that can access multiple augmented reality content items, a user can use a single video clip with multiple augmented reality content items to see how different augmented reality content items will modify the stored clips. For example, by selecting different augmented reality content items for the content, multiple augmented reality content items that apply different pseudo-random motion models can be applied to the same content. Similarly, live video capture can be used with the modifications shown to show how the video image currently captured by the sensor of the client device 102 will modify the captured data. Such data can be displayed only on the screen without being stored in the memory, or the content captured by the device sensor can be recorded and stored in the memory with or without modification (or both). In some systems, the preview function can show how different augmented reality content items will look in different windows of the display at the same time. For example, this can enable viewing multiple windows with different pseudo-random animations on the display at the same time.

[0070] Thus, data and various systems using augmented reality content items or other such transformation systems that modify content using the data may involve detection of objects (e.g., faces, hands, bodies, cats, dogs, surfaces, objects, etc.) in video frames, tracking these objects as they leave, enter, and move around the field of view, and modifying or transforming them as they are tracked. In various examples, different methods for implementing such transformations may be used. Some examples may involve generating a three-dimensional mesh model of one or more objects, and using transformations and animated textures of the models within a video to implement the transformations. In other examples, tracking of points on an object may be used to place an image or texture (which may be two-dimensional or three-dimensional) at the tracked location. In further examples, neural network analysis of video frames may be used to place an image, model, or texture in content (e.g., an image or video frame). Thus, augmented reality content items refer to both images, models, and textures used to create transformations in content, as well as additional modeling and analysis information required to implement such transformations through object detection, tracking, and placement.

[0071] Live video processing can be performed using any type of video data (e.g., video streams, video files, etc.) stored in the memory of any type of computerized system. For example, a user can load a video file and save it in the memory of the device, or a video stream can be generated using the device's sensors. In addition, any object, such as a person's face and parts of a person's body, an animal, or a non-living thing such as a chair, a car, or other objects, can be processed using computer animation models.

[0072] In some examples, when a specific modification is selected together with the content to be transformed, the element to be transformed is identified by the computing device, and then if the element to be transformed is present in the frame of the video, it is detected and tracked. The element of the object is modified according to the modification request, thereby transforming the frame of the video stream. For different types of transformations, the transformation of the frame of the video stream can be performed by different methods. For example, for the transformation of the frame that mainly refers to the form of the element of the object, the feature points of each element of the object are calculated (for example, using the active shape model (ASM) or other known methods). Then, a grid based on the feature points is generated for each of at least one element of the object. The grid is used to track the subsequent stages of the elements of the object in the video stream. During the tracking process, the grid mentioned for each element is aligned with the position of each element. Then, additional points are generated on the grid. A first group of first points is generated for each element based on the modification request, and a group of second points is generated for each element based on a group of first points and the modification request. Then, the frame of the video stream can be transformed by modifying the elements of the object based on a group of first points and a group of second points and a grid. In such a method, the background of the modified object can also be changed or distorted by tracking and modifying the background.

[0073] In some examples, the transformation of some areas of an object using the elements of the object can be performed by calculating the feature points of each element of the object and generating a grid based on the calculated feature points. Points are generated on the grid, and then various areas are generated based on these points. Then, the elements of the object are tracked by aligning the area of ​​each element with the position of each of at least one element, and the properties of the area can be modified based on the modification request, thereby transforming the frame of the video stream. Depending on the specific modification request, the properties of the mentioned area can be transformed in different ways. Such modifications may involve: changing the color of the area; removing at least some partial areas from the frame of the video stream; including one or more new objects in the area based on the modification request; and modifying or distorting the elements of the area or object. In various implementations, any combination of such modifications or other similar modifications may be used. For certain models to be animated, some feature points may be selected as control points for the entire state space to be used to determine options for model animation.

[0074] In some examples of computer animation models that use face detection to transform image data, faces are detected on an image using a specific face detection algorithm (e.g., Viola-Jones). An active shape model (ASM) algorithm is then applied to the face region of the image to detect facial feature reference points.

[0075] Other methods and algorithms suitable for face detection may be used. For example, in some implementations, features are located using landmarks that represent distinguishable points that are present in most of the images considered. For example, for facial landmarks, the location of the left eye pupil may be used. If the initial landmarks are not recognizable (e.g., if the person has an eye patch), secondary landmarks may be used. Such a landmark identification process may be used for any such object. In some examples, a set of landmarks forms a shape. The shape may be represented as a vector using the coordinates of the points in the shape. One shape is aligned to another shape using a similarity transformation (allowing translation, scaling, and rotation) that minimizes the average Euclidean distance between the shape points. The average shape is the mean of the aligned training shapes.

[0076] In various examples, a landmark search begins with an average shape that aligns with the location and size of a face determined by a global face detector. Such a search then repeats the steps of suggesting tentative shapes by adjusting the positioning of shape points through template matching of the image texture around each point, and then conforming the tentative shapes to a global shape model until convergence occurs. In one or more systems, template matching alone is unreliable, and the shape model pools the results of weak template matches to form a stronger overall classifier. The entire search is repeated at each level of the image pyramid, from coarse to fine resolution.

[0077] The transformation system can capture an image or video stream on a client device (e.g., client device 102) and perform complex image manipulations locally on the client device 102 while maintaining an appropriate user experience, computational time, and power consumption. Complex image manipulations can include size and shape changes, emotion transformations (e.g., changing a face from a frown to a smile), state transitions (e.g., aging an object, reducing apparent age, changing gender), style transfer, application of graphical elements, and any other suitable image or video manipulations enabled by a convolutional neural network that has been configured to execute efficiently on the client device 102.

[0078] The computer animation model for transforming image data can be used by a system in which a user can capture an image or video stream of the user (e.g., a selfie) using a client device 102 having a neural network operating as part of a client application 104 operating on the client device 102. The transformation system running within the client application 104 determines the presence of a face in the image or video stream and provides a modification icon associated with the computer animation model to transform the image data or the computer animation model can be presented in association with the interface described herein. The modification icon includes a change that can be the basis for modifying the face of the user within the image or video stream as part of the modification operation. Once the modification icon is selected, the transformation system initiates a process of transforming the image of the user to reflect the selected modification icon (e.g., generating a smiley face on the user). Once the image or video stream is captured and the specified modification is selected, the modified image or video stream can be presented in a graphical user interface displayed on the client device 102. The transformation system can implement a complex convolutional neural network on a portion of the image or video stream to generate and apply the selected modification. That is, once the modification icon is selected, the user can capture the image or video stream and present the modification result in real time or near real time. Furthermore, while the video stream is being captured, the modifications may be persistent and the selected modification icon remains toggled. A machine learning neural network may be used to implement such modifications.

[0079] The graphical user interface presenting the modifications performed by the transformation system can provide additional interactive options for the user. Such options can be based on the interface used to initiate the selection of a particular computer animation model and content capture (e.g., initiated from a content creator user interface). In various implementations, the modifications can be persistent after the initial selection of the modification icon. The user can turn the modification on or off by tapping or otherwise selecting the face modified by the transformation system, and store it for later viewing or browsing to other areas of the imaging application. In the case of multiple faces modified by the transformation system, the user can globally turn the modification on or off by tapping or selecting a single face modified and displayed within the graphical user interface. In some implementations, each face in a group of multiple faces can be modified individually, or such modifications can be individually switched by clicking or selecting each face or a series of each face displayed within the graphical user interface.

[0080] The story table 312 stores data about a collection of messages and associated images, video or audio data that are compiled into a collection (e.g., a story or library). The creation of a particular collection can be initiated by a particular user (e.g., each user for whom a record is maintained in the entity table 304). A user can create a "personal story" in the form of a collection of content that has been created and sent / broadcasted by that user. To this end, the user interface of the client application 104 may include an icon that the user can select to enable the sending user to add specific content to his or her personal story.

[0081] A collection may 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" may 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 particular time may be presented with the option to contribute content to a particular live story, for example, via a user interface of the client application 104. Live stories may be identified to a user by the client application 104 based on his or her location. The end result is a "live story" told from a community perspective.

[0082] Another type of content collection is called a "location story," which enables users whose client devices 102 are located within a particular geographic location (e.g., on a college or university campus) to contribute to a particular collection. In some examples, contributions to location stories may require secondary authentication to verify that the end user belongs to a particular organization or other entity (e.g., is a student on a university campus).

[0083] As mentioned above, the video table 314 stores video data, which in one example is associated with a message whose record is maintained within the message table 302. Similarly, the image table 316 stores image data, which is associated with a message whose message data is stored in the entity table 304. The entity table 304 can associate various enhancements from the enhancement table 310 with the various images and videos stored in the image table 316 and the video table 314.

[0084] The database 118 may also store a product data table 318. The product data table 318 may include information about Figure 1The product data 130 described. In one or more implementations, the product data table 318 may include one or more columns including one or more identifiers for a single product. The one or more identifiers may include an alphanumeric identifier, a barcode, a quick response (QR) code, or one or more combinations thereof associated with the product. In various examples, the one or more identifiers associated with a single product may be provided by at least one of a manufacturer of the product, a retailer of the product, or a wholesaler of the product. In one or more other implementations, the product data table 318 may include one or more columns including corresponding identifiers of users of the client application 104 who created content associated with the product for purchase via the client application 104. In this way, the features of the user who created the content associated with the product may be accessible and used to determine the interest level of other users requesting information about the product.

[0085] Figure 4 is a schematic diagram illustrating an example framework of content 400 according to some implementations. Content 400 may be generated by a client application 104. In various examples, content 400 may be generated by a first instance of client application 104 and transmitted to at least one of a second instance of client application 104 or server system 108. In the event that content 400 includes messages, content 400 may be used to populate message table 302 stored in database 118 and accessible by application server 114. In one or more implementations, content 400 may be stored in memory as "in transit" or "in flight" data for at least one of client device 102 or application server 114. Content 400 is illustrated as including at least a portion of the following components:

[0086] Content identifier 402 : a unique identifier that identifies the content 400 .

[0087] Content text payload 404 : text to be generated by a user via the user interface of the client device 102 and included in the content 400 .

[0088] Content image payload 406: Image data captured by a camera component of the client device 102 or retrieved from a memory component of the client device 102 and included in the content 400. The image data of the content 400 sent or received may be stored in the image table 316. Content video payload 408: Video data captured by a camera component or retrieved from a memory component of the client device 102 and included in the content 400. The video data of the content 400 sent or received may be stored in the video table 314.

[0089] Content audio payload 410 : audio data captured by a microphone or retrieved from a memory component of the client device 102 and included in the content 400 .

[0090] Content enhancement data 412: represents enhancement data (e.g., filters, stickers, or other annotations or enhancements) to be applied to the content image payload 406, content video payload 408, or content audio payload 410 of the content 400. The enhancement data of the transmitted or received content 400 may be stored in the enhancement table 310.

[0091] Content duration parameter 414 : A parameter value in seconds that indicates the amount of time that one or more portions of content 400 (e.g., content image payload 406 , content video payload 408 , content audio payload 410 ) will be presented to or made accessible to a user via client application 104 .

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

[0093] Content story identifier 418: An identifier value that identifies one or more content collections (e.g., a "story" identified in story table 312) associated with a particular item in content image payload 406 of content 400. For example, an identifier value may be used to associate multiple images within content image payload 406 with each of multiple content collections.

[0094] Content tags 420: Each content 400 may be tagged with a plurality of tags, each of which indicates the subject matter of the content included in the content payload. For example, where a particular image included in the content image payload 406 depicts an animal (e.g., a lion), a tag value may be included in the content tags 420 indicating the relevant animal. The tag values ​​may be manually generated based on user input or may be automatically generated using, for example, image recognition.

[0095] • Content sender identifier 422: An identifier (eg, a messaging system identifier, an email address, or a device identifier) ​​that indicates the user of the client device 102 on which the content 400 was generated and from which the content 400 was sent.

[0096] • Content recipient identifier 424: Indicates an identifier (eg, a messaging system identifier, an email address, or a device identifier) ​​of the user of the client device 102 to which the content 400 is addressed.

[0097] Product identifier 426: An identifier of a product associated with content 400 and that can be purchased via client application 104. In one or more illustrative examples, product identifier 426 may correspond to one or more alphanumeric characters or symbols. In various examples, product identifier 426 may be used to track the product within a system of a service provider that maintains and operates server system 108. Product identifier 426 may be assigned to the product by the service provider. In other examples, product identifier 426 may be provided by at least one of a manufacturer of the product, a retailer of the product, or a wholesaler of the product.

[0098] The data (e.g., values) of various components of content 400 may correspond to pointers to locations in the table in which the data is stored. For example, the image value in content image payload 406 may be a pointer to a location (or address) in image table 316. Similarly, the value in content video payload 408 may point to data stored in video table 314, the value stored in content enhancement 412 may point to data stored in enhancement table 310, the value stored in content story identifier 418 may point to data stored in story table 312, and the values ​​stored in content sender identifier 422 and content recipient identifier 424 may point to user records stored in entity table 304. In addition, the value of product identifier 426 may point to data stored in a data structure including product data table 318.

[0099] Figure 5 1 is a schematic representation of an architecture 500 that can obtain product-related content and provide product-related content to a user of a client application according to one or more example implementations. The architecture 500 can include a client device 102 operated by a user 502. The architecture 500 can also include a server system 108 and a product content management system 128. In addition, the server system 108 can store product data 130. For example, the server system 108 can store the product data 130 in a database 118. In addition, the server system 108 can store a user profile 504. In various examples, the server system 108 can store the user profile 504 in the database 118. The user profile 504 can include information about the user of the client application 104.

[0100] The product data 130 may include data about a plurality of products for purchase using the client application 104. To illustrate, the product data 130 may include first product data 506 associated with a first product 508 through Nth product data 510 associated with an Nth product 512. The first product data 506 may indicate pricing information for the first product 508, one or more descriptions of the first product 508, one or more identifiers of the first product 508, one or more ratings of the first product 508, one or more reviews of the first product 508, a manufacturer of the first product 508, a seller of the first product 508, image content related to the first product 508, video content related to the first product 508, one or more reviews of the first product 508, one or more combinations thereof, and the like. In addition, the Nth product data 510 may indicate pricing information of the Nth product 512, one or more descriptions of the Nth product 512, one or more identifiers of the Nth product 512, one or more ratings of the Nth product 512, one or more reviews of the Nth product 512, the manufacturer of the Nth product 512, the seller of the Nth product 512, image content related to the Nth product 512, video content related to the Nth product 512, one or more reviews of the Nth product 512, one or more combinations thereof, and the like.

[0101] The product data 130 may also include a first product user profile 514 corresponding to the first product 508 through an Nth product user profile 516 corresponding to the Nth product 512. The first product user profile 514 may include information corresponding to a user profile of at least one of a user of the client application 104 that purchased the first product 508 or a user of the client application 104 that provided content related to the first product 508. In addition, the Nth product user profile 516 may include information corresponding to a user profile of at least one of a user of the client application 104 that purchased the Nth product 512 or a user of the client application 104 that provided content related to the Nth product 512. The first product user profile 514 may be stored in association with the first product data 506, and the Nth product user profile 516 may be stored in association with the Nth product data 510. For example, the first product user profile 514 may be stored so that information included in the first product user profile 514 can be accessed in connection with information about the first product 508. To illustrate, where product content management system 128 determines an interest level of a user of client application 104 in content related to a product (eg, video content), product content management system 128 may analyze information included in a user profile corresponding to the product.

[0102] In one or more implementations, the personal user profile included in the first product user profile 514 can be connected to the first product data 506, and the personal user profile included in the second product user profile can be connected to the Nth product data 510. The relationship between the personal user profile and the product data can be implemented using a database link. In addition, the relationship between the personal user profile and the product data can be implemented by storing identifiers of one or more products in one or more columns of a database table that stores information about users of the client application 104. The connection between the personal user profile and the product data can also be implemented by storing an identifier of the user of the client application in one or more columns of a database table that stores information about products for purchase via the client application 104.

[0103] The user profiles 504 may include profile information for individual users of the client application 104. For example, the user profiles 504 may include a first user profile 518 through an Nth user profile 520. Each of the user profiles 504 may include information related to one or more identifiers of a user of the client application 104 (e.g., name, account identifier, login name), demographic information of the user of the client application 104 (e.g., age, gender, occupation), location information of the user of the client application 104 (e.g., geographic positioning system (GPS) data, city of residence, state of residence, country of residence), contacts of the user of the client application 104 (e.g., friends, followers, followed users), a viewing history indicating content viewed by the user using the client application 104, a sharing history indicating content shared by the user using the client application 104, a purchase history indicating products purchased by the user using the client application 104, one or more combinations thereof, and the like.

[0104] The personal user profiles 504 may be associated with the profiles of the personal user's contacts. To illustrate, the first user profile 518 may be associated with the first user contact profile 522, and the Nth user profile 520 may be associated with the Nth user contact profile 524. The relationships between the various user profiles 504 may be indicated by the entity graph 306 associated with the personal users of the client application 104. In one or more examples, the connection between the personal user profile and the user profiles of the personal contacts may be implemented by storing identifiers of the user contacts in one or more columns of a database table storing information about the personal users of the client application 104. In various examples, the personal user profiles 504 may be connected with the user profiles of the personal user's contacts to provide additional data for the product content management system 128 to use in determining the interest level of the user of the client application 104 when viewing product-related content.

[0105] In one or more illustrative examples, user 502 may submit product data request 526 to server system 108 using client application 104. Product data request 526 may indicate a request to obtain information about a product (e.g., first product 508) for purchase using client application 104. In one or more examples, product data request 526 may be submitted to server system 108 in response to a selection of one or more user interface elements included in at least one user interface displayed by client application 104. In various examples, user 502 may select a user interface element included in a user interface displayed by client application 104 that indicates an identifier of first product 508, such as a name of first product 508. The user interface element indicating the identifier of first product 508 may be displayed in connection with an advertisement associated with first product 508. In other examples, the user interface element indicating the identifier of first product 508 may be displayed relative to an account of another user of client application 104. For example, another user of client application 104 may send a message to one or more recipients including first user 502, wherein the message includes a user interface element indicating the identifier of first product 508. In addition, other users of the client application 104 may create social network content, such as at least one of text content, image content, or video content, that includes a user interface element indicating an identifier of the first product 508, which may be accessed by the first user 502 based on the first user 502 having a social network connection with the other users. In yet another example, the user interface element indicating the identifier of the first product 508 may be included in a result list in response to a search by the user 502 for products related to one or more search criteria (e.g., one or more keywords provided by the user 502 through the client application 104). In one or more implementations, the product data request 526 may include an identifier of the product about which the user 502 is requesting information.

[0106] After receiving the product data request 526, the server system 108 can send product information 528 to the client device 102. In response to the product data request 526, the product content management system 128 can determine at least one product corresponding to the product data request 526. The product content management system 128 can then obtain information from the product data 130 corresponding to the at least one product. Therefore, the product content management system 128 can send the product information 528 to the client device 102, and the product information 528 includes at least a portion of the product data 130 corresponding to the at least one product. In one or more illustrative examples, the product data request 526 can request information about the first product 508. The product content management system 128 can then obtain at least a portion of the first product data 506 and send at least a portion of the first product data 506 to the client device 102 as the product information 528. The client application 104 can display the product information 528 in one or more user interfaces.

[0107] In one or more implementations, the product content management system 128 may determine to provide video content to the client device 102 in response to a request for information about a product for purchase via the client application 104. In various examples, the product content management system 128 may analyze information related to the user of the client application 104 requesting information about the product and information related to the product to determine a level of interest in a video content item related to the product for which the user of the client application 104 is requesting information. The level of interest of the user of the client application 104 in the respective video content item may be based on a similarity metric between the user of the client application 104 requesting information about the product and the respective user of the client application 104 that generated the video content item. The similarity metric between the user of the client application 104 requesting information about the product and other users of the client application 104 that generated video content related to the product may be determined by analyzing a profile of the user of the client application 104 requesting information about the product relative to profiles of other users of the client application 104 that produced video content.

[0108] In various examples, the level of interest of the user of the client application 104 in viewing video content related to a product for purchase via the client application 104 can be based on a similarity metric between the user of the client application 104 that is requesting information about the product and users of the client application 104 that have previously viewed the video content. In one or more illustrative examples, the product content management system 128 can determine the similarity metric between the user of the client application 104 that is requesting information about the product and other users of the client application 104 that generate video content related to the product by analyzing the profile of the user of the client application 104 that is requesting information about the product relative to the profiles of other users of the client application 104 that generate video content related to the product. In one or more examples, the product content management system 128 can determine a user of the client application 104 that satisfies at least a threshold level of interest in the product, and analyze the profile of the user that satisfies at least the threshold level of interest in the product with respect to the profile of the user of the client application 104 that is requesting information about the product. The product content management system 128 may determine the interest level of a corresponding user of the client application 104 in a product or in viewing video content related to a product based on one of: purchases of the product by the user, purchases of the product by contacts of the user, the amount of time video content related to the product is viewed by the user, the amount of time video content related to other products having features of the same or similar categories of products is viewed by the user, or the amount of time video content related to other products having features of the same or similar categories of products is viewed by contacts of the user, message content of the user related to the product, or social network content of the user related to the product.

[0109] In one or more illustrative examples, product content management system 128 may determine to include video content related to first product 508 in product information 528 by analyzing a profile of user 502 relative to profiles of at least one of other users of client application 104 that created video content related to first product 508 or other users of client application 104 that viewed video content related to first product 508. To illustrate, first user profile 518 may correspond to a user profile of user 502, and Nth user profile 520 may correspond to other users of client application 104 that at least one of generated video content related to first product 508 or viewed video content related to first product 508. In these scenarios, product content management system 128 may perform an analysis of the relationship of first user profile 518 and Nth user profile 520 to determine a level of interest of user 502 in video content related to the other users of client application 104.

[0110] In various examples, product content management system 128 may determine a level of similarity between characteristics of user 502 included in first user profile 518 and characteristics of other users included in Nth user profile 520. For example, product content management system 128 may determine a first value for a characteristic of user 502 in first user profile 518, and analyze the first value in relation to second values ​​for characteristics of other users of client application 104 included in Nth user profile. In one or more implementations, product content management system 128 may determine a location of user 502 based on information included in first user profile 518, and analyze the location of user 502 in relation to the locations of other users of client application 104 indicated by Nth user profile 520. Product content management system 128 may determine a relatively high similarity metric with respect to user 502 and the other users based on the proximity of the location of user 502 with respect to the locations of the other users. To illustrate, the product content management system 128 may determine that the level of similarity between user 502 and the other users is high when user 502 and the other users are within a first threshold number of miles (e.g., 10 kilometers), and a relatively low similarity metric when user 502 and the other users are within a second threshold number of miles (e.g., 100 km) that is greater than the first threshold number of miles.

[0111] In other examples, the product content management system 128 may analyze a first amount of time that the first user 502 watches video content related to products included in the same category or a similar category as the first product 508 in relation to a second amount of time that other users watch video content related to products included in the same category or a similar category as the first product 508. In these cases, the product content management system 128 may determine a relatively high similarity metric between the user 502 and the other users if the first amount of time is within a first threshold amount of time (e.g., 30 minutes) of the second amount of time, and a relatively low amount of time if the first amount of time is within a second threshold amount of time (e.g., 3 hours) of the second amount of time, wherein the second threshold amount of time is greater than the first threshold amount of time. Other features that the product content management system 128 may analyze to determine a similarity metric between the user 502 and the other users may include at least one of age, gender, occupation, or product purchase history.

[0112] To determine the level of interest of user 502 in video content related to first product 508, product content management system 128 may also analyze the relationship of first user profile 518 to one or more of first product user profiles 514 corresponding to other users of client application 104 that viewed video content related to first product 508. In one or more examples, product content management system 128 may determine a portion of first product user profile 514 corresponding to a user of client application 104 that viewed video content items related to first product 508. Product content management system 128 may identify other users of client application 104 that have profiles that have at least a threshold amount of similarity to first user profile 518. Product content management system 128 may also determine video content items viewed by other users that have profiles that have a threshold amount of similarity to first user profile 518. Product content management system 128 may then determine that user 502 has at least a threshold level of interest in at least a portion of the video content items.

[0113] In one or more implementations, at least a portion of the first product user profile 514 that viewed video content related to the first product 508 may also be included in the first user contact profile 522. Thus, there may be overlap among other users of the client application 104 that are contacts of the first user 502 and users of the client application 104 that viewed video content related to the first product 508. In these cases, the product content management system 128 may determine that the level of interest in the video content related to the first product 508 viewed by the contacts of the user 502 is higher than the level of interest in the video content viewed by users of the client application 104 that are not included in the contacts of the user 502. In this manner, the product content management system 128 may prioritize the video content viewed by users of the client application 104 that have a connection with the user 502 when presenting the video content related to the first product 508 to the user 502 via the client application 104. Product content management system 128 may also prioritize video content created by contacts of user 502 (e.g., friends of user 502) when presenting video content related to first product 508 to user 502. In various examples, when determining that video content related to first product 508 is presented to user 502 via client application 104, product content management system 128 may increase the weight of at least one of video content related to first product 508 that was viewed by contacts of user 502 or created by contacts of user 502 relative to the weight of video content viewed or created by other users of client application 104 that are not connected to user 502. In one or more examples, the amount of increase in the weight of video content related to first product 508 may be based on the degree of separation between user 502 and other users of client application 104 that viewed or created at least one of video content related to first product 508. To illustrate, video content related to first product 508 viewed or created by direct friends of user 502 may be weighted higher and more likely to be presented to user 502 than video content related to first product 508 viewed or created by friends of friends of user 502 .

[0114] The product content management system 128 may also determine the user 502's interest level in the video content related to the first product 508 based on a relationship between the characteristics of the video content and characteristics of video content previously viewed by the user 502. Examples of characteristics of the video content that may be analyzed by the product content management system 128 may include a creator of the video content, individuals included in the video content, a category of the video content, a date the video content was posted, one or more other products included in the video content, a location associated with the video content, one or more combinations thereof, etc. For example, the product content management system 128 may determine that the user 502's interest level in the video content item related to the first product 508 may be relatively high if the user 502 viewed other video content items generated by the creator as compared to video content items generated by the creator for which the user 502 did not view video content. In other examples, the product content management system 128 may determine that user 502 has a relatively higher level of interest in video content items related to the first product 508 if contacts of user 502 have viewed other video content items generated by the creator of the video content items compared to video content items generated by the creator for which contacts of user 502 have not viewed other video content items.

[0115] Based on the respective interest levels of the user 502 in the plurality of content items related to the first product 508, the product content management system 128 may determine a ranking of the video content items relative to the user 502. In one or more examples, the product content management system 128 may determine that video content items related to the first product 508 that have a relatively high interest level relative to the user 502 may have a higher ranking than video content items related to the first product 508 that have a relatively low interest level relative to the user 502. In one or more implementations, the product content management system 128 may determine to include the video content in the product information 528 based on the ranking of the video content items related to the first product 508 relative to the user 502. In various examples, the product content management system 128 may determine a threshold ranking (e.g., top 3, top 5, top 10, top 50, top 100) to identify the video content items related to the first product 508 to be included in the first product data 506. The product content management system 128 may also determine an order in which to present the video content to the user 502 via one or more user interfaces of the client application 104 based on the rankings of the respective video content items. In one or more implementations, the order in which video content is presented to user 502 can be based at least in part on whether the video content is content created or viewed by other users of client application 104 with whom user 502 is connected (e.g., friends of user 502) or other users of client application 104 in which user 502 is interested.

[0116] In various implementations, a user of the client application 104 can generate video content related to products for purchase via the client application 104. In one or more illustrative examples, the user 502 can generate video content related to products for purchase via the client application 104, such as video content related to the first product 508. In one or more examples, the user interface generated by the client application 104 can include information about the products for purchase via the client application 104. The user interface can also include a user interface element that can be selected to capture video content related to the product. For illustration, selection of the user interface element can cause one or more cameras of the client device 102 to activate and enable video capture using the one or more cameras. In one or more illustrative examples, the user 502 can create a video review of the first product 508 using the client application 104.

[0117] The video content created by the user 502 for the first product 508 can be sent to the server system 108 as product item video content 530. The product item video content 530 can include a video captured by one or more input devices of the client device 102. The product item video content 530 can also include content produced using one or more tools of the client application 104. For example, the product item video content 530 can include at least one of the following: one or more text overlays, one or more image overlays, one or more user-generated overlays, one or more video overlays for a video captured by the client device 102, or one or more other augmented reality content items. The product item video content 530 can also include at least one of an identifier of the first product 508 or an identifier of the user 502. In addition, the product item video content 530 can include additional information corresponding to the video content captured by the user 502 using the client application 104, such as at least one of the duration of the video content, a timestamp indicating when the video content was captured, or a location associated with the video content. In one or more examples, the product item video content 530 can also indicate a privacy setting. The privacy settings may indicate an audience for one or more video content items created by user 502. To illustrate, product item video content 530 may indicate that one or more video content items created by user 502 may be accessed by contacts of user 502 associated with client application 104 (e.g., friends of user 502), but not by other users of client application 104 who are not contacts of user 502. Additionally, product item video content 530 may indicate that one or more video content items created by user 502 may be accessed by users of client application 104 other than contacts of user 502. In this manner, user 502 may specify a relatively narrow audience for one or more video content items created by user 502, such as direct friends of user 502 associated with client application 104, or a broader audience that includes more users of client application 104 than contacts of user 502.

[0118] In response to server system 108 receiving product item video content 530, product content management system 128 may determine an identifier of a product associated with the video content included in product item video content 530. Product content management system 128 may store the video content in product data 130 associated with the product corresponding to the video content. For example, product content management system 128 may determine video content corresponding to first product 508 included in product item video content 530 and store the video content in first product data 506. Product content management system 128 may also store an identifier of user 502 in first product data 506 so that user 502 may be identified as a user of client application 104 who created video content associated with first product 508. Additionally, product content management system 128 may determine an identifier of a creator of the video content included in product item video content 530, such as an identifier of user 502. In these cases, product content management system 128 may indicate in first user profile 518 that first user 502 created video content for first product 508. In various examples, product content management system 128 can also store profile information of user 502 in first product data 506. Product content management system 128 can also store an indicator of a privacy level for video content included in product item video content 530.

[0119] Figure 6 and Figure 7 A flowchart of a process for accessing and generating video content for products created using the client application 104 and available for purchase via the client application 104 is shown. These processes are implemented as computer-readable instructions to be executed by one or more processors so that the operations of these processes may be performed in part or in whole by functional components of at least one of the client application 104 or the server system 108. Therefore, in some cases, the processes are described below by way of example with reference thereto. However, in other implementations, the processes with respect to Figure 6 and Figure 7 At least some operations of the described processes may be deployed on various other hardware configurations. Figure 6 and Figure 7The described processes are not intended to be limited to the server system 108 or the client device 102, and may be implemented in whole or in part by one or more additional components. Although the described flowcharts may show the operations as sequential processes, many of the operations may be performed in parallel or simultaneously. In addition, the order of the operations may be rearranged. A process terminates when its operations are completed. A process may correspond to a method, a procedure, an algorithm, etc. The operations of a method may be performed in whole or in part, may be performed in combination with some or all of the operations in other methods, and may be performed by any number of different systems such as the systems described herein or any portion thereof such as a processor included in any system.

[0120] Figure 6 600 is a flowchart showing an example operation of a process 600 for obtaining video content related to a product and providing the video content to a user of a client application according to one or more example implementations performed by a server system. At operation 602, the process 600 may include obtaining video content from a client device of multiple users of the client application. In at least some implementations, the client application may include a messaging application. The video content may correspond to one or more products for purchase via the client application. In one or more examples, the video content may correspond to a video review of one or more products. For illustration, the client application may display a corresponding user interface including information about multiple products and also including a user interface element, which can be selected to initiate a financial transaction for a user of the client application to purchase the product. The product information corresponding to the product for purchase via the client application 104 included in the user interface may include at least one of a product name, a product description, a product price, a product seller, a product manufacturer, or a product rating. In addition, the product information corresponding to the product may include video content related to the product, such as a video evaluation, instructions related to the use of the product, assembly instructions related to the product, or a product use demonstration. In one or more illustrative examples, the one or more products may include at least one of cosmetics or beauty products.

[0121] In addition, processing 600 may include: at operation 604, identifying profile information of multiple users of the client application that submits video content corresponding to the product. In one or more examples, individual users of the client application can be associated with a profile that includes information about each user. The profile may include information corresponding to at least one of the following: one or more user identifiers, one or more user locations, the user's product purchase history, the user's video content viewing history, or the user's contacts. At operation 606, processing 600 may include: storing the video content and the profile information of multiple users in a database in association with the product. For illustration, a data structure storing data corresponding to a video content item generated by a user of the client application may include one or more database elements indicating a product corresponding to the video content, such as an identifier of a product. In various examples, the data structure storing the video content may include a pointer or other link to at least a portion of the profile information of the user who submitted the video content. In this way, the server system can access data related to the profile of the user of the client application that created the corresponding video content item.

[0122] In addition, at operation 608, processing 600 may include receiving a request for information related to a product included in one or more products from the client device of the user of the client application. In one or more implementations, the client application may display a user interface including a user interface element corresponding to the video content item. Each user interface element may be selected to watch corresponding video content items. For example, in response to the selection of the user interface element relevant to the video content item, the client application may send a request to the server system to provide the video content data related to the video content item corresponding to the selected user interface element to the client device.

[0123] Processing 600 may also include: at operation 610, analyzing the profile information of the user in relation to the corresponding profiles of multiple other users of the client application to determine one or more video content items to be provided to the user. The server system may analyze the profiles of other users of the client application to determine the user's interest level in the video content items related to the product. In various examples, the interest level may refer to the amount of user activity or participation in a specific product or product segmentation. In one or more examples, the user may have a relatively high interest level in the video content items related to the product viewed by other users of the client application, and these other users have features similar to the user's features. For example, a comparison of the values ​​of one or more features of one or more other users of the user and the client application may be performed to determine the similarity level between the user and each other user of the client application. In one or more illustrative examples, compared with other users who do not share features with the user, users living in the same location, users of similar age, users who purchase similar products, users with similar interests (e.g., based on previous media content viewing history, web browsing history), users with similar occupations, or one or more combinations thereof may have a relatively high interest level in the user making the request.

[0124] In one or more implementations, the user's interest level in the video content item or the similarity level between the user of the client application and another user can be based on the interest level value or similarity level value between the users. The interest level value or similarity level value can follow a pattern, for example, the product included in the purchase video content item can be assigned a first score, the video content item associated with the product can be assigned a second score, and at least one of the sharing or publishing or creating video content items associated with the product can be assigned a third score. It should be understood that each score can be a different value to indicate a relative similarity or interest level (e.g., the greater the score of a more important activity, the lower the score of a less important activity). It should also be understood that other types of scoring methods can be used.

[0125] The user's interest level to the video content items related to the product can also be based on the similarity level between the video content items and the product-related video content items that the user previously watched. In addition, the user's interest level to the product-related video content items can be based on the video content items that the user's contact previously watched. For illustration, the user's interest level to the product-related video content items previously watched by one or more contacts of the user may be compared with the product-related video content items that the user's contact did not watch and have a higher interest level to the user. In addition, the user may have a higher interest level to the video content items related to the user created by the user's contact than the product-related video content items that are not created by the user's contact. The user's interest level to one or more video content items related to the product can indicate that the user will select the corresponding probability of watching one or more video content items.

[0126] In one or more examples, the video content items can be ranked using the user's interest level in the product-related video content items. In various examples, the video content items with a relatively high interest level can have a higher ranking. The ranking of the video content items can indicate the order in which the video content items are presented to the user in at least one user interface including information about the product generated by the client application. For example, the product-related video content items with a relatively high ranking can be presented in the user interface before the video content items with a relatively low ranking. The ranking of the video content items can also be based on the professional knowledge or experience level of the video content item creator in the field related to the product. In various examples, the video content items created by the user of the client application with a high professional knowledge or experience level in the field related to the product (for example, cosmetics or beauty products) can have a higher ranking than the video content items created by the user of the client application with a low professional knowledge or experience level in the field. In addition, the ranking of the content items can also be based on the number of followers that the creator of the video content items has obtained or the creator of the video content items related to the product has at least one of a public image or a public role.

[0127] In one or more implementations, the analysis of the user profile can be performed in relation to corresponding profiles of multiple other users of the client application using at least one of one or more machine learning techniques or one or more statistical techniques. In one or more illustrative examples, the analysis can be performed by determining an amount of similarity between the user and one or more other users based on a word embedding technique. In one or more other examples, the analysis can be performed by generating a network including nodes corresponding to at least one user of the client application and determining a corresponding distance of the user within the network relative to each of the multiple other users.

[0128] At operation 612, process 600 may include sending, to the client device and in response to the request, one or more video content items and at least a portion of the information related to the product. In one or more implementations, the system may determine, in response to a request from a user for information about a product, a video content item that satisfies at least a threshold level of interest to the user, and include the video content item in a response to the request from the user for information about the product.

[0129] Figure 7 700 is a flowchart illustrating an example operation of a process 700 of providing product-related video content to a server system performed by a client device according to one or more example implementations. The process 700 may include: at operation 702, a request for information related to a product is sent to the server system via at least one user interface generated by a client application. The user interface may include a user interface element that can be selected to request information about the product. In one or more examples, the request may include one or more keywords corresponding to the product. In other examples, the request may be sent based on a selection of a product included in a list of search results corresponding to one or more keywords included in the search request. In another example, the request may be sent based on a selection of a user interface element related to the product included in a message content or social media content of a user contact.

[0130] At operation 704, processing 700 may include: receiving information related to the product from the server system and in response to the request. In addition, at operation 706, processing 700 may include displaying a user interface of the client application, the user interface including at least a portion of the information related to the product. For illustration, the client device may receive data related to the user interface, the data including information about the product, the information may include at least one of video content, image content, pricing information, product description, product rating, or a seller of the product. The user interface may also include a user interface element that can be selected to capture product-related video content. For example, the user interface may include a user interface element that can be selected to record a video review of a product.

[0131] Processing 700 may also include: at operation 708, capturing video data by at least one camera and based on the selection of a user interface element. In one or more illustrative examples, the selection of a user interface element may activate one or more cameras of a client device. In these cases, the client application may generate a view showing the field of view of one or more cameras. In addition, the field of view may be superimposed to present an icon that can be selected to record video content captured by one or more cameras. After recording the video content associated with the product, the user of the client application may modify the video content using one or more tools of the client application to create a modified version of the video content. For example, the user of the client application may add augmented reality content to the video content, such as subtitles containing more than one text, image content, creative artwork, one or more overlays, or one or more animations. The user may also activate one or more tools of the client application to modify the playback characteristics of the video content, such as the sound of the video content, the playback speed of the video content, or modify one or more other playback characteristics of the video content.

[0132] In addition, at operation 710, processing 700 may include sending video data to a server system. The video data may include captured video content related to a product. The video data may also correspond to one or more modifications to the captured video content related to a product. In one or more examples, the video data may be sent to a server system together with information indicating an audience of the video content. For example, the video data may include an indication or the video data may be sent together with an indication that the video content may be accessed by a contact of the creator of the video content (e.g., a friend of the creator related to the client application) or other users of the client application included in the creator's social network. In other examples, the video data may include an indication or the video data may be sent together with an indication that the video content will be publicly acquired and accessed by users of the client application outside the creator's contact group or social network. In various examples, the creator of the video content may indicate one or more features of a user of a client application that may access the video content, such as one or more demographic features, one or more location features, or a content consumption history.

[0133] Figure 8800 includes video content related to a product according to one or more example implementations. The user interface 800 can be displayed via a display device of a client device 102, and the user interface 800 can include a first portion 802 that includes information about a product 804. The first portion 802 can indicate the name of the product 804, the seller or manufacturer of the product 804, the price of the product 804, and one or more ratings of the product 804. The first portion 802 can also include an image of the product 804. In addition, the user interface 800 can include a first user interface element 806 that can be selected to initiate a financial transaction to purchase at least one instance of the product 804. In addition, the user interface 800 can include a second user interface element 808 that can be selected to compose a message including information about the product 804, and a third user interface element 810 that can be selected to share information about the product 804 with contacts of the user of the client device 102.

[0134] exist Figure 8 In an illustrative example of , the user interface 800 may include a second portion 812 that includes one or more video content items related to the product 804. For example, the second portion 812 may include a fourth user interface element 814 that can be selected to play the video content item related to the product 804. In various examples, the fourth user interface element 814 may include an image captured from the video content item. In one or more embodiments, the video content item may include a review of the product 804. In addition, the user interface 800 may include a fifth user interface element 816 that can be selected to view other video content items related to the product 804. The video content items presented via the client application 104 may be displayed in an order corresponding to the predicted interest level of the user of the client device 102 for the respective video content items. For illustration, the selection of the fifth user interface element 816 may cause an additional user interface including a plurality of additional user interface elements to be displayed, each of which corresponds to a different video content item related to the product 804. In these cases, video content items having relatively higher levels of interest to the user of client device 102 may be presented toward a top portion of the collection of video content items, while video content items having lower levels of interest to the user of client device 102 may be presented in a lower portion of the collection of video content items.

[0135] The user interface 800 may also include a third portion 818 that includes information corresponding to other products (e.g., a first other product 820 and a second other product 822) for purchase via the client application. The other products 820, 822 may be related to the product 804, such as products of the same or similar category as the product 804. In another example, the other products 820, 822 displayed in the third portion 818 may have at least a threshold level of interest to the user of the client device 102. In one or more implementations, the user interface 800 may also include a sixth user interface element 824 that can be selected to capture video content related to the product 804. For example, the sixth user interface element 824 may be selectable to capture a video review related to the product 804.

[0136] Fig. 9 800 is an illustration of a user interface 900 for capturing video content related to a product according to one or more example implementations. The user interface 900 may be displayed via a display device of a client device 102 and generated by a client application (e.g., client application 104) executed by the client device 102. In various examples, the user interface 900 may be displayed in response to a selection of a sixth user interface element 824 included in the user interface 800. The user interface 900 may include a field of view 902 captured by a camera 904 of the client device 102. In addition, the user interface 900 may include a user interface element 906 that can be selected to record content displayed in the field of view of 902. For example, the user interface element 906 can be selected to capture an image displayed in the field of view 902. In addition, the user interface element 906 may be selected to capture content included in the field of view 902 over a period of time. In this way, the user interface element 906 may be selected to capture video content related to the product.

[0137] Fig.101 is an illustration of a user interface 1000 for editing product-related video content using a tool of a client application according to one or more example implementations. The user interface 1000 may be displayed via a display device of a client device 102. In addition, the user interface 1000 may include an image 1002, which may correspond to a portion of the video content captured by the client device 102. The user interface 1000 may also include a plurality of first user interface elements 1004. Each of the first user interface elements 1004 may be selected to launch a tool of the client application. For example, one of the first user interface elements 1004 may be selected to add a text overlay to at least a portion of the video captured by the client device 102. In addition, another of the first user interface elements 1004 may be selected to launch a creative tool, which may be used to generate creative art that may overlay at least a portion of the video content captured by the client device 102. The creative art may include words, symbols, images, one or more combinations thereof, etc. generated using the creative tool. In addition, another of the first user interface elements 1004 may be selected to add a previously generated overlay to at least a portion of the video captured using the client device 102. The previously generated overlay can be generated by at least one of one or more users of the client application or the service provider that maintains and provides the client application. The overlay can also be generated by the augmented reality content item relevant to the client application. The first user interface element 1004 can also include one or more user interface elements, which can be selected to modify at least one of one or more playback characteristics of the video captured by the client device 102 or one or more audio characteristics of the audio related to the video captured by the client device 102 based on the initial version of the video captured by the client device 102 to produce a modified version of the video content.

[0138] Additionally, user interface 1000 may include one or more second user interface elements 1006. At least a portion of second user interface element 1006 may be selectable to save an initial or modified version of a video captured via client device 102 to one or more content collections associated with a user of client device 102 who is creating the video content. In various examples, user interface 1000 may include a third user interface element 1008 that may be selectable to share the video content with one or more other users of the client application.

[0139] Fig.11 1 is a block diagram illustrating components of a machine 1100 capable of reading instructions from a machine-readable medium (e.g., a machine-readable storage medium) and performing any one or more of the methods discussed herein, according to some example implementations. Specifically, Fig.11 A graphical representation of a machine 1100 in the example form of a computer system is shown, within which instructions 1102 (e.g., software, programs, applications, applet, application (app) or other executable code) for causing the machine 1100 to perform any one or more of the methods discussed herein can be executed. Thus, the instructions 1102 can be used to implement the modules or components described herein. The instructions 1102 convert a general-purpose, unprogrammed machine 1100 into a specific machine 1100 that is programmed to perform the functions described and shown in the described manner. In alternative implementations, the machine 1100 operates as a standalone device or can be coupled (e.g., networked) to other machines. In a networked deployment, the machine 1100 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. The machine 1100 may include, but is not limited to, a server computer, a client computer, a personal computer (PC), a tablet computer, a laptop computer, a netbook, a set-top box (STB), a personal digital assistant (PDA), an entertainment media system, a cellular phone, a smart phone, a mobile device, a wearable device (e.g., a smart watch), a smart home device (e.g., a smart appliance), other smart devices, web appliances, a network router, a network switch, a network bridge, or any machine capable of executing instructions 1102 that specify actions to be taken by the machine 1100, either sequentially or otherwise. In addition, while only a single machine 1100 is shown, the term "machine" should also be taken to include a collection of machines that individually or jointly execute instructions 1102 to perform any one or more of the methodologies discussed herein.

[0140] The machine 1100 may include a processor 1104, a memory / storage 1106, and an I / O component 1108, which may be configured to communicate with each other, for example, via a bus 1110. In an example implementation, the processor 1104 (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, a processor 1112 and a processor 1114 that may execute instructions 1102. The term "processor" is intended to include a multi-core processor 1104 that may include two or more independent processors (sometimes referred to as "cores") that may execute instructions 1102 simultaneously. Although FIG. 16 shows multiple processors 1104, the machine 1100 may include a single processor 1112 having a single core, a single processor 1112 having multiple cores (e.g., a multi-core processor), multiple processors 1112 having a single core, multiple processors 1112 having multiple cores, or any combination thereof.

[0141] The memory / storage 1106 may include memory, such as a main memory 1116 or other memory storage, and a storage unit 1118, both of which are accessible to the processor 1104, for example, via the bus 1110. The storage unit 1118 and the main memory 1116 store instructions 1102 that embody any one or more of the methods or functions described herein. The instructions 1102 may also reside, completely or partially, within the main memory 1116, within the storage unit 1118, within at least one of the processors 1104 (e.g., within a cache memory of the processor), or any suitable combination thereof during execution thereof by the machine 1100. Thus, the main memory 1116, the storage unit 1118, and the memory of the processor 1104 are examples of machine-readable media.

[0142] The I / O components 1108 may include various components for receiving input, providing output, generating output, transmitting information, exchanging information, capturing measurements, etc. The specific I / O components 1108 included in a particular machine 1100 will depend on the type of machine. For example, a portable machine such as a mobile phone will likely include a touch input device or other such input mechanism, while a headless server machine will likely not include such a touch input device. It will be appreciated that the I / O components 1108 may include Fig.11Many other components not shown in the figure. The I / O components 1108 are grouped according to function only to simplify the following discussion, and the grouping is by no means limiting. In various example implementations, the I / O components 1108 may include a user output component 1120 and a user input component 1122. The user output component 1120 may include a visual component (e.g., a display such as a plasma display panel (PDP), a light emitting diode (LED) display, a liquid crystal display (LCD), a projector, or a cathode ray tube (CRT)), an acoustic component (e.g., a speaker), a tactile component (e.g., a vibration motor, a resistance mechanism), other signal generators, etc. The user input component 1122 may include an alphanumeric input component (e.g., a keyboard, a touch screen configured to receive alphanumeric input, an optical keyboard, or other alphanumeric input component), a point-based input component (e.g., a mouse, a touch pad, a trackball, a joystick, a motion sensor, or other pointing instrument), a tactile input component (e.g., a physical button, a touch screen that provides the position or force of a touch or touch gesture, or other tactile input components), an audio input component (e.g., a microphone), etc.

[0143] In other example implementations, the I / O component 1108 may include a biometric component 1124, a motion component 1126, an environment component 1128, or a positioning component 1130, as well as various other components. For example, the biometric component 1124 may include a component for detecting expressions (e.g., hand expressions, facial expressions, voice expressions, body postures, or eye tracking), measuring biosignals (e.g., blood pressure, heart rate, body temperature, sweating, or brain waves), identifying people (e.g., voice recognition, retinal recognition, facial recognition, fingerprint recognition, or EEG-based recognition), etc. The motion component 1126 may include: an acceleration sensor component (e.g., an accelerometer), a gravity sensor component, a rotation sensor component (e.g., a gyroscope), etc. Environmental component 1128 may include, for example, an illumination sensor component (e.g., a photometer), a temperature sensor component (e.g., one or more thermometers that detect ambient temperature), a humidity sensor component, a pressure sensor component (e.g., a barometer), an auditory sensor component (e.g., one or more microphones that detect background noise), a proximity sensor component (e.g., an infrared sensor that detects nearby objects), a gas sensor (e.g., a gas detection sensor that detects concentrations of hazardous gases for safety or measures pollutants in the atmosphere), or other components that can provide indications, measurements, or signals corresponding to the surrounding physical environment. Positioning component 1130 may include a position sensor component (e.g., a GPS receiver component), an altitude sensor component (e.g., an altimeter or barometer from which the air pressure is detected and the altitude can be obtained), an orientation sensor component (e.g., a magnetometer), etc.

[0144] A variety of technologies may be used to implement communications. The I / O components 1108 may include a communications component 1132 operable to couple the machine 1100 to a network 1134 or device 1136. For example, the communications component 1132 may include a network interface component or other suitable device for interfacing with the network 1134. In other examples, the communications component 1132 may include a wired communications component, a wireless communications component, a cellular communications component, a near field communications (NFC) component, a wireless communications ... Components (e.g. Low energy consumption), Device 1136 may be another machine 1100 or any peripheral device among various peripheral devices (eg, a peripheral device coupled via USB).

[0145] In addition, the communication component 1132 can detect an identifier or include a component operable to detect an identifier. For example, the communication component 1132 can include a radio frequency identification (RFID) tag reader component, an NFC smart tag detection component, an optical reader component (e.g., an optical sensor for detecting one-dimensional bar codes such as Universal Product Code (UPC) bar codes, multi-dimensional bar codes such as Quick Response (QR) codes, Aztec codes, Data Matrix, Dataglyph, MaxiCode, PDF417, Ultra Code, UCC RSS-2D bar codes, and other optical codes) or an acoustic detection component (e.g., a microphone for identifying an audio signal of a tag). In addition, various information can be derived via the communication component 1132, such as a location via an Internet Protocol (IP) geographic location, a location via a wireless network ... The location of signal triangulation, the location of an NFC beacon signal via detection that can indicate a specific location, etc.

[0146] Fig.12 is a block diagram illustrating a system 1200 including an example software architecture 1202 that can be used in conjunction with the various hardware architectures described herein. Fig.12 is a non-limiting example of a software architecture, and it should be understood that many other architectures may be implemented to facilitate the functionality described herein. The software architecture 1202 may be implemented in a system such as Fig.11 1100, which includes a processor 1104, a memory / storage device 1106, and an input / output (I / O) component 1108. A representative hardware layer 1204 is shown and may represent, for example, Fig.11The representative hardware layer 1204 includes a processing unit 1206 having associated executable instructions 1208. The executable instructions 1208 represent executable instructions of the software architecture 1202, including implementations of the methods, components, etc. described herein. The hardware layer 1204 also includes at least one of a memory or storage module memory / storage device 1210 also having executable instructions 1208. The hardware layer 1204 may also include other hardware 1512.

[0147] exist Fig.12 In the example architecture of , software architecture 1202 can be conceptualized as a stack of layers, each of which provides specific functionality. For example, software architecture 1202 may include layers such as operating system 1214, library 1216, framework / middleware 1218, application 1220, and presentation layer 1222. In operation, application 1220 and / or other components within a layer may activate API call 1224 through the software stack and receive message 1226 in response to API call 1224. The layers shown are representative in nature, and not all software architectures have all layers. For example, some mobile operating systems or dedicated operating systems may not provide framework / middleware 1218, while other operating systems may provide such a layer. Other software architectures may include additional or different layers.

[0148] The operating system 1214 can manage hardware resources and provide public services. The operating system 1214 may include, for example, a kernel 1228, a service 1230, and a driver 1232. The kernel 1228 may be used as an abstraction layer between the hardware and other software layers. For example, the kernel 1228 may be responsible for memory management, processor management (e.g., scheduling), component management, networking, security settings, etc. The service 1230 may provide other public services for other software layers. The driver 1232 is responsible for controlling or interfacing with the underlying hardware. For example, depending on the hardware configuration, the driver 1232 may include a display driver, a camera driver, drivers, flash memory drivers, serial communication drivers (e.g., Universal Serial Bus (USB) drivers), Drivers, audio drivers, power management drivers, etc.

[0149] The library 1216 provides a common infrastructure used by at least one of the applications 1220, other components or layers. The library 1216 provides the following functions, which allow other software components to perform tasks in an easier way than directly interfacing with the functions of the underlying operating system 1214 (e.g., the core 1228, the service 1230 or the driver 1232). The library 1216 may include a system library 1234 (e.g., a C standard library), which may provide functions such as memory allocation functions, string manipulation functions, mathematical functions, etc. In addition, the library 1216 may include an API library 1236, such as a media library (e.g., a library that supports the presentation and manipulation of various media formats such as MPEG4, H.264, MP3, AAC, AMR, JPG, PNG), a graphics library (e.g., an OpenGL framework that can be used to present two-dimensional and three-dimensional graphics content on a display), a database library (e.g., SQLite that can provide various relational database functions), a web library (e.g., WebKit that can provide web browsing functions), etc. The library 1216 may also include various other libraries 1238 to provide numerous other APIs to the applications 1220 and other software components / modules.

[0150] Framework / middleware 1218 (sometimes also referred to as middleware) provides a higher level common infrastructure that can be used by applications 1220 or other software components / modules. For example, framework / middleware 1218 can provide various graphical user interface functions, advanced resource management, advanced location services, etc. Framework / middleware 1218 can provide a wide range of other APIs that can be utilized by applications 1220 and / or other software components / modules, some of which can be specific to a particular operating system 1214 or platform.

[0151] Applications 1220 include built-in applications 1240 and / or third-party applications 1242. Examples of representative built-in applications 1240 may include, but are not limited to, contact applications, browser applications, book reader applications, location applications, media applications, messaging applications, or game applications. Third-party applications 1242 may include applications that are developed by entities other than the vendor of a particular platform using ANDROID TM or IOS TM Software Development Kit (SDK) for developing applications and can be used on platforms such as IOS TM ANDROID TM , Mobile software running on the phone's mobile operating system or other mobile operating system. Third-party applications 1242 can call API calls 1224 provided by the mobile operating system (e.g., operating system 1214) to facilitate the functions described herein.

[0152] Applications 1220 may use built-in operating system functionality (e.g., kernel 1228, services 1230 drivers 1232), libraries 1216, and framework / middleware 1218 to create a UI to interact with a user of the system. Alternatively or additionally, in some systems, interaction with the user may occur through a presentation layer such as presentation layer 1222. In these systems, the application / component "logic" may be separated from the aspects of the application / component that interact with the user.

[0153] Glossary:

[0154] A "carrier signal" in this context refers to any intangible medium capable of storing, encoding, or carrying the transitory or non-transitory instructions 1102 for execution by the machine 1100 and includes digital or analog communication signals or other intangible media to facilitate communication of such instructions. The instructions 1102 may be sent or received over the network 110, 1134 using a transitory or non-transitory transmission medium via a network interface device and using any of a number of well-known transmission protocols.

[0155] A "client device" in this context refers to any machine 1100 that interfaces with a communication network 110, 1134 to obtain resources from one or more server systems or other client devices 102. A client device 102 may be, but is not limited to, a mobile phone, a desktop computer, a laptop computer, a PDA, a smart phone, a tablet computer, an ultrabook, a netbook, a laptop computer, a multiprocessor system, a microprocessor-based or programmable consumer electronics product, a game console, a set-top box, or any other communication device that a user may use to access a network 110, 1134.

[0156] The "communication network" in this context refers to one or more parts of a network 110, 1134, which may be an ad hoc network, an intranet, an extranet, a virtual private network (VPN), a local area network (LAN), a wireless LAN (WLAN), a wide area network (WAN), a wireless WAN (WWAN), a metropolitan area network (MAN), the Internet, a portion of the Internet, a portion of the public switched telephone network (PSTN), a plain old telephone service (POTS) network, a cellular telephone network, a wireless network, network, other types of networks, or a combination of two or more such networks. For example, the network 110, 1134 or a portion of the 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, the coupling may implement any of various types of data transmission technologies, such as single carrier radio transmission technology (1xRTT), evolution data optimized (EVDO) technology, general packet radio service (GPRS) technology, enhanced data rates for GSM evolution (EDGE) technology, the third generation partnership project (3GPP) including 3G, the fourth generation wireless (4G) network, the universal mobile telecommunications system (UMTS), high speed packet access (HSPA), world wide interoperability for microwave access (WiMAX), long term evolution (LTE) standards, other standards defined by various standard setting organizations, other remote protocols, or other data transmission technologies.

[0157] A "transient message" in this context refers to a message that can be accessed for a limited duration of time. A transient message can be text, an image, a video, etc. The access time of a transient message can be set by the sender of the message. Alternatively, the access time can be a default setting or a setting specified by the recipient. Regardless of the setting technique, the message is transient.

[0158] "Machine-readable medium" in this context refers to a component, device, or other tangible medium capable of temporarily or permanently storing instructions 1102 and data, and may include, but is not limited to, random access memory (RAM), read-only memory (ROM), buffer memory, flash memory, optical media, magnetic media, cache memory, other types of storage devices (e.g., erasable programmable read-only memory (EEPROM)), and / or any suitable combination thereof. The term "machine-readable medium" should be taken to include a single medium or multiple media (e.g., a centralized or distributed database or associated cache memory and server) capable of storing instructions 1102. The term "machine-readable medium" should also be taken to include any medium or combination of multiple media capable of storing instructions 1102 (e.g., code) executed by the machine 1100, such that the instructions 1102, when executed by one or more processors 1104 of the machine 1100, cause the machine 1100 to perform any one or more of the methods described herein. Accordingly, "machine-readable medium" refers to a single storage device or device, as well as a "cloud-based" storage system or storage network including multiple storage devices or devices. The term "machine-readable medium" does not include the signal itself.

[0159] "Component" in this context refers to a device, physical entity or logic with boundaries defined by function or subroutine calls, branch points, APIs or other technical definitions that provide partitioning or modularization for specific processing or control functions. Components can be combined with other components via their interfaces to perform machine processing. Components can be encapsulated functional hardware units designed for use with other components, and a part of a program for a specific function that generally performs related functions. Components can constitute software components (e.g., codes implemented on machine-readable media) or hardware components. "Hardware components" are tangible units that can perform certain operations, and can be configured or arranged in a certain physical manner. In various example implementations, one or more computer systems (e.g., independent 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., applications or application parts) to be hardware components for performing certain operations as described herein.

[0160] The hardware components may also be implemented mechanically, electronically, or in any suitable combination thereof. For example, the hardware components may include dedicated circuits or logic that are permanently configured to perform certain operations. The hardware components may be dedicated processors, such as field programmable gate arrays (FPGAs) or ASICs. The hardware components may also include programmable logic or circuit systems that are temporarily configured to perform certain operations by software. For example, the hardware components may include software executed by a general-purpose processor 1104 or other programmable processors. Once configured by such software, the hardware components become specific machines (or specific components of the machine 1100), which are uniquely customized to perform the configured functions and are no longer general-purpose processors 1104. It will be understood that the decision to mechanically implement the hardware components in a dedicated and permanently configured circuit or in a temporarily configured (e.g., configured by software) circuit may be promoted for cost and time considerations. Accordingly, the phrase "hardware components" (or "hardware-implemented components") should be understood to include tangible entities, i.e., entities that are physically constructed, permanently configured (e.g., hardwired) or temporarily configured (e.g., programmed) to operate in some way or perform certain operations described herein. Given implementations where hardware components are temporarily configured (e.g., programmed), it is not necessary to configure or instantiate each hardware component at any one time. For example, where the hardware components include a general-purpose processor 1104 that is configured by software to be a special-purpose processor, the general-purpose processor 1104 can be configured to be respectively different special-purpose processors (e.g., including different hardware components) at different times. The software configures the specific processors 1112, 1114 or processor 1104 accordingly to, for example, constitute a specific hardware component at one time and constitute a different hardware component at a different time.

[0161] Hardware components can provide information to other hardware components and receive information from other hardware components. Therefore, the hardware components described can be considered to be coupled in communication. In the case of multiple hardware components simultaneously, communication can be achieved by signal transmission between or among two or more hardware components (for example, by appropriate circuits and buses). In the implementation mode that multiple hardware components are configured or instantiated at different times, communication between such hardware components can be achieved, for example, by storing information in a memory structure accessed by multiple hardware components and retrieving information in the memory structure. For example, a hardware component can perform an operation, and the output of the operation is stored in a memory device coupled in communication. Then, other hardware components can access the memory device at a subsequent time to retrieve and process the output of the storage.

[0162] The hardware component can also initiate communication with an input device or an output device, and can operate on resources (e.g., a collection of information). The various operations of the example methods described herein can be performed at least in part by one or more processors 1104 that are temporarily configured (e.g., by software) or permanently configured to perform related operations. Whether it is a temporary configuration or a permanent configuration, such a processor 1104 can constitute a processor-implemented component that operates to perform one or more operations or functions described herein. As used herein, "processor-implemented components" refer to hardware components implemented using one or more processors 1104. Similarly, the method described herein can be at least partially implemented by a processor, wherein a specific processor 1112, 1114 or processor 1104 is an example of hardware. For example, at least some of the operations of the method can be performed by one or more processors 1104 or processor-implemented components. In addition, one or more processors 1104 can also be operated to support the performance of related operations in a "cloud computing" environment or operate as "software as a service" (SaaS). For example, at least some operations may be performed by a group of computers (as an example of a machine 1100 including a processor 1104), which may be accessed via a network 110, 1134 (e.g., the Internet) and via one or more appropriate interfaces (e.g., APIs). The execution of certain operations may be distributed among processors, not only residing in a single machine, but also deployed across multiple machines. In some example implementations, the processor 1104 or a processor-implemented component may be located in a single geographic location (e.g., in a home environment, an office environment, or a server farm). In other example implementations, the processor 1104 or a processor-implemented component may be distributed across multiple geographic locations.

[0163] A "processor" in this context refers to any circuit or virtual circuit (physical circuit emulated by logic executed on an actual processor 1104) that manipulates data values ​​according to control signals (e.g., "commands," "opcodes," "machine codes," etc.) and produces corresponding output signals used to operate the machine 1100. For example, the processor 1104 may be a CPU, a RISC processor, a CISC processor, a GPU, a DSP, an ASIC, an RFIC, or any combination thereof. The processor may also be a multi-core processor having two or more independent processors 1104 (sometimes referred to as "cores") that can execute instructions 1102 simultaneously.

[0164] A "timestamp" in this context refers to a series of characters or coded information that identifies when some event occurred (eg, giving a date and time of day), sometimes to within a fraction of a second.

[0165] Changes and modifications may be made to the disclosed implementations without departing from the scope of the present disclosure. These and other changes or modifications are intended to be included within the scope of the present disclosure and are expressed in the appended claims.

[0166] Example Aspects of the Disclosure

[0167] Aspect 1. A method, comprising: receiving, by one or more computing devices of a server system, video content from client devices of a plurality of first users, each of the plurality of first users being a corresponding user of a client application, the video content comprising a plurality of video content items, the plurality of video content items corresponding to one or more products for purchase via the client application; identifying, by the one or more computing devices, profile information of each of the plurality of first users of the client application; storing, by the one or more computing devices, the profile information of the plurality of first users and the video content in association with the one or more products in a database, the database further comprising product data related to each of the one or more products data; receiving, by the one or more computing devices, a request for information about a product included in the one or more products, the request corresponding to a user of the client application; analyzing, by the one or more computing devices, a first profile of the user in relation to one or more second profiles of one or more second users of the client application to determine one or more video content items included in the plurality of video content items to be provided to the user; generating, by the one or more computing devices, a response to the request, the response including the one or more video content items and at least a portion of the product data about the product and stored by the database; and sending, by the one or more computing devices, the response to the client device of the user.

[0168] Aspect 2. The method according to Aspect 1 includes: performing, by the one or more computing devices, an analysis of one or more first values ​​of one or more features included in the first profile of the user in relation to one or more second values ​​of the one or more features included in the second profile of the one or more second users of the client application corresponding to the one or more second users, the second user being related to the product; determining, by the one or more computing devices based on the analysis, a level of interest of the user in a video content item among the one or more video content items; and determining, by the one or more computing devices and based on the interest level, to include the video content item in a response to the request for information about the product.

[0169] Aspect 3. A method according to Aspect 2, wherein the analysis includes: performing a comparison between the one or more first values ​​and the one or more second values ​​by the one or more computing devices; determining a similarity measure between the one or more first values ​​and the one or more second values ​​by the one or more computing devices and based on the comparison; and wherein the user's interest level in the one or more video content items corresponds to the similarity measure.

[0170] Aspect 4. The method according to aspect 2, wherein the second user created the video content item, or the second user watched the video content item.

[0171] Aspect 5. The method according to Aspect 2 includes: determining, by the one or more computing devices, a ranking of the video content items relative to the user regarding the multiple video content items, wherein the ranking is based on the user's interest level in the video content related to the user's other interest levels in one or more other video content items included in the multiple video content items.

[0172] Aspect 6. The method according to Aspect 5 includes: determining, by the one or more computing devices, an order in which to present the video content items in a user interface displayed via the client application, the user interface including product data and at least a portion of the video content.

[0173] Aspect 7. A method according to Aspect 6, wherein the user interface includes a user interface element that can be selected to purchase the product; and the method includes: based on the selection of the user interface element, the one or more computing devices receiving an instruction to purchase the product from the client device; and the one or more computing devices initiating a financial transaction for the user to purchase the product.

[0174] Aspect 8. The method according to Aspect 2 includes: determining, by the one or more computing devices, that the second user has a social network connection with the user; and wherein the user's interest level in the video content item is based on the second user having a social network connection with the user.

[0175] Aspect 9. The method according to aspect 2, wherein the interest level is based on at least one of: the video content item is in the same category or a similar category as the product or the video content item is in the same category or a similar category as other video content items watched by the user.

[0176] Aspect 10. A method according to any one of Aspects 1 to 9, wherein: the client application is a messaging application, the one or more products include one or more cosmetics; and the video content includes one or more overlays, the one or more overlays including at least one of the following: text content superimposed on at least a portion of the video content, image content superimposed on at least a portion of the video content, or augmented reality content superimposed on at least a portion of the video content and generated by one or more tools of the messaging application.

[0177] Aspect 11. A system comprising: one or more hardware processors; and one or more non-transitory computer-readable storage media, wherein the one or more non-transitory computer-readable storage media include computer-readable instructions, which, when executed by the one or more hardware processors, cause the one or more hardware processors to perform operations, the operations comprising: receiving video content from a client device of a plurality of first users, each of the plurality of first users being a corresponding user of a client application, the video content including a plurality of video content items, the plurality of video content items corresponding to one or more products for purchase via the client application; identifying profile information of each of the plurality of first users of the client application; and combining the profile information of the plurality of first users with the profile information of the plurality of first users. The video content is stored in a database in association with the one or more products, the database also including product data associated with each of the one or more products; receiving a request for information about a product included in the one or more products, the request corresponding to a user of the client application; analyzing, by the one or more computing devices, a first profile of the user in association with one or more second profiles of one or more second users of the client application to determine one or more video content items included in the plurality of video content items to be provided to the user; generating a response to the request, the response including the one or more video content items and at least a portion of the product data about the product and stored by the database; and sending the response to the client device of the user.

[0178] Aspect 12. A system according to Aspect 11, wherein the one or more non-transitory computer-readable storage media include additional computer-readable instructions, which, when executed by the one or more hardware processors, cause the one or more hardware processors to perform additional operations including: performing an analysis of one or more features of one or more other video content items viewed by the user in relation to one or more features of a video content item in the one or more video content items; and determining, based on the analysis, a level of interest of the user in the video content item.

[0179] Aspect 13. A system according to Aspect 12, wherein the one or more non-transitory computer-readable storage media include additional computer-readable instructions, which, when executed by the one or more hardware processors, cause the one or more hardware processors to perform additional operations including: determining the interest level satisfaction threshold interest level; and determining to include the video content item in the response to the request based on the interest level satisfying the threshold level of interest.

[0180] Aspect 14. A system according to any one of Aspects 11 to 13, wherein the response to the request includes user interface data corresponding to a user interface capable of being displayed by the client application, the user interface indicating at least a portion of the product data, at least one of the one or more video content items, and a user interface element that can be selected to capture other video content related to the product.

[0181] Aspect 15. A system according to any one of Aspects 11 to 14, wherein the one or more non-transitory computer-readable storage media include additional computer-readable instructions, which, when executed by the one or more hardware processors, cause the one or more hardware processors to perform additional operations including: obtaining video content data from the client device of the user, the video content data including a video review of the product captured via the client application; and storing the video review of the product in association with other video reviews of the product.

[0182] Aspect 16. A system according to Aspect 15, wherein the one or more non-transitory computer-readable storage media include additional computer-readable instructions, which, when executed by the one or more hardware processors, cause the one or more hardware processors to perform additional operations including the following operations: receiving an additional request from the client device of the user to share the video comment with one or more recipients, the one or more recipients being other users of the client application; and based on the additional request, sending message content to other client devices of the one or more recipients, the message including the video comment and accessible via the client application.

[0183] Aspect 17. A system according to Aspect 15, wherein the one or more non-transitory computer-readable storage media include additional computer-readable instructions, which, when executed by the one or more hardware processors, cause the one or more hardware processors to perform additional operations including: receiving an additional request from the client device of the user to store the video comment in association with a content collection corresponding to the user, the content collection being accessible by one or more social network connections of the user via the client application.

[0184] Aspect 18. A method, comprising: sending a request for information related to a product to a server system by a client device having one or more processors and a memory via at least one user interface generated by a client application; receiving information related to the product by the client device and in response to the request; displaying a user interface of the client application by the client device, the user interface including at least a portion of the information related to the product and a user interface element, the user interface element being selectable to capture video content related to the product; capturing video content through at least one camera device of the client device and based on a selection of the user interface element; and sending video data related to the video content to the server system by the client device, the video data including a video review of the product.

[0185] Aspect 19. The method according to Aspect 18 includes: displaying an additional user interface by the client device, the additional user interface including at least an image corresponding to the video data and an additional user interface element, the additional user interface element being selectable to launch a tool of the client application; receiving input related to the tool by one or more input devices of the client device to modify at least a portion of the video content; and generating a modified version of the video content by the client device and based on the input; and wherein the video data includes the modified version of the video content.

[0186] Aspect 20. The method of aspect 19, wherein the modified version of the video content includes at least one of: augmented reality content, an overlay of at least a portion of the video content, modified audio of the video content, or modified playback characteristics relative to the video content.

Claims

1. A method for generating and accessing video content for a product, comprising: receiving, by one or more computing devices of a server system, video content from client devices of a plurality of first users, each of the plurality of first users being a respective user of a client application, the video content comprising a plurality of video content items corresponding to one or more products for purchase via the client application; identifying, by the one or more computing devices, profile information for each first user of the plurality of first users of the client application; storing, by the one or more computing devices, the profile information of the plurality of first users and the video content in association with the one or more products in a database, the database also comprising product data associated with respective ones of the one or more products, wherein, for respective ones of the one or more products, the database comprises a connection between the product data associated with the respective product and a profile of one or more users of the client application corresponding to the product; receiving, by the one or more computing devices, a request for information about a product included in the one or more products, the request corresponding to a user of the client application; determining, by the one or more computing devices, a first profile of the user in response to the request; determining, by the one or more computing devices in response to the request, the one or more second profiles of the one or more second users based on a connection between the product data in the database and one or more second profiles of one or more second users of the client application corresponding to the product; analyzing, by the one or more computing devices, the first profile of the user in relation to the one or more second profiles of the one or more second users to determine one or more video content items included in the plurality of video content items to be provided to the user; generating, by the one or more computing devices, a response to the request, the response comprising the one or more video content items and at least a portion of the product data about the product and stored by the database; and The response is sent by the one or more computing devices to a client device of the user.

2. The method according to claim 1, comprising: performing, by the one or more computing devices, an analysis of the one or more first values ​​of the one or more features included in the first profile of the user in relation to one or more second values ​​of the one or more features included in a second profile of the one or more second profiles corresponding to a second user of the one or more second users of the client application, the second user being associated with the product; determining, by the one or more computing devices, a level of interest of the user in a video content item of the one or more video content items based on the analysis; as well as A determination is made, by the one or more computing devices and based on the level of interest, to include the video content item in the response to the request for information about the product.

3. The method according to claim 2, wherein: The analysis included: performing, by the one or more computing devices, a comparison between the one or more first values ​​and the one or more second values; determining, by the one or more computing devices and based on the comparison, a similarity measure between the one or more first values ​​and the one or more second values; and Wherein, the interest level of the user in the one or more video content items corresponds to the similarity measure.

4. The method according to claim 2, wherein: The second user created the video content item, or the second user watched the video content item.

5. The method according to claim 2, comprising: Determining, by the one or more computing devices, a ranking of the video content items relative to the user with respect to the plurality of video content items, wherein the ranking is based on the user's interest level in the video content relative to other interest levels of the user in one or more other video content items included in the plurality of video content items.

6. The method according to claim 5, comprising: An order is determined, by the one or more computing devices, in which to present the video content items in a user interface displayed via the client application, the user interface including product data and at least a portion of the video content.

7. The method according to claim 6, wherein: The user interface includes a user interface element that is selectable to purchase the product; and The method comprises: receiving, by the one or more computing devices from the client device, an indication to purchase the product based on the selection of the user interface element; and A financial transaction is initiated by the one or more computing devices for the user to purchase the product.

8. The method according to claim 2, comprising: determining, by the one or more computing devices, that the second user has a social network connection with the user; and Wherein, the user's interest level in the video content item is based on the second user having a social network connection with the user.

9. The method according to claim 2, wherein: The interest level is based on at least one of: the video content item being in the same category or a similar category as the product or the video content item being in the same category or a similar category as other video content items viewed by the user.

10. The method of claim 1, wherein: The client application is a messaging application, The one or more products include one or more cosmetic products; and The video content includes one or more overlays, and the one or more overlays include at least one of the following: text content superimposed on at least a portion of the video content, image content superimposed on at least a portion of the video content, or augmented reality content superimposed on at least a portion of the video content and generated by one or more tools of the messaging application.

11. A system for generating and accessing video content for a product, comprising: one or more hardware processors; as well as One or more non-transitory computer-readable storage media comprising computer-readable instructions that, when executed by the one or more hardware processors, cause the one or more hardware processors to perform operations comprising: receiving video content from a client device of a plurality of first users, each first user of the plurality of first users being a respective user of a client application, the video content comprising a plurality of video content items corresponding to one or more products for purchase via the client application; identifying profile information of each first user of the plurality of first users of the client application; storing the profile information of the plurality of first users and the video content in association with the one or more products in a database, the database also comprising product data associated with respective ones of the one or more products, wherein, for respective ones of the one or more products, the database comprises a connection between the product data associated with the respective product and a profile of one or more users of the client application corresponding to the product; receiving a request for information about a product included in the one or more products, the request corresponding to a user of the client application; determining a first profile of the user in response to the request; In response to the request, determining the one or more second profiles of the one or more second users based on a connection between the product data in the database and one or more second profiles of one or more second users of the client application corresponding to the product; analyzing the first profile of one or more second users of the client application in relation to one or more second profiles of the user to determine one or more video content items included in the plurality of video content items to be provided to the user; generating a response to the request, the response comprising the one or more video content items and at least a portion of the product data about the product and stored by the database; and The response is sent to the user's client device.

12. The system according to claim 11, wherein: The one or more non-transitory computer-readable storage media include additional computer-readable instructions that, when executed by the one or more hardware processors, cause the one or more hardware processors to perform additional operations including: performing an analysis of one or more characteristics of one or more other video content items viewed by the user in relation to one or more characteristics of a video content item in the one or more video content items; as well as Based on the analysis, a level of interest of the user in the video content item is determined.

13. The system according to claim 12, wherein: The one or more non-transitory computer-readable storage media include additional computer-readable instructions that, when executed by the one or more hardware processors, cause the one or more hardware processors to perform additional operations including: determining that the interest level satisfies a threshold interest level; and Based on the interest level satisfying the threshold interest level, a determination is made to include the video content item in the response to the request.

14. The system according to claim 11, wherein: The response to the request includes user interface data corresponding to a user interface capable of being displayed by the client application, the user interface indicating at least a portion of the product data, at least one of the one or more video content items, and a user interface element that can be selected to capture other video content related to the product.

15. The system according to claim 11, wherein: The one or more non-transitory computer-readable storage media include additional computer-readable instructions that, when executed by the one or more hardware processors, cause the one or more hardware processors to perform additional operations including: acquiring video content data from the client device of the user, the video content data comprising a video review of the product captured via the client application; and The video review of the product is stored in association with other video reviews of the product.

16. The system of claim 15, wherein: The one or more non-transitory computer-readable storage media include additional computer-readable instructions that, when executed by the one or more hardware processors, cause the one or more hardware processors to perform additional operations including: receiving, from the client device of the user, an additional request to share the video comment with one or more recipients, the one or more recipients being other users of the client application; as well as Based on the additional request, message content is generated for a recipient among the one or more recipients, the message content including the video comment and accessible via the client application.

17. The system of claim 15, wherein: The one or more non-transitory computer-readable storage media include additional computer-readable instructions that, when executed by the one or more hardware processors, cause the one or more hardware processors to perform additional operations including: The video comment is stored in association with a collection of content corresponding to the user, the collection of content being accessible by one or more social network connections of the user via the client application.

18. A method of generating and accessing video content for a product, comprising: sending, by a client device having one or more processors and memory, a request for information related to a first product to a server system via at least one user interface generated by a client application; receiving, by the client device and in response to the request, information related to the first product; causing, by the client device, display of a first user interface of the client application, the first user interface comprising at least a portion of the information related to the first product and a user interface element selectable to capture video content related to the first product; capturing video content via at least one camera of the client device and based on a selection of the user interface element; The client device sends video data related to the video content to the server system, wherein the video data includes a video review of the first product; sending, by the client device, a request for information related to a second product; receiving, by the client device, a response to the request, the response comprising one or more video content items related to the second product and product data related to the second product; as well as The client device causes a second user interface of the client application to be displayed, wherein the second user interface is dedicated to the second product and includes a first part, a second part, and a user interface element, the first part including the product data related to the second product, the second part including at least one video content item of the one or more video content items related to the second product, and the user interface element can be selected to add video content related to the second product.

19. The method according to claim 18, comprising: displaying, by the client device, an additional user interface, the additional user interface comprising at least an image corresponding to the video data and an additional user interface element, the additional user interface element being selectable to launch a tool of the client application; receiving, by one or more input devices of the client device, input associated with the tool to modify at least a portion of the video content; as well as generating, by the client device and based on the input, a modified version of the video content; and Therein, the video data includes the modified version of the video content.

20. The method according to claim 19, wherein: The modified version of the video content includes at least one of augmented reality content, an overlay of at least a portion of the video content, modified audio of the video content, or modified playback characteristics relative to the video content.

Citation Information

Patent Citations

  • Interactive video distribution system and video player utilizing a client server architecture

    US20190268650A1