Generating and accessing video content for product

By integrating client applications and server systems, it is possible to generate, store and access product-related video content on a single platform, and recommend and augmented reality editing based on user interest levels, solving the problem of multi-platform switching in the existing technology and improving efficiency and user experience.

CN120343347APending Publication Date: 2025-07-18SNAP INC
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
CN202411915332.2
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Priority Date
2020-06-29
Filing Date
2021-06-29
Publication Date
2025-07-18

AI Technical Summary

Technical Problem

Existing systems are inefficient in generating, publishing, and accessing product-related video content, and consumers need to switch between multiple platforms, resulting in wasted time and computing resources.

Method used

Through the integration of client applications and server systems, users can generate, store and access product-related video content on a single platform, and recommend content based on user interest levels, and use augmented reality technology for content editing and sharing.

Benefits of technology

It improves the efficiency of generating and accessing product-related video content, reduces the number of platform switching times, and enhances personalized recommendations and user interactive experience of content.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN120343347A_ABST
    Figure CN120343347A_ABST
Patent Text Reader

Abstract

In one or more implementations, video content generated using a client application may 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 the user may be identified based on the user's levels of interest in the respective video content items. The user's level of interest in the video content item may be based on the user's profile information.
Need to check novelty before this filing date? Find Prior Art

Description

[0001] This application is a divisional application of the patent application No. 202180046028.7, with the invention title of "Generating and Accessing Video Content for Products", which has an application date of June 29, 2021, an international application number of PCT / US2021 / 039656, and entered the Chinese national phase on December 28, 2022.

[0002] Priority Claim

[0003] This patent application claims the benefit of the priority of U.S. Application Serial No. 16 / 915,785, filed on June 29, 2020, the entire content of which is incorporated herein by reference. Technical Field

[0004] The present disclosure relates to generating and accessing video content for products. Background Art

[0005] An application executed by a client device can be used to generate content. For example, a client application 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 a product for sale can be accessed via one or more client applications. Summary of the Invention

[0006] According to one aspect of the present invention, there is provided a method, including: sending, by a user device having one or more processors and a memory, a request for information related to a product to a server system via at least one user interface generated by a user application; receiving, by the user device in response to the request, information related to the product; causing, by the user device, a first user interface of the user application to be displayed, the first user interface being dedicated to the product and having: a first part including at least a part of the information related to the product; a second part including a plurality of video content items related to the product; and a user interface element that can be selected to capture video content related to the product; in response to the selection of the user interface element, causing a second user interface to be displayed, the second user interface including additional user interface elements that can be selected to capture content included in the field of view of at least one camera device of the user device; capturing, by the at least one camera device of the user device based on the selection of the additional user interface element, video content included in the field of view of the at least one camera device; and causing, by the user device, a third user interface to be displayed, the third user interface including one or more user interface elements for editing the video content.

[0007] According to another aspect of the present invention, there is provided an apparatus, comprising: one or more imaging devices; one or more hardware processors; and one or more non-transitory computer-readable storage media, the one or more non-transitory computer-readable storage media including 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 including: sending a request for information related to a product to a server system via at least one user interface generated by a user application; receiving, in response to the request, information related to the product; causing a first user interface of the user application to be displayed, the first user interface being dedicated to the product and having: a first part including at least a part of the information related to the product; a second part including a plurality of video content items related to the product; and a user interface element that can be selected to capture video content related to the product; in response to the selection of the user interface element, causing a second user interface to be displayed, the second user interface including additional user interface elements that can be selected to capture content within the field of view of at least one of the one or more imaging devices; capturing, by the at least one imaging device based on the selection of the additional user interface element, video content within the field of view of the at least one imaging device; and causing a third user interface to be displayed, the third user interface including one or more user interface elements for editing the video content.

[0008] In accordance with another aspect of the present invention, there is provided one or more non-transitory computer-readable storage media including computer-readable instructions that, when executed by one or more hardware processors, cause the one or more hardware processors to perform operations including: sending a request for information related to a product to a server system via at least one user interface generated by a user application; receiving, in response to the request, information related to the product; causing a first user interface of the user application to be displayed, the first user interface being dedicated to the product and having: a first portion including at least a portion of the information related to the product; a second portion including a plurality of video content items related to the product; and a user interface element that can be selected to capture video content related to the product; in response to a selection of the user interface element, causing a second user interface to be displayed, the second user interface including additional user interface elements that can be selected to capture content included in the field of view of at least one imaging device of the user equipment; capturing, by the at least one imaging device of the user equipment based on the selection of the additional user interface elements, video content included in the field of view of the at least one imaging device; and causing a third user interface to be displayed, the third user interface including one or more user interface elements for editing the video content. BRIEF DESCRIPTION OF THE DRAWINGS

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

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

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

[0012] Figure 3 is a schematic diagram showing data that can be stored in a database of a server system, according to one or more example implementations.

[0013] Figure 4 is a schematic diagram showing an example framework for content that can be generated by a client application, according to one or more example implementations.

[0014] Figure 5is a schematic diagram showing an architecture that can obtain product-related content and provide the product-related content to a user of a client application according to one or more example implementations.

[0015] Figure 6 is a flowchart showing 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.

[0016] Figure 7 is a flowchart showing example operations performed by a client device to provide video content related to a product to a server system according to one or more example implementations.

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

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

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

[0020] Figure 11 is a block diagram showing 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.

[0021] Figure 12 is a block diagram showing a representative software architecture that can be used in conjunction with one or more of the hardware architectures described herein according to one or more example implementations. Detailed Description

[0022] Products can be purchased using an online platform. Generally, consumers can access a website or a 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 a product that cannot be obtained via the website or client application that can be used to purchase the product. For example, video content related to using a product or video reviews of a product are generally not accessible from a website page or client application dedicated to that product. Instead, consumers access video content including reviews or information on how to use a product based on the source that created the content (e.g., a social media account) or the website of the source that produced the video content. Consumers can then move to another website or client application to purchase the product.

[0023] In addition, individuals creating content for a product may need to use different websites, client applications, or other technology platforms to create the content and publish the content for access by other individuals. By way of illustration, an individual may use a first website, a first client application, or a first technology platform to capture video content related to the product. The individual may then use a second website, a second client application, or a second technology platform to publish the video content. In one or more examples, the individual may publish a link to content related to the product created using the first website, the first client application, or the first technology platform within the second website, the second client application, or the second technology platform for users of the second website, the second client application, or the second technology platform to access the content related to the product. Accordingly, existing systems, techniques, and methods are inefficient in terms of the time and computing resources used to create, publish, and access information (e.g., video content) about a product and to purchase the product.

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

[0025] In one or more implementations, a user of the client application may use the client application to capture video content related to the product and submit the video content to the server system. In one or more illustrative examples, the video content may include a review of the product. The server system may 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 may enable the video content to be accessed by the users of the client application in relation to other information about the product.

[0026] In addition, the server system can store video content in association with information from the user profile. In this way, video content can be stored in association with the characteristics of the user who created the video content. In various examples, the server system can also identify the characteristics of the users of the client application that views the video content, the characteristics of the users 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 video content and information about one or more users associated with the video content to determine a ranking of video content items related to the product relative to one or more users of the client application. The ranking can indicate the predicted level of interest of individual users in the video content items related to the product. The server system can use the ranking to determine the order in which to present video content related to the product to users who request information about the product.

[0027] Accordingly, the systems, methods, techniques, instruction sequences, and computer program products described herein provide various implementations to effectively enable consumers who may be interested in purchasing a product to access video content related to the product. For example, by providing a dedicated page that can access video content and text content related to the product and includes user interface elements that can be selected to purchase the product, consumers can avoid accessing content from different sources (e.g., different websites or different mobile applications) to obtain information about the product and purchase the product. In addition, by providing a single platform to create and publish video content related to the product, the implementations described herein can achieve efficient production and access of video content for the product, as compared to existing systems that use multiple platforms, client applications, or websites to create and publish video content for the product.

[0028] As mentioned herein, the phrases “augmented reality experience,” “augmented reality content item,” “augmented reality content generator” include or refer to various image processing operations corresponding to image modification, filtering, LENSES, media overlay, transformation, etc., as further described herein.

[0029] Figure 1 is a graphical representation of an architecture 100 for exchanging data (e.g., messages and associated content) over a network. The architecture 100 can include a plurality of client devices 102. The client devices 102 can individually include, but are not limited to, mobile phones, desktop computers, laptop computing devices, portable digital assistants (PDAs), smartphones, 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 can use to access one or more components included in the architecture 100.

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

[0031] One or more users can be a person, a machine, or other devices that interact with a client device (e.g., client device 102). In an example implementation, a user can not be part of the architecture 100 but can interact with one or more components of the architecture 100 via the client device 102 or other devices. In various examples, a user can provide input (e.g., touchscreen input or alphanumeric input) to the client device 102, and the input can be transmitted to other entities in the architecture 100. In such a case, other entities in the architecture 100 can transmit information to the client device 102 in response to the user input for presentation to the user. In this way, a user can use the client device 102 to interact with various entities in the architecture 100.

[0032] Each instance of the client application 104 can communicate and exchange data with at least one of another instance of the client application 104, one or more third - party applications 106, or the server system 108. The data exchanged between instances of the client application 104, between third - party applications 106, and between an instance of the client application 104 and the server system 108 includes 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. Additionally, the data exchanged between the client applications 104, between the 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 an instance of an application executed by the client device 102 to another instance of an application executed by other client devices 102. In one or more illustrative examples, one or more intermediate servers used in the indirect communication between applications can be included in the server system 108.

[0033] The third - party application 106 can be independent of 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 login credentials different from those of the client application 104. That is, the third - party application 106 can maintain a first user account, while 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 exercise, viewing graphic elements (e.g., stickers), communicating with other users, etc. As an example, the third - party application 106 can include a social networking application, a dating application, a ride - sharing or car - sharing application, a shopping application, a trading application, a gaming application, an imaging application, a music application, a video - browsing application, an exercise - tracking application, a health - monitoring application, a graphic - element or sticker - browsing application, or any other suitable application.

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

[0035] Server system 108 supports various services and operations provided to client application 104. Such operations include: sending data to client application 104; receiving data from client application 104; and processing data generated by client application 104. The data may include, by way of example, message content, media content, client device information, geographical location information, media annotations and overlays, message content persistence conditions, social network information, and live event information. Data exchange within architecture 100 is invoked and controlled via functionality available through a user interface (UI) of client application 104.

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

[0037] The server system 108 includes an Application Programming Interface (API) server 112 that is coupled to an application server 114 and provides a programming interface to the 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 the 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, raw 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 the client device 102), context data associated with media content items, context data associated with user devices (e.g., computing or client device 102), media overlays, media overlay intelligent components or intelligent elements, user data, user device information, media content (e.g., video and images), media content data (e.g., data associated with video and images), computing device context data, serialized data, session data items, user device location data, mapping information, interactive message usage data, interactive message metric data, etc. The one or more databases 118 may also store information related to third-party servers, client device 102, client application 104, users, third-party applications 106, etc.

[0038] 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 Programming Interface (API) server 112 provides a set of interfaces (e.g., routines and protocols) that can be invoked or queried by the client application 104 to invoke the functions of the application server 114. The Application Programming Interface (API) server 112 exposes various functions supported by the application server 114, including account registration, login functionality, sending a message 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 making them available for access by another client application 104, setting a collection of media content (e.g., a gallery, a story, a message collection, or a media collection), retrieving a list of friends of the user of the client device 102, retrieving such collections, retrieving messages and content, adding and deleting friends to and from the social graph, locating friends within the social graph, and opening application events (e.g., related to the client application 104).

[0039] 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 processes incoming network requests via the Hypertext Transfer Protocol (HTTP) and several other related protocols.

[0040] 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 effects options system 128, and a product listing system 130. The messaging application system 122 implements a variety of message processing techniques 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 may use email, instant messaging (IM), short message service (SMS), text, fax, or voice (e.g., Voice over Internet Protocol (VoIP)) messages to transmit messages via a wired network (e.g., the Internet), 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 may 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 other processor- and memory-intensive processing of data, such processing may also be performed on the server side by the messaging application system 122.

[0041] 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 may access one or more data storage devices (e.g., the database 118) to retrieve stored data for use in processing the media content and store the results of the processed media content.

[0042] 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 this end, 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", and also include identifying the interests of a particular user and other entities. The social networking system 126 can access location information associated with each of a user's friends or other social network connections to determine where they live or are currently geographically located. Additionally, the social networking system 126 can maintain a location profile for each of the user's friends that indicates the geographical locations where the user's friends live.

[0043] 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., the manufacturer of the product, the retailer of the product, or the wholesaler of the product). The product data 130 can also include user-generated product content 134 generated by individual users of the client application 104 for one or more products to be purchased via the client application 104.

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

[0045] 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 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 product corresponding to the product 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 directly obtained by the server system 108 from at least one of the manufacturer, retailer, or wholesaler in one or more databases 118.

[0046] The user-generated product content 134 can 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 can include images captured using the client application 104 that include a product (e.g., a product for sale via the client application 104). Additionally, the user-generated product content 134 can include images captured by the client application 104 that include a product, where the images have one or more media overlays added to the images using the tools of the client application 104. Additionally, the user-generated product content 134 can include videos captured using the client application 104, where the videos include a product, e.g., a product for purchase via the client application 104. In one or more illustrative examples, the user-generated product content 134 can include a video review 136 of a product, the video review 136 of the product being captured using the client application 104 and being for a product for purchase via the client application 104.

[0047] 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 minimal information about other products available for purchase via the client application 104.

[0048] In addition to using the client application 104 to generate content that can be stored as user-generated product content 134, a user of the client application 104 can use at least one of the messaging or social networking functions of the client application 104 to share product-related content. For example, a user of the client application 104 can capture a video review 136 related to a 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. Additionally, 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. Further, 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. By way of illustration, 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 networking page of the creator of the video review 136.

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

[0050] In various examples, after video content is captured using client application 104, multiple user interface elements may 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 may be implemented by a user of client application 104 to modify the video content. For example, one or more tools may be used to add augmented reality content, such as one or more overlays, to the video content. In other examples, one or more tools may be used to modify characteristics of the video content, such as the playback rate of the video content or the audio characteristics of the video content.

[0051] The multiple user interface elements displayed relative to the video content after the video content is captured 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 invoke the messaging function of client application 104 to generate a message that includes the video content and indicates one or more recipients of the message. Message data that includes the video content may be sent to server system 108, and messaging application system 122 may send the corresponding message to each of the one or more recipients indicated in the message data. Additionally, selection of the second additional user interface element may invoke the social networking function of client application 104, which causes client application 104 to send the video content to server system 108. Social networking system 126 may then notify one or more social network contacts of the creator of the video content that the video content is available for viewing using the social networking function of client application 104.

[0052] In various examples, the user interface presented by client application 104 that includes information about a product may also include one or more user interface elements that can be selected to share information about the product by sending a message indicating one or more user-attached user interface elements to one or more recipients, and the one or more user-attached user interface elements can be selected to access one or more pages that include information about the product. Additionally, the user interface presented by client application 104 that includes information about a product may include one or more user interface elements that can be selected to make a message about the product accessible to one or more contacts of the user of client application 104.

[0053] Product content management system 128 may also determine an order in which video content related to a product is presented to an individual user of client application 104. In one or more implementations, server system 108 may receive a request from an instance of client application 104 executed by client device 102 to obtain information about a product. In response to the request, product content management system 128 may retrieve a portion of system product content 132 corresponding to the product and a portion of user-generated product content 134 corresponding to the product. Product content management system 128 may determine an interest level of a content item included in user-generated product content 134 relative to the interests of the user of client application 104 that submitted the request. In various examples, product content management system 128 may analyze a relationship between the characteristics of the user of client application 104 that submitted the request and the characteristics of other users of client application 104 that created at least a portion of the content item included in user-generated product content 134 to determine the user's interest level in various content items associated with the product. Additionally, product content management system 128 may analyze a relationship between the characteristics of the user of client application 104 that submitted the request and the characteristics of other users of client application 104 that consumed (e.g., watched, listened to) various content items associated with the product to determine the user's interest level in the various content items. Based on the interest levels of the user of client application 104 that requested information about the product in the content items associated with the product, product content management system 128 may rank the content items for the user. Content items with a relatively high rank, such as video reviews 136, may be presented to the user before content items with a relatively low rank. In various examples, content items with a relatively high rank may be presented closer to the top of the user interface page that includes information about the product than content items with a relatively low rank that may be presented in a lower position on the page.

[0054] Figure 2FIG. is a block diagram showing further details regarding server system 108 according to some examples. Specifically, server system 108 is shown as including client application 104 and application server 114. Server system 108 includes a number of subsystems that are supported on the client side by client application 104 and on the server side by application server 114. These subsystems include, for example, transient timer system 202, collection management system 204, enhancement system 206, map system 208, game system 210, and product content management system 128.

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

[0056] 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, video, text, and audio) can be organized into "event galleries" or "event stories". Such collections can be made available for a specified period of time (e.g., the duration of the event to which the content pertains). For example, content related to a concert can be made available as a "story" for the duration of that concert. Collection management system 204 can also be responsible for posting an icon to the user interface of client application 104 that provides notification of the existence of a particular collection.

[0057] In addition, 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, curation interface 212 enables an event organizer to curate a collection of content related to a particular event (e.g., delete inappropriate content or redundant messages). In addition, 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, collection management system 204 operates to automatically pay such users for the use of their content.

[0058] 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 to be processed by the server system 108. The enhancement system 206 operably supplies a media overlay or enhancement (e.g., an image filter) to the client application 104 based on the geographical location of the client device 102. In another example, the enhancement system 206 operably supplies a media overlay 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 may include audio and visual content as well as visual effects. Examples of audio and visual content include pictures, text, logos, animations, and sound effects. Examples of visual effects include color overlays. The audio and visual content or visual effects may be applied to a media content item (e.g., a photo) at the client device 102. For example, the media overlay may include text or an image 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), a name of a live event, or a business name overlay (e.g., Beach Café). In another example, the enhancement system 206 uses the geographical location of the client device 102 to identify a media overlay that includes the name of a business at the geographical location of the client device 102. The media overlay may include other markers associated with the business. The media overlay may be stored in the database 118 and accessed via the database server 116.

[0059] In some examples, the enhancement system 206 provides a user-based publishing platform that enables a user to select a geographical location on a map and upload content associated with the selected geographical location. The user may also specify the circumstances under which a particular media overlay should be provided to other users. The enhancement system 206 generates a media overlay that includes the uploaded content and associates the uploaded content with the selected geographical location.

[0060] In other examples, the enhancement system 206 provides a business-based publishing platform that enables a business to select a particular media overlay associated with a geographical location via a bidding process. For example, the enhancement system 206 associates the media overlay of the highest bidding business with the corresponding geographical location for a predefined amount of time.

[0061] The map system 208 provides various geolocation functions and supports the presentation of map-based media content and messages by the client application 104. For example, the map system 208 enables the display (e.g., stored in Figure 3User icons or avatars in the profile data 308) to indicate the current or past locations of the user's "friends" and the media content generated by these friends (e.g., a collection of messages including photos and videos) in the context of the map. For example, on the map interface of the client application 104, messages posted by the user from a specific geolocation to the server system 108 can be displayed to the user's "friends" within the context of that specific location on the map. Additionally, 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 appropriate status avatars), and this location and status information is similarly displayed to the selected users within the context of the map interface of the client application 104.

[0062] The game system 210 provides various game functions within the context of the client application 104. The client application 104 provides a game interface that provides a list of available games that can be launched by the 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 specific user to invite such other users to participate in playing a specific game by sending an invitation to the other users from the client application 104. The client application 104 also supports both voice messaging and text messaging (e.g., chat) within the game context, provides a leaderboard for the game, and also supports providing in-game rewards (e.g., coins and items).

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

[0064] Figure 3 is a schematic diagram showing a data structure 300 that can be stored in the database 118 of the server system 108 according to one or more example implementations. Although the content of the database 118 is shown as including multiple tables, it should be understood that the data can be stored in other types of data structures (e.g., as an object-oriented database).

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

[0066] The entity table 304 stores entity data and is linked (e.g., to a reference ground) to the entity graph 306 and the profile data 308. Entities that maintain their records within the entity table 304 can include individuals, corporate entities, organizations, objects, locations, events, etc. Any entity for which the server system 108 stores data about it can be an identified entity, regardless of the entity type. Each entity is set with a unique identifier and an entity type identifier (not shown).

[0067] The entity graph 306 stores information about the relationships and associations between entities. By way of example only, such relationships can be social relationships based on interests or activities, professional relationships (e.g., working in a common company or organization).

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

[0069] In the case where the entity is a group, in addition to the group name, members, and various settings (e.g., notifications) of the related group, the profile data 308 of the group can similarly include one or more avatar representations associated with the group.

[0070] The database 118 also stores enhancement data, such as overlays or filters, in the enhancement table 310. The enhancement data is associated with videos (the data of the videos is stored in the video table 314) and images (the data of the images is stored in the image table 316) and is applied to the videos and images.

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

[0072] 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 by the client device 102 during the message creation process. Examples of data filters include the current temperature at a specific location, the current speed at which the sending user is traveling, the battery life of the client device 102, or the current time.

[0073] Other enhanced data that can be stored in the image table 316 includes augmented reality content items (e.g., corresponding to app lenses or augmented reality experiences). Augmented reality content items can be live special effects and sounds that can be added to an image or video.

[0074] As described above, the enhanced 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., video or image). This includes live modifications that modify the image when it is captured using the device sensors of the client device 102 (e.g., one or more camera devices) and then display the image on the screen of the client device 102 in the modified state. 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, the user can use a single video clip with multiple augmented reality content items to see how different augmented reality content items would modify the stored clip. For example, by selecting different augmented reality content items for the content, multiple augmented reality content items applying different pseudo-random motion models can be applied to the same content. Similarly, live video capture can be used with the shown modifications to display how the video image currently captured by the sensors of the client device 102 would modify the captured data. Such data can be displayed only on the screen without being stored in memory, or the content captured by the device sensors can be recorded and stored in memory with or without modification (or both). In some systems, a preview function can display how different augmented reality content items would appear 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 simultaneously.

[0075] Thus, using data of augmented reality content items and various systems or other such transformation systems that modify content using the data can involve detection of objects (e.g., face, hand, body, cat, dog, surface, object, etc.) in a video frame, tracking these objects as they leave, enter, and move around in the field of view, and modifying or transforming them while tracking them. In various examples, different methods can be used to implement such transformations. Some examples can involve generating a three-dimensional mesh model of one or more objects and using transformations and animated textures of the model within the video to implement the transformation. In other examples, tracking of points on an object can be used to place an image or texture (which can be two-dimensional or three-dimensional) at the tracked locations. In further examples, neural network analysis of video frames can be used to place an image, model, or texture in the content (e.g., an image or video frame). Thus, augmented reality content items refer both to images, models, and textures for creating transformations in content and to additional modeling and analysis information required to implement such transformations through object detection, tracking, and placement.

[0076] Live video processing can be performed using any type of video data (e.g., video stream, video file, 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 a device, or can use the sensors of the device to generate a video stream. Additionally, computer animation models can be used to process any object, such as the face of a person and various parts of a human body, an animal, or a non-living object such as a chair, a car, or other object.

[0077] In some examples, when a specific modification is selected along with the content to be transformed, the element to be transformed is identified by the computing device and then detected and tracked if the element to be transformed is present in a frame of the video. The elements of the object are 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 a transformation of a frame that mainly refers to changing the form of the elements of an object, the feature points of each element of the object are calculated (e.g., using an 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. This grid is used for subsequent stages of tracking the elements of the object in the video stream. During the tracking process, the mentioned grid for each element is aligned with the position of each element. Then, additional points are generated on the grid. A first set of first points is generated for each element based on the modification request, and a second set of points is generated for each element based on the first set of points and the modification request. Then, the frame of the video stream can be transformed by modifying the elements of the object based on the first set of points, the second set of points, and the grid. In such a method, the background of the modified object can also be changed or distorted by tracking and modifying the background.

[0078] In some examples, a transformation that uses the elements of an object to change some regions 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 regions are generated based on these points. Then, the elements of the object are tracked by aligning the regions of each element with the position of each of at least one element, and the attributes of the regions can be modified based on the modification request, thereby transforming the frame of the video stream. Depending on the specific modification request, the attributes of the mentioned regions can be transformed in different ways. Such modifications can involve: changing the color of the region; removing at least some partial regions from the frame of the video stream; including one or more new objects in the region based on the modification request; and modifying or distorting the regions or the elements of the object. In various implementations, any combination of such modifications or other similar modifications can be used. For some models to be animated, some feature points can be selected as control points for the entire state space to be used to determine the options for animating the model.

[0079] In some examples of computer animation models that use face detection to transform image data, a specific face detection algorithm (e.g., Viola-Jones) is used to detect faces in the image. Then, the active shape model (ASM) algorithm is applied to the face region of the image to detect face feature reference points.

[0080] Other methods and algorithms applicable to face detection can be used. For example, in some implementations, landmarks are used to locate features, which represent distinguishable points that exist in most of the images under consideration. For example, for face landmarks, the location of the left eye pupil can be used. If the initial landmark is not recognizable (e.g., if a person has an eye patch), secondary landmarks can be used. Such landmark recognition processes can be used for any such object. In some examples, a set of landmarks forms a shape. The shape can be represented as a vector using the coordinates of the points in the shape. One shape is aligned with 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.

[0081] In various examples, the search for landmarks starts from the average shape aligned with the position and size of the face determined by the full-face detector. Then, such a search repeats the following steps: a tentative shape is proposed by adjusting the positioning of the shape points through template matching of the image texture around each point, and then the tentative shape is made to conform to the global shape model until convergence occurs. In one or more systems, individual template matching 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 resolution to fine resolution.

[0082] 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, computation time, and power consumption. Complex image manipulations can include size and shape changes, emotion transformation (e.g., changing a face from a frown to a smile), state transformation (e.g., aging an object, reducing apparent age, changing gender), style transformation, application of graphic elements, and any other suitable image or video manipulations implemented by a convolutional neural network that has been configured to execute efficiently on the client device 102.

[0083] A computer animation model for transforming image data can be used by a system in which a user can use a client device 102 having a neural network operating as part of a client application 104 operating on the client device 102 to capture an image or video stream of the user (e.g., a selfie). A 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 as associated with the interfaces 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 a modification operation. Once the modification icon is selected, the transformation system initiates a process of transforming the user's image to reflect the selected modification icon (e.g., generating a smiling 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 results live or near-live. In addition, when a video stream is being captured, the modification can be persistent and the selected modification icon remains toggled. A neural network of machine learning can be used to implement such modifications.

[0084] A graphical user interface presenting the modifications performed by the transformation system can provide additional interaction 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, after an initial selection of a modification icon, the modification can be persistent. The user can open or close the modification 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 where multiple faces are modified by the transformation system, the user can globally open or close the modification by tapping or selecting an individual face modified and displayed within the graphical user interface. In some implementations, each face within a group of multiple faces can be modified individually, or such modifications can be toggled individually by clicking or selecting each individual face or a series of individual faces displayed within the graphical user interface.

[0085] The story table 312 stores data about a collection of messages and associated image, video, or audio data, where the messages and associated image, video, or audio data 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 already been created and sent / broadcast by that user. To this end, the user interface of the client application 104 can include icons that a user can select to enable the sending user to add specific content to his or her personal story.

[0086] The collection can also constitute a "Live Story", which is a collection of content from multiple users created manually, automatically, or using a combination of manual and automatic techniques. For example, a "Live Story" can constitute a curated stream of user-submitted content from different locations and events. Options to contribute content to a particular Live Story can be presented to users whose client devices have location services enabled and are at a co-location event at a particular time, e.g., via the user interface of the client application 104. Live Stories can be identified to users by the client application 104 based on his or her location. The end result is a "Live Story" told from a community perspective.

[0087] Another type of content collection is called a "Location Story", which enables users whose client devices 102 are located within a particular geographical location (e.g., on a college or university campus) to contribute to a particular collection. In some examples, contributing to a location story 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).

[0088] As mentioned above, the video table 314 stores video data, which in one example is associated with messages whose records are maintained in the message table 302. Similarly, the image table 316 stores image data, which is associated with messages 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.

[0089] The database 118 can also store a product data table 318. The product data table 318 can include information about Figure 1The described product data 130. In one or more implementations, the product data sheet 318 may include one or more columns that include 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 sheet 318 may include one or more columns that include corresponding identifiers of users of the client application 104 who create content associated with the product to be purchased via the client application 104. In this way, characteristics of users who create content related to the product may be accessible and used to determine the level of interest of other users who request information about the product.

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

[0091] · Content identifier 402: A unique identifier that identifies the content 400.

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

[0093] · Content image payload 406: Image data captured by a camera device 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 an image table 316. · Content video payload 408: Video data captured by a camera device 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 a video table 314.

[0094] · Content Audio Payload 410: Audio data that is captured by a microphone or retrieved from a memory component of the client device 102 and is included in the content 400.

[0095] · Content Enhancement Data 412: Enhancement data (e.g., filters, stickers, or other annotations or enhancements) that represents enhancements to be applied to the content image payload 406, content video payload 408, or content audio payload 410 of the content 400. Enhancement data for the content 400 that is sent or received can be stored in the enhancement table 310.

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

[0097] · Content Geolocation Parameter 416: Geolocation data (e.g., latitude coordinates and longitude coordinates) associated with the content payload of a message. Values for multiple content geolocation parameters 416 can be included in the payload, with each of these parameter values associated with a content item included in the content (e.g., a specific image within the content image payload 406 or a specific video within the content video payload 408).

[0098] · Content Story Identifier 418: An identifier value that identifies one or more content collections (e.g., "stories" identified in the story table 312) associated with a specific item in the content image payload 406 of the content 400. For example, identifier values can be used to associate each of multiple images within the content image payload 406 with multiple content collections.

[0099] · Content Tags 420: Each content 400 can be tagged with multiple tags, with each tag in the multiple tags indicating a theme of the content included in the content payload. For example, in the case where a specific image included in the content image payload 406 depicts an animal (e.g., a lion), tag values can be included in the content tags 420 that indicate the relevant animal. Tag values can be generated manually based on user input or can be generated automatically using, for example, image recognition.

[0100] · Content Sender Identifier 422: An identifier (e.g., 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.

[0101] · Content recipient identifier 424: An identifier (e.g., a messaging system identifier, an email address, or a device identifier) that indicates the user of the client device 102 to which the content 400 is addressed.

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

[0103] Data (e.g., values) for the various components of the content 400 can correspond to pointers to locations in a table in which the data is stored. For example, the image values in the content image payload 406 can be pointers to locations (or addresses) within the image table 316. Similarly, the values within the content video payload 408 can point to data stored within the video table 314, the values stored within the content enhancement 412 can point to data stored within the enhancement table 310, the values stored within the content story identifier 418 can point to data stored within the story table 312, and the values stored within the content sender identifier 422 and the content recipient identifier 424 can point to user records stored within the entity table 304. Additionally, the value of the product identifier 426 can point to data stored within a data structure that includes the product data table 318.

[0104] Figure 5 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. Additionally, 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. Additionally, 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.

[0105] Product data 130 may include data regarding a plurality of products for purchase using client application 104. By way of illustration, 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 of 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, the manufacturer of the first product 508, the 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. Additionally, 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.

[0106] Product data 130 may further 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 the user profile of at least one of the user of the client application 104 that purchases the first product 508 or the user of the client application 104 that provides content related to the first product 508. In addition, the Nth product user profile 516 may include information corresponding to the user profile of at least one of the user of the client application 104 that purchases the Nth product 512 or the user of the client application 104 that provides 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 such that the information included in the first product user profile 514 can be accessed in connection with the information about the first product 508. By way of illustration, in the case where the product content management system 128 determines the interest level of the user of the client application 104 in product-related content (e.g., video content), the product content management system 128 may analyze the information included in the user profile corresponding to the product.

[0107] 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. A database link can be used to implement the relationship between the personal user profile and the product data. Additionally, the relationship between the personal user profile and the product data can be implemented by storing the identifiers of one or more products in one or more columns of a database table that stores information about the users of the client application 104. The connection between the personal user profile and the product data can also be implemented by storing the identifier of the user of the client application in one or more columns of a database table that stores information about the products purchased via the client application 104.

[0108] The user profile 504 can include profile information of the personal users of the client application 104. For example, the user profile 504 can include the first user profile 518 up to the Nth user profile 520. Each of the user profiles 504 can include information related to one or more identifiers of the users of the client application 104 (e.g., name, account identifier, login name), demographic information of the users of the client application 104 (e.g., age, gender, occupation), location information of the users of the client application 104 (e.g., Global Positioning System (GPS) data, city of residence, state of residence, country of residence), contacts of the users of the client application 104 (e.g., friends, followers, users being followed), viewing history indicating the content viewed by the user using the client application 104, sharing history indicating the content shared by the user using the client application 104, purchase history indicating the products purchased by the user using the client application 104, one or more combinations thereof, etc.

[0109] The personal user profile 504 can be associated with the profiles of the contacts of the personal user. For illustration, the first user profile 518 can be associated with the first user contact profile 522, and the Nth user profile 520 can be associated with the Nth user contact profile 524. The relationships between the respective user profiles 504 can be indicated by the entity graph 306 related to 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 can be implemented by storing the identifiers of the user contacts in one or more columns of a database table that stores information about the personal users of the client application 104. In various examples, the personal user profile 504 can be connected to the user profiles of the contacts of the personal user to provide additional data for the product content management system 128 for use by the product content management system 128 in determining the level of interest of the users of the client application 104 when viewing product-related content.

[0110] In one or more illustrative examples, user 502 may submit a product data request 526 to server system 108 using client application 104. The 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, the product data request 526 may be submitted to server system 108 in response to 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 the user interface displayed by client application 104, the user interface element indicating an identifier of the first product 508, such as the name of the first product 508. The user interface element indicating the identifier of the first product 508 may be displayed in connection with an advertisement associated with the first product 508. In other examples, the user interface element indicating the identifier of the first product 508 may be displayed relative to the 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 the first user 502, where the message includes a user interface element indicating the identifier of the first product 508. Additionally, another user of client application 104 may create social network content, such as at least one of text content, image content, or video content, including a user interface element indicating the identifier of the first product 508, and the social network content may be accessible to the first user 502 based on the first user 502 having a social network connection with the other user. In yet another example, the user interface element indicating the identifier of the first product 508 may be included in a results list in response to a search by user 502 for products related to one or more search criteria (e.g., one or more keywords provided by user 502 via client application 104). In one or more implementations, the product data request 526 may include an identifier of the product for which user 502 is requesting information.

[0111] 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. Accordingly, the product content management system 128 can send product information 528 to the client device 102, where 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.

[0112] In one or more implementations, the product content management system 128 can 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 can analyze information related to the user of the client application 104 that requests information about a 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 corresponding video content item can be based on a similarity metric between the user of the client application 104 that requests information about the product and the corresponding user of the client application 104 that generated the video content item. The similarity metric between the user of the client application 104 that requests information about the product and other users of the client application 104 that generated video content related to the product can be determined by analyzing the profile of the user of the client application 104 that requests information about the product relative to the profiles of other users of the client application 104 that produced the video content.

[0113] In various examples, the interest level of a user of the client application 104 in viewing video content related to a product available for purchase via the client application 104 can be based on a similarity metric between the user of the client application 104 requesting information about the product and users of the client application 104 who 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 requesting information about the product and other users of the client application 104 who have generated video content related to the product by analyzing the profile of the user of the client application 104 requesting information about the product relative to the profiles of other users of the client application 104. In one or more examples, the product content management system 128 can identify users of the client application 104 who meet at least a threshold interest level in the product, and analyze the profiles of the users who meet at least the threshold interest level in the product with respect to the profile of the user of the client application 104 requesting information about the product. The product content management system 128 can determine the interest level of the corresponding user of the client application 104 in the product or in viewing video content related to the product based on one of the following: the user's purchase of the product, the user's contacts' purchase of the product, the amount of time the user has viewed video content related to the product, the amount of time the user has viewed video content related to other products having features of the same or similar category of products, or the amount of time video content related to other products having features of the same or similar category of products has been viewed by the user's contacts, the user's message content related to the product, or the user's social network content related to the product.

[0114] In one or more illustrative examples, the product content management system 128 can determine to include video content related to the first product 508 in the product information 528 by analyzing the profile of the user 502 relative to the profile of at least one of other users of the client application 104 who created video content related to the first product 508 or who viewed video content related to the first product 508. By way of illustration, the first user profile 518 can correspond to the user profile of the user 502, and the Nth user profile 520 can correspond to other users of the client application 104 who have generated or viewed at least one of the video content related to the first product 508. In these scenarios, the product content management system 128 can perform an analysis of the relationship between the first user profile 518 and the Nth user profile 520 to determine the interest level of the user 502 in the video content related to other users of the client application 104.

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

[0116] In other examples, the product content management system 128 may analyze the relationship between a first amount of time that the first user 502 views video content related to products included in the same category or a similar category as the first product 508 and a second amount of time that other users view video content related to products included in the same category or a similar category as the first product 508. In such cases, the product content management system 128 may determine a relatively high similarity metric between the user 502 and other users when 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 when the first amount of time is within a second threshold amount of time (e.g., 3 hours) of the second amount of time, where the second threshold amount of time is greater than the first threshold amount of time. Other characteristics that the product content management system 128 may analyze to determine the similarity metric between the user 502 and other users may include at least one of age, gender, occupation, or product purchase history.

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

[0118] In one or more implementations, at least a portion of the first product user profile 514 that has viewed video content related to the first product 508 may also be included in the first user contact profile 522. Thus, there may be an overlap among other users of the client application 104 who are contacts of the first user 502 and users of the client application 104 who have 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 who are not included in the contacts of the user 502. In this way, when presenting video content related to the first product 508 to the user 502 via the client application 104, the product content management system 128 may prioritize the video content viewed by users of the client application 104 who are connected to the user 502. The product content management system 128 may also prioritize video content created by the contacts of the user 502 (e.g., friends of the user 502) when presenting video content related to the first product 508 to the user 502. In various examples, when determining that video content related to the first product 508 is presented to the user 502 via the client application 104, the product content management system 128 may increase the weight of at least one of the video content related to the first product 508 viewed by the contacts of the user 502 or created by the contacts of the user 502 relative to the weight of the video content viewed or created by other users of the client application 104 who are not connected to the user 502. In one or more examples, the amount of increase in the weight of the video content related to the first product 508 may be based on the degree of separation between the user 502 and other users of the client application 104 who have viewed or created at least one of the video content related to the first product 508. By way of illustration, video content related to the first product 508 viewed or created by the direct friends of the user 502 may be given a higher weight and be more likely to be presented to the user 502 than video content related to the first product 508 viewed or created by the friends of the friends of the user 502.

[0119] The product content management system 128 can also determine the interest level of user 502 in video content related to the first product 508 based on the relationship between the characteristics of the video content and the characteristics of the video content previously viewed by user 502. Examples of the characteristics of the video content that can be analyzed by the product content management system 128 can include the creator of the video content, the individuals included in the video content, the category of the video content, the date of publication of the video content, one or more other products included in the video content, the location associated with the video content, one or more combinations thereof, and the like. For example, the product content management system 128 can determine that the interest level of user 502 in a video content item related to the first product 508 can be relatively high in the case where user 502 has viewed other video content items generated by the creator compared to the video content items generated by the creator for which user 502 has not viewed the video content. In other examples, the product content management system 128 can determine that the interest level of user 502 in a video content item related to the first product 508 is relatively high in the case where the contacts of user 502 have viewed other video content items generated by the creator of the video content item compared to the other video content items generated by the creator for which the contacts of user 502 have not viewed the other video content items.

[0120] Based on the respective interest levels of user 502 in multiple content items related to the first product 508, the product content management system 128 can determine the ranking of the video content item relative to user 502. In one or more examples, the product content management system 128 can determine that a video content item related to the first product 508 having a relatively high interest level relative to user 502 can have a higher ranking compared to a video content item related to the first product 508 having a relatively low interest level relative to user 502. In one or more implementations, the product content management system 128 can determine to include the video content in the product information 528 based on the ranking of the video content item related to the first product 508 relative to user 502. In various examples, the product content management system 128 can 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 can also determine the order in which to present the video content to user 502 via one or more user interfaces of the client application 104 based on the ranking of the respective video content items. In one or more implementations, the order in which the video content is presented to user 502 can be at least partially based on whether the video content is content created or viewed by other users of the client application 104 who are in contact with user 502 (e.g., friends of user 502) or other users of the client application 104 in whom user 502 is interested.

[0121] In various implementations, a user of the client application 104 can generate video content related to a product for purchase via the client application 104. In one or more illustrative examples, the user 502 can generate video content related to a product 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 product 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 camera devices of the client device 102 to be activated and enabled for video capture using the one or more camera devices. In one or more illustrative examples, the user 502 can use the client application 104 to create a video review of the first product 508.

[0122] Video content created by 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 video captured by one or more input devices of the client device 102. The product item video content 530 can also include content created 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 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 privacy settings. The privacy settings can indicate the audience for one or more video content items created by the user 502. By way of illustration, the product item video content 530 can indicate that one or more video content items created by the user 502 can be accessed by contacts of the user 502 associated with the client application 104 (e.g., friends of the user 502), but not by other users of the client application 104 who are not contacts of the user 502. In addition, the product item video content 530 can indicate that one or more video content items created by the user 502 can be accessed by users of the client application 104 other than contacts of the user 502. In this way, the user 502 can specify a relatively narrow audience for one or more video content items created by the user 502, such as the direct friends of the user 502 associated with the client application 104, or a broader audience that includes more users of the client application 104 than the contacts of the user 502.

[0123] In response to the server system 108 receiving the product item video content 530, the product content management system 128 may determine an identifier of a product associated with the video content included in the product item video content 530. The 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, the product content management system 128 may determine the video content included in the product item video content 530 corresponding to the first product 508 and store the video content in the first product data 506. The product content management system 128 may also store an identifier of the user 502 in the first product data 506 such that the user 502 can be identified as a user of the client application 104 that created the video content related to the first product 508. In addition, the product content management system 128 may determine an identifier of the creator of the video content included in the product item video content 530, such as the identifier of the user 502. In these cases, the product content management system 128 may indicate in the first user profile 518 that the first user 502 created the video content for the first product 508. In various examples, the product content management system 128 may also store profile information of the user 502 in the first product data 506. The product content management system 128 may also store an indicator of the privacy level for the video content included in the product item video content 530.

[0124] Figure 6 and Figure 7 illustrates a process flow diagram for accessing and generating video content of a product created using the client application 104 and available for purchase via the client application 104. These processes are implemented as computer-readable instructions to be executed by one or more processors such 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. Thus, in some cases, the processes are described below by way of example. However, in other implementations, at least some of the operations of the processes described with respect to Figure 6 and Figure 7 may be deployed on various other hardware configurations. Thus, with respect to Figure 6 and Figure 7The described processing is not intended to be limited to the server system 108 or the client device 102 and can be implemented in whole or in part by one or more additional components. Although the described flowcharts may show operations as sequential processing, many of the operations can be performed in parallel or simultaneously. Additionally, the order of the operations can be rearranged. The processing terminates when its operations are complete. The processing can correspond to a method, procedure, algorithm, etc. The operations of the method can be performed in whole or in part, can be combined with some or all of the operations in other methods, and can be performed by any number of different systems such as the systems described herein or any part thereof such as a processor included in any system.

[0125] Figure 6 FIG. is a flowchart showing example operations of a process 600 performed by a server system 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. At operation 602, the process 600 may include obtaining video content from client devices of multiple users of a 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 video reviews of one or more products. By way of illustration, the client application may display a corresponding user interface that includes information about multiple products and also includes user interface elements that can be selected to initiate a financial transaction for a user of the client application to purchase a 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. Additionally, the product information corresponding to the product may include video content related to the product such as a video review, instructions related to product use, assembly instructions related to the product, or a product use demonstration. In one or more illustrative examples, one or more products may include at least one of cosmetics or beauty products.

[0126] In addition, the processing 600 may include: at operation 604, identifying profile information of multiple users of a client application that submits video content corresponding to a product. In one or more examples, individual users of the client application may be associated with profiles that include information about the respective users. 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, the processing 600 may include: storing the video content and the profile information of the multiple users in a database in association with the product. By way of 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 the product corresponding to the video content, such as an identifier of the 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.

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

[0128] The processing 600 may further include: at operation 610, analyzing the user's profile information in relation to the respective 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 level of interest in video content items related to the product. In various examples, the level of interest may refer to the amount of user activity or engagement with respect to a particular product or product segment. In one or more examples, the user may have a relatively high level of interest in video content items related to products viewed by other users of the client application, where these other users have characteristics similar to those of the user. For example, a comparison of the values of one or more characteristics of the user and one or more other users of the client application may be performed to determine the level of similarity between the user and each other user of the client application. In one or more illustrative examples, users who live in the same location, have a similar age, purchase similar products, have similar interests (e.g., based on previous media content viewing history, web browsing history), have a similar occupation, or a combination of one or more thereof may have a relatively high level of interest in the requesting user compared to other users who do not share characteristics with the user.

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

[0130] The level of a user's interest in video content items related to a product can also be based on the level of similarity between video content items previously viewed by the user and the product-related video content items. Additionally, the level of a user's interest in product-related video content items can be based on video content items previously viewed by the user's contacts. By way of illustration, the level of a user's interest in product-related video content items previously viewed by one or more of the user's contacts may be of a higher level of interest to the user compared to product-related video content items not viewed by the user's contacts. Additionally, the user may have a higher level of interest in video content items related to the user created by the user's contacts than product-related video content items not created by the user's contacts. The level of a user's interest in one or more video content items related to a product can indicate the corresponding probability that the user will choose to view the one or more video content items.

[0131] In one or more examples, the level of a user's interest in product-related video content items can be used to rank the video content items. In various examples, video content items with a relatively high level of interest can have a higher rank. The rank of a video content item can indicate the order in which the video content item is presented to the user in at least one user interface generated by the client application that includes information about the product. For example, product-related video content items with a relatively high rank can be presented in the user interface before video content items with a relatively low rank. The rank of a video content item can also be based on the level of expertise or experience of the video content item creator in the field related to the product. In various examples, video content items created by users of the client application who have a high level of expertise or experience in the field related to the product (e.g., cosmetics or beauty products) can have a higher rank than video content items created by users of the client application who have a low level of expertise or experience in that field. Additionally, the rank of a content item can also be based on the number of followers the video content item creator has acquired or at least one of the video content item creator having a public image or a public role related to the product.

[0132] In one or more implementations, at least one of one or more machine learning techniques or one or more statistical techniques can be used to perform an analysis of the user profile in relation to the respective profiles of multiple other users of the client application. In one or more illustrative examples, the analysis can be performed by determining the amount of similarity between the user and one or more other users based on word embedding techniques. 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 the respective distances of the user within the network relative to each of the multiple other users.

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

[0134] Figure 7 FIG. 7 is a flow diagram of example operations of process 700 for providing product-related video content to a server system by a client device according to one or more example implementations. Process 700 may include: at operation 702, sending, via at least one user interface generated by a client application, a request for information related to a product to the server system. 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 search result list that corresponds to one or more keywords included in a search request. In additional examples, the request may be sent based on a selection of a user interface element related to the product included in the message content or social media content of a user contact.

[0135] At operation 704, process 700 may include: receiving, from the server system and in response to the request, information related to the product. Additionally, at operation 706, process 700 may include displaying a user interface of the client application that includes at least a portion of the information related to the product. By way of illustration, the client device may receive data related to the user interface that includes 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 the product.

[0136] The processing 700 may further include: at operation 708, capturing video data via at least one imaging device and based on a selection of a user interface element. In one or more illustrative examples, the selection of the user interface element may cause one or more imaging devices of the client device to be activated. In these cases, the client application may generate a view showing the field of view of one or more imaging devices. Additionally, icons that can be selected to record video content captured by one or more imaging devices may be overlaid on the field of view presentation. After recording video content related to a product, a user of the client application may use one or more tools of the client application to modify the video content 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 captions containing more than one piece of text, image content, creative artwork, one or more overlays, or one or more animations. The user may also initiate one or more tools of the client application to modify playback characteristics of the video content, such as the sound of the video content, the playback speed of the video content, or one or more other playback characteristics of the video content.

[0137] Furthermore, at operation 710, the processing 700 may include sending the 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 made to the captured video content related to the product. In one or more examples, the video data may be sent to the server system together with information indicating the 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 indicates that the video content may be accessed by contacts of the creator of the video content (e.g., friends 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 indicates that the video content will be publicly accessible and viewable by users of the client application outside of the creator's contact group or social network. In various examples, the creator of the video content may indicate one or more characteristics of the users of the client application who may access the video content, such as one or more demographic characteristics, one or more location characteristics, or content consumption history.

[0138] Figure 8FIG. is an illustration of a user interface 800 including video content related to a product according to one or more example implementations. The user interface 800 may be displayed via a display device of the client device 102, and the user interface 800 may include a first portion 802 that includes information about the product 804. The first portion 802 may 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 may also include an image of the product 804. Additionally, the user interface 800 may 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. Additionally, the user interface 800 may include a second user interface element 808 and a third user interface element 810. The second user interface element 808 can be selected to compose a message including information about the product 804, and the third user interface element 810 can be selected to share information about the product 804 with contacts of the user of the client device 102.

[0139] In Figure 8 an illustrative example, 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 a 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 implementations, the video content item may include a review of the product 804. Additionally, 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, selection of the fifth user interface element 816 may cause the display of an additional user interface including a plurality of additional user interface elements, each corresponding to a different video content item related to the product 804. In these cases, video content items having a relatively high interest level for the user of the client device 102 may be presented towards the top portion of the set of video content items, while video content items having a lower interest level for the user of the client device 102 may be presented in the lower portion of the set of video content items.

[0140] 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) available for purchase via the client application. The other products 820, 822 may be related to the product 804, such as products having the same or a similar category as the product 804. In additional examples, 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 able to be selected to capture video reviews related to the product 804.

[0141] Figure 9 FIG. Figure 9 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 the 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 the 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 device 904 of the client device 102. Additionally, the user interface 900 may include a user interface element 906 that can be selected to record the content displayed in the field of view 902. For example, the user interface element 906 can be selected to capture an image displayed in the field of view 902. Additionally, the user interface element 906 may be able to be selected to capture the content included in the field of view 902 over a period of time. In this way, the user interface element 906 may be able to be selected to capture video content related to the product.

[0142] Figure 10FIG. is a diagram of a user interface 1000 for editing product-related video content using tools of a client application according to one or more example implementations. The user interface 1000 can be displayed via a display device of the client device 102. Additionally, the user interface 1000 can include an image 1002, which can correspond to a portion of video content captured by the client device 102. The user interface 1000 can also include a plurality of first user interface elements 1004. Each of the first user interface elements 1004 can be selectable to initiate a tool of the client application. For example, one of the first user interface elements 1004 can be selectable to add a text overlay to at least a portion of the video captured by the client device 102. Additionally, another one of the first user interface elements 1004 can be selectable to initiate a creative tool that can be used to generate creative art that can be overlaid on at least a portion of the video content captured by the client device 102. The creative art can include words, symbols, images, one or more combinations thereof, etc., generated using the creative tool. Additionally, another one of the first user interface elements 1004 can be selectable 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 a service provider that maintains and provides the client application. The overlay can also be generated by an augmented reality content item associated with the client application. The first user interface elements 1004 can also include one or more user interface elements that 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 audio associated with the video captured by the client device 102 based on an initial version of the video captured by the client device 102 to produce a modified version of the video content.

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

[0144] Figure 11 FIG. is a block diagram of 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. Specifically,Figure 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, program, application, applet, app, or other executable code) can be executed to cause the machine 1100 to perform any one or more of the methods discussed herein. Thus, the modules or components described herein can be implemented using the instructions 1102. The instructions 1102 transform the general, unprogrammed machine 1100 into a particular machine 1100 programmed to perform the described and illustrated functions in the described manner. In alternative implementations, the machine 1100 operates as a stand-alone device or can be coupled (e.g., networked) to other machines. In a networked deployment, the machine 1100 can operate in a server-client network environment as a server machine or a client machine, or as a peer machine in a peer-to-peer (or distributed) networking environment. The machine 1100 can include, but is not limited to: server computers, client computers, personal computers (PCs), tablet computers, laptop computers, netbooks, set-top boxes (STBs), personal digital assistants (PDAs), entertainment media systems, cellular telephones, smart phones, mobile devices, wearable devices (e.g., smart watches), smart home devices (e.g., smart appliances), other smart devices, web appliances, network routers, network switches, network bridges, or any machine capable of sequentially or otherwise executing the instructions 1102 specifying the actions to be taken by the machine 1100. Moreover, although only a single machine 1100 is shown, the term "machine" shall also be taken to include a collection of machines that individually or jointly execute the instructions 1102 to perform any one or more of the methods discussed herein.

[0145] The machine 1100 can include a processor 1104, a memory / storage 1106, and I / O components 1108, which can 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) can include, for example, a processor 1112 and a processor 1114 that can execute the instructions 1102. The term "processor" is intended to include a multi-core processor 1104, which can include two or more independent processors (sometimes referred to as "cores") that can execute the instructions 1102 simultaneously. Although Figure 11A number of processors 1104 are shown, but machine 1100 can include a single processor 1112 with a single core, a single processor 1112 with multiple cores (e.g., a multi-core processor), multiple processors 1112 with a single core, multiple processors 1112 with multiple cores, or any combination thereof.

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

[0147] I / O components 1108 can 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 the 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 understood that I / O components 1108 can include Figure 11Many other components not shown. The I / O component 1108 is grouped by function only for simplicity in the following discussion, and this grouping is in no way restrictive. In various example implementations, the I / O component 1108 may include a user output component 1120 and a user input component 1122. The user output component 1120 may include visual components (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)), acoustic components (e.g., speakers), tactile components (e.g., a vibration motor, a resistance mechanism), other signal generators, etc. The user input component 1122 may include alphanumeric input components (e.g., a keyboard, a touch screen configured to receive alphanumeric input, an optical keyboard, or other alphanumeric input components), point-based input components (e.g., a mouse, a touchpad, a trackball, a joystick, a motion sensor, or other pointing instruments), tactile input components (e.g., physical buttons, a touch screen that provides the position or force of a touch or touch gesture, or other tactile input components), audio input components (e.g., a microphone), etc.

[0148] In other example implementations, the I / O component 1108 may include a biometric component 1124, a motion component 1126, an environmental component 1128, or a positioning component 1130 and various other components. For example, the biometric component 1124 may include components for detecting expressions (e.g., hand expressions, facial expressions, voice expressions, body postures, or eye tracking), measuring biometric signals (e.g., blood pressure, heart rate, body temperature, sweating, or brain waves), identifying people (e.g., voice recognition, retina recognition, facial recognition, fingerprint recognition, or electroencephalogram-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. The environmental component 1128 may include, for example, a lighting sensor component (e.g., a photometer), a temperature sensor component (e.g., one or more thermometers that detect the 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 the concentration of a hazardous gas for safety or measures pollutants in the atmosphere), or other components that may provide an indication, measurement, or signal corresponding to the surrounding physical environment. The 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 that detects the air pressure from which the altitude can be obtained), an orientation sensor component (e.g., a magnetometer), etc.

[0149] A variety of techniques can be used to implement communication. The I / O component 1108 can include a communication component 1132, which is operable to couple the machine 1100 to a network 1134 or a device 1136. For example, the communication component 1132 can include a network interface component or other suitable device that interfaces with the network 1134. In another example, the communication component 1132 can include a wired communication component, a wireless communication component, a cellular communication component, a near field communication (NFC) component, a Bluetooth component (e.g., Bluetooth low energy), a Wi-Fi component, and other communication components that provide communication via other forms. The device 1136 can be another machine 1100 or any of a variety of peripheral devices (e.g., a peripheral device coupled via USB).

[0150] In addition, the communication component 1132 can detect identifiers or include components operable to detect identifiers. 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 barcodes such as Universal Product Code (UPC) barcodes, multi-dimensional barcodes such as Quick Response (QR) codes, Aztec codes, Data Matrix, Dataglyph, MaxiCode, PDF417, Ultra Code, UCC RSS-2D barcodes, and other optical codes), or an acoustic detection component (e.g., a microphone for identifying an audio signal of a marker). In addition, various information can be derived via the communication component 1132, such as a location via Internet Protocol (IP) geolocation, a location via Wi-Fi signal triangulation, a location via detecting an NFC beacon signal that can indicate a specific location, etc.

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

[0152] In Figure 12 In an example architecture, the software architecture 1202 can be conceptualized as a stack of layers, where each layer provides a specific function. For example, the software architecture 1202 can include layers such as an operating system 1214, libraries 1216, frameworks / middleware 1218, applications 1220, and a presentation layer 1222. In operation, the applications 1220 and / or other components within a layer can activate API calls 1224 through the software stack and receive messages 1226 in response to the API calls 1224. The layers shown are representative in nature, and not all software architectures have all the layers. For example, some mobile operating systems or dedicated operating systems may not provide frameworks / middleware 1218, while other operating systems may provide such layers. Other software architectures may include additional or different layers.

[0153] The operating system 1214 can manage hardware resources and provide common services. The operating system 1214 can include, for example, a kernel 1228, services 1230, and drivers 1232. The kernel 1228 can act as an abstraction layer between the hardware and other software layers. For example, the kernel 1228 can be responsible for memory management, processor management (e.g., scheduling), component management, networking, security settings, etc. The services 1230 can provide other common services for other software layers. The drivers 1232 are responsible for controlling or interfacing with the underlying hardware. For example, depending on the hardware configuration, the drivers 1232 include a display driver, a camera device driver, a Bluetooth driver, a flash memory driver, a serial communication driver (e.g., a universal serial bus (USB) driver), a Wi-Fi driver, an audio driver, a power management driver, etc.

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

[0155] Framework / Middleware 1218 (sometimes also referred to as middleware) provides a higher-level common infrastructure that can be used by Application 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 Application 1220 and / or other software components / modules, some of which may be specific to a particular operating system 1214 or platform.

[0156] Application 1220 includes 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, e-book reader applications, location applications, media applications, messaging applications, or game applications. Third-party applications 1242 may include applications developed by entities other than the vendor of a particular platform using ANDROID TM or IOS TM software development kits (SDKs), and may be mobile software running on a mobile operating system such as IOS TM 、ANDROID TM 、 、phone, or other mobile operating systems. Third-party applications 1242 may call API calls 1224 provided by the mobile operating system (e.g., operating system 1214) to facilitate the functions described herein.

[0157] Application 1220 can use built-in operating system functions (e.g., core 1228, service 1230, driver 1232), libraries 1216, and frameworks / middleware 1218 to create a UI for interacting with the users of the system. Alternatively or additionally, in some systems, interaction with the user can occur through a presentation layer such as presentation layer 1222. In these systems, the application / component "logic" can be separated from the aspects of the application / component that interact with the user.

[0158] Glossary:

[0159] "Carrier signal" in this context refers to any intangible medium capable of storing, encoding, or carrying transient or non-transient instructions 1102 executed by machine 1100 and includes digital or analog communication signals or other intangible media for facilitating the communication of these instructions. Instructions 1102 can be sent or received via a network interface device using a transient or non-transient transmission medium and using any of a number of well-known transmission protocols over networks 110, 1134.

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

[0161] "Communication network" in this context refers to one or more portions of networks 110, 1134, which can be an ad hoc network, intranet, extranet, virtual private network (VPN), local area network (LAN), wireless LAN (WLAN), wide area network (WAN), wireless WAN (WWAN), metropolitan area network (MAN), the Internet, a portion of the Internet, a portion of the public switched telephone network (PSTN), plain old telephone service (POTS) network, cellular telephone network, wireless network, Wi-Fi A network, other types of networks, or a combination of two or more such networks. For example, 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 couplings. In this example, the coupling may implement any one 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 Rate for GSM Evolution (EDGE) technology, the 3rd Generation Partnership Project (3GPP) including 3G, Fourth Generation Wireless (4G) networks, Universal Mobile Telecommunications System (UMTS), High-Speed Packet Access (HSPA), Worldwide Interoperability for Microwave Access (WiMAX), Long-Term Evolution (LTE) standards, other standards defined by various standards-setting organizations, other remote protocols, or other data transmission technologies.

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

[0163] A "machine-readable medium" in this context refers to a component, device, or other tangible medium that can store instructions 1102 and data either temporarily or permanently, 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 considered to include a single medium or multiple media that can store instructions 1102 (e.g., a centralized or distributed database or an associated cache memory and server). The term "machine-readable medium" should also be considered to include any medium or combination of media that can store instructions 1102 (e.g., code) executable by machine 1100 such that the instructions 1102, when executed by one or more processors 1104 of machine 1100, cause machine 1100 to perform any one or more of the methods described herein. Accordingly, a "machine-readable medium" refers to a single storage device or apparatus, as well as a "cloud"-based storage system or storage network that includes multiple storage devices or apparatuses. The term "machine-readable medium" does not include the signal itself.

[0164] "Component" in this context refers to a device, physical entity, or logic having boundaries defined by functions or subroutine calls, branch points, APIs, or other technical definitions that provide partitioning or modularization of a particular processing or control function. Components can be combined with other components via their interfaces to perform machine processing. A component can be an encapsulated functional hardware unit designed to be used with other components and a part of a program with specific functions that generally perform related functions. Components can constitute software components (e.g., code implemented on a machine-readable medium) or hardware components. A "hardware component" is a tangible unit capable of performing certain operations and can be configured or arranged in some physical manner. In various example implementations, one or more computer systems (e.g., stand-alone computer systems, client computer systems, or server computer systems) or one or more hardware components of a computer system (e.g., a processor or group of processors) can be configured by software (e.g., an application or part of an application) to be a hardware component for performing certain operations as described herein.

[0165] Hardware components can also be implemented mechanically, electronically, or in any suitable combination thereof. For example, a hardware component can include dedicated circuitry or logic permanently configured to perform certain operations. A hardware component can be a dedicated processor, such as a field programmable gate array (FPGA) or an ASIC. A hardware component can also include programmable logic or circuitry that is temporarily configured by software to perform certain operations. For example, a hardware component can include software executed by a general-purpose processor 1104 or other programmable processor. Once configured by such software, the hardware component becomes a particular machine (or a particular component of machine 1100) that is uniquely customized to perform the configured functions and is no longer a general-purpose processor 1104. It will be understood that the decision to implement a hardware component mechanically in dedicated and permanently configured circuitry or in temporarily configured (e.g., software-configured) circuitry can be driven by cost and time considerations. Accordingly, the phrase "hardware component" (or "hardware-implemented component") should be understood to include a tangible entity, i.e., an entity that is physically constructed, permanently configured (e.g., hard-wired), or temporarily configured (e.g., programmed) to operate in some manner or perform certain operations described herein. Given implementations in which a hardware component is temporarily configured (e.g., programmed), there is no need to configure or instantiate every hardware component at any given time. For example, in the case where a hardware component includes a general-purpose processor 1104 that is configured by software to be a dedicated processor, the general-purpose processor 1104 can be configured at different times to be respectively different dedicated processors (e.g., including different hardware components). Software accordingly configures a particular processor 1112, 1114, or processor 1104 to, for example, constitute a particular hardware component at one time and a different hardware component at a different time.

[0166] Hardware components can provide information to and receive information from other hardware components. Thus, the described hardware components can be considered to be communicatively coupled. In the case where multiple hardware components are present simultaneously, communication can be achieved through signal transmission between or among two or more hardware components (e.g., via appropriate circuitry and buses). In implementations where multiple hardware components are configured or instantiated at different times, such communication between the hardware components can be achieved, for example, by storing information in a memory structure accessible to the multiple hardware components and retrieving the information from the memory structure. For example, one hardware component can perform an operation and store the output of the operation in a communicatively coupled memory device. Then, other hardware components can access the memory device at a subsequent time to retrieve and process the stored output.

[0167] Hardware components can also initiate communication with input or output devices and can operate on resources (e.g., collections of information). 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., via software) or permanently configured to perform the relevant operations. Whether temporarily or permanently configured, such processors 1104 can constitute processor-implemented components that operate to perform one or more of the operations or functions described herein. As used herein, a "processor-implemented component" refers to a hardware component implemented using one or more processors 1104. Similarly, the methods described herein can be implemented at least in part by processors, where a particular 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. Additionally, one or more processors 1104 can also be operative to support the performance of relevant operations in a "cloud computing" environment or to operate as "software as a service" (SaaS). For example, at least some operations can be performed by a group of computers (as an example of a machine 1100 that includes a processor 1104), which can be accessed via a network 110, 1134 (e.g., the Internet) and via one or more appropriate interfaces (e.g., an API). The execution of certain operations can be distributed among processors, not only residing within a single machine but also deployed across multiple machines. In some example implementations, the processor 1104 or processor-implemented components can be located in a single geographical location (e.g., within a home environment, an office environment, or a server farm). In other example implementations, the processor 1104 or processor-implemented components can be distributed across multiple geographical locations.

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

[0169] A "timestamp" in this context refers to a sequence of characters or encoded information that identifies when an event occurred (e.g., giving a date and time of day), sometimes accurate to a fraction of a second.

[0170] 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.

[0171] Example aspects of the present disclosure

[0172] 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 respective user of a client application, the video content including a plurality of video content items corresponding to one or more products available for purchase via the client application; identifying, by the one or more computing devices, profile information for 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 a database in association with the one or more products, the database also including product data related to respective ones of the one or more products; 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, the 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 to be provided to the user included in the plurality of video content items; generating, by the one or more computing devices, a response to the request, the response including at least a portion of the one or more video content items and product data related to the product stored in the database; and sending, by the one or more computing devices, the response to the client device of the user.

[0173] Aspect 2. The method according to Aspect 1, comprising: 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 one or more features included in the second profile of one or more second users corresponding to the client application among the one or more second profiles, the second users being associated with the product; determining, by the one or more computing devices, an interest level of the user in a video content item among the one or more video content items based on the analysis; 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.

[0174] Aspect 3. The method according to Aspect 2, wherein the analysis comprises: 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.

[0175] 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.

[0176] Aspect 5. The method according to Aspect 2, comprising: determining, by the one or more computing devices, a ranking of the video content item relative to the user among the plurality of video content items, wherein the ranking is based on the interest level of the user in the video content in relation to other interest levels of the user in one or more other video content items included in the plurality of video content items.

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

[0178] Aspect 7. The 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 comprises: receiving, by the one or more computing devices, an indication to purchase the product from the client device based on a selection of the user interface element; and initiating, by the one or more computing devices, a financial transaction for the user to purchase the product.

[0179] Aspect 8. The method according to aspect 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 level of interest of the user in the video content item is based on the second user having a social network connection with the user.

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

[0181] Aspect 10. The method according to any one of aspects 1 to 9, wherein: the client application is a messaging application, the one or more products comprise one or more cosmetics; and the video content comprises one or more overlays, the one or more overlays comprising at least one of: text content overlaid on at least a portion of the video content, image content overlaid on at least a portion of the video content, or augmented reality content overlaid on at least a portion of the video content and generated by one or more tools of the messaging application.

[0182] Aspect 11. A system includes: one or more hardware processors; and one or more non-transitory computer-readable storage media including computer-readable instructions that, when executed by the one or more hardware processors, cause the one or more hardware processors to perform operations including: receiving 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 including a 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; storing the profile information of the plurality of first users and the video content in a database in association with the one or more products, the database further including product data related to 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, the 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 a response to the request, the response including at least a portion of the one or more video content items and product data stored in the database related to the product; and sending the response to the client device of the user.

[0183] Aspect 12. The system according to aspect 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 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 among the one or more video content items; and based on the analysis, determining an interest level of the user in the video content item.

[0184] Aspect 13. The system according to aspect 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 meets a threshold interest level; and based on the interest level meeting the threshold level of interest, determining to include the video content item in the response to the request.

[0185] Aspect 14. The 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 that can be 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 additional video content related to the product.

[0186] Aspect 15. The 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 that, 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.

[0187] Aspect 16. The system according to aspect 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 review 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 recipients among the one or more recipients, the message including the video review and being accessible via the client application.

[0188] Aspect 17. The system according to aspect 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 store the video review in association with a content collection corresponding to the user, the content collection being accessible via the client application by one or more social network contacts of the user.

[0189] Aspect 18. A method includes: sending, by a client device having one or more processors and a memory, a request for product-related information 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, product-related information; displaying, by the client device, a user interface of the client application, the user interface including at least a portion of the product-related information and a user interface element that can be selected to capture video content related to the product; capturing, by at least one imaging device of the client device and based on the selection of the user interface element, video content; and sending, by the client device, video data related to the video content to the server system, the video data including a video review of the product.

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

[0191] Aspect 20. The method according to aspect 19, wherein the modified version of the video content includes at least one of the following: 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, comprising: sending, by a user device having one or more processors and a memory, a request for information related to a product to a server system via at least one user interface generated by a user application; receiving, by the user device in response to the request, information related to the product; causing, by the user device, a first user interface of the user application to be displayed, the first user interface being dedicated to the product and having: a first portion that includes at least a portion of the information related to the product; a second portion that includes a plurality of video content items related to the product; and a user interface element that can be selected to capture video content related to the product; in response to selection of the user interface element, causing a second user interface to be displayed, the second user interface including additional user interface elements that can be selected to capture content included in the field of view of at least one imaging device of the user device; capturing, by the at least one imaging device of the user device based on selection of the additional user interface elements, video content included in the field of view of the at least one imaging device; and causing, by the user device, a third user interface to be displayed, the third user interface including one or more user interface elements for editing the video content.

2. The method according to claim 1, wherein, The one or more user interface elements of the third user interface can be selected to produce a modified version of the video content, the modified version of the video content including 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 with respect to the video content.

3. The method according to claim 1, wherein, The third user interface includes additional user interface elements that can be selected to share the video content with one or more recipients, the one or more recipients being additional users of the user application; and the method includes causing, by the user device, a message to be sent to an additional user device of a recipient among the one or more recipients, the message including the video content and being accessible via the user application.

4. The method according to claim 1, comprising: sending, by the user device, a request to the server system to store the video content in association with a set of content corresponding to a user of the user device, the one or more connections of the user being able to access the set of content via the user application.

5. The method according to claim 1, wherein The video content is sent to the server system together with privacy settings indicating an audience for the video content.

6. The method according to claim 5, wherein, The privacy settings indicate that the video content can be accessed by at least one of: contacts of the creator of the video content, and the video content is inaccessible to additional users of the user application who are not contacts of the creator; or users of the user application having one or more location features.

7. The method according to claim 1, comprising: Sending, by the user device, one or more search criteria, the one or more search criteria including one or more keywords related to a product provided for purchase via the user application; And Obtaining, by the user device, a list of search results, the search results including one or more products corresponding to the one or more keywords; Wherein, based on a selection of a user interface element related to the product included in the list of search results, a request for information related to the product is sent.

8. The method according to claim 1, wherein The first user interface includes: Additional user interface elements that can be selected to initiate a financial transaction for at least one instance of purchasing the product; and A third part that includes additional information corresponding to additional products provided for purchase via the user application.

9. The method according to claim 8, wherein: The additional product corresponds to a category related to the product; and The plurality of video content items are displayed in the second part according to the interest level of the user of the user application in each of the plurality of video content items.

10. The method according to claim 9, wherein The interest level is based on at least one of: the plurality of video content items are of the same category or a similar category as the product or the plurality of video content items are of the same category or a similar category as additional video content items viewed by the user.

11. The method according to claim 9, wherein, The interest level of the user in the plurality of video content items is based on at least one video content item among the plurality of video content items, the at least one video content item being created by an additional user who has a social network connection with the user in the user application.

12. An apparatus, comprising: One or more imaging devices; One or more hardware processors; And One or more non-transitory computer-readable storage media, the one or more non-transitory computer-readable storage media including computer-readable instructions that, when executed by the one or more hardware processors, cause the one or more hardware processors to perform operations, the operations including: Sending, via at least one user interface generated by a user application, a request for information related to a product to a server system; Receiving, in response to the request, information related to the product; Causing a first user interface of the user application to be displayed, the first user interface being dedicated to the product and having: A first part that includes at least a part of the information related to the product; A second part that includes a plurality of video content items related to the product; and A user interface element that can be selected to capture video content related to the product; In response to a selection of the user interface element, causing a second user interface to be displayed, the second user interface including additional user interface elements that can be selected to capture content within the field of view of at least one of the one or more imaging devices; Capturing, by the at least one imaging device, video content within the field of view of the at least one imaging device based on the selection of the additional user interface element; and Cause a third user interface to be displayed, the third user interface including one or more user interface elements for editing the video content.

13. The apparatus 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 the following operations: Receive a message from an additional user of the user application, the message including an additional user interface element that can be selected to access information related to the product, wherein a request for the information related to the product is sent in response to a selection of the additional user interface element.

14. The apparatus according to claim 12, wherein, The one or more user interface elements of the third user interface correspond to one or more creation tools, and the one or more user interface elements can be individually selected to initiate an individual creation tool among the one or more creation tools.

15. The apparatus according to claim 14, wherein, The one or more creation tools include at least one of the following: A first creation tool that generates at least one of text, symbols, or images superimposed on at least a portion of the video content; A second creation tool that adds one or more previously generated overlays to at least a portion of the video content; Or A third creation tool that modifies one or more playback characteristics of the video content.

16. The device according to claim 12, wherein The video content includes a video review of the product.

17. One or more non-transitory computer-readable storage media that include computer-readable instructions that, when executed by one or more hardware processors, cause the one or more hardware processors to perform operations including: Send a request for information related to a product to a server system via at least one user interface generated by a user application; In response to the request, receive information related to the product; Cause a first user interface of the user application to be displayed, the first user interface being dedicated to the product and having: A first portion that includes at least a portion of the information related to the product; A second portion that includes a plurality of video content items related to the product; And A user interface element that can be selected to capture video content related to the product; In response to a selection of the user interface element, cause a second user interface to be displayed, the second user interface including an additional user interface element that can be selected to capture content included in the field of view of at least one imaging device of the user equipment; Capture, by the at least one imaging device of the user equipment, video content included in the field of view of the at least one imaging device based on a selection of the additional user interface element; And Cause a third user interface to be displayed, the third user interface including one or more user interface elements for editing the video content.

18. The one or more non-transitory computer-readable storage media according to claim 17, wherein: The user application is a messaging application, The product includes cosmetics; and The video content includes one or more overlays, the one or more overlays including at least one of the following and generated by one or more tools of the messaging application: text content overlaid on at least a portion of the video content, image content overlaid on at least a portion of the video content, or augmented reality content overlaid on at least a portion of the video content.

19. The one or more non-transitory computer-readable storage media according to claim 17, wherein, The video content is sent to the server system together with privacy settings indicating the audience of the video content, the audience of the video content being based on one or more characteristics of a plurality of users of the user application or based on the content viewing history of the plurality of users of the user application.

20. The one or more non-transitory computer-readable storage media according to claim 17, wherein, The video content is sent to the server system, indicating at least one of the following: the duration of the video content, a timestamp indicating when the video content was captured, or a location associated with the video content.