Systems and methods for sharing media content between users

An exemplary system includes a first user device associated with a first user and a second user device associated with a second user. The first user device is configured to detect a request input by the first user to share media content being processed by the user device with the second user, generate an invite message including data configured to be utilized by the second user device to access the media content, and send the invite message to the second user device by way of a messaging service. The second user device is configured to receive the invite message from the first user device by way of the messaging service, determine that the invite message is associated with a media sharing service, and perform one or more operations to facilitate access to the media content by the second user. Corresponding methods, systems, and apparatus are also disclosed.

BACKGROUND INFORMATION

As digital media, data communication, and electronic device technologies have advanced, the sharing of media content between users has become commonplace. As an example, a user of a mobile device such as a mobile phone may capture video footage of a scene and upload the video to a website (e.g., YouTube, Facebook, a blog, etc.) for access by users of web-enabled electronic devices. When a user accesses the uploaded video, the user is able to view a playback of the previously captured scene.

However, there remains room to improve upon conventional media sharing technologies. For example, conventional technologies for sharing media content between users are limited to specific types of electronic devices, communication networks, digital media formats, and/or configurations (e.g., point-to-point configurations). In some cases, certain electronic devices (e.g., certain set-top box and/or other in-home consumer electronic devices) that are well-equipped to access and play back media content are not equipped nor positioned to access and/or use conventional technologies to participate in sharing of media content such as user-generated live video, for example.

DETAILED DESCRIPTION OF PREFERRED EMBODIMENTS

Exemplary systems and methods for sharing media content between users are disclosed herein. As described in detail herein, one or more user devices configured to process media content may implement a media sharing facility configured to provide and/or access a media sharing service to facilitate sharing of media content between users. For example, a media sharing facility implemented by a user device associated with a user may detect a request input by the user of the user device to share media content being processed by the user device with another user. In response, the media sharing facility may leverage a messaging facility implemented by the user device to generate an invite message configured to be sent by the user device to another user device associated with the other user. The invite message may include an indicator configured to be utilized by the other user device to determine that the invite message is associated with the media sharing service and data configured to be utilized by the other user device to access the media content.

The other user device associated with the other user may receive the invite message from the user device by way of the messaging service. A media sharing facility implemented by the other user device may determine, based on the indicator included in the invite message, that the invite message is associated with the media sharing service and, in response to this determination, perform one or more operations to facilitate access to the media content by the other user. As described herein, the one or more operations may facilitate access to the media content by any of a plurality of user devices associated with the user, including the user device that received the invite message by way of the messaging service and/or one or more other user devices that may have the invite message forwarded to them (e.g., by way of a local area network such as a wireless home network) by the user device that received the invite message by way of the messaging service, as described herein. In this manner, the reach of the media sharing service may be expanded beyond specific devices (e.g., devices configured to access a particular messaging service), communication networks, and/or configurations. This may provide the other user with flexibility in accessing and viewing shared media content using any of the user devices associated with the user, including, for example, mobile devices, in-home consumer electronics devices (e.g., a set-top box device, a television, a digital video recording (“DVR”) device, etc.), personal computers, gaming devices, media processing devices not configured to send or receive messages by way of a particular messaging service, and any other suitable user devices.

These and/or other benefits provided by the disclosed exemplary systems and methods will be made apparent herein. Exemplary systems and methods for sharing media content between users will now be described in detail in reference to the drawings.

FIG. 1illustrates an exemplary media sharing system100(“system100”). As shown, system100may include user devices102(e.g., user devices102-1and102-2) configured to communicate with a media content distribution subsystem104(“media subsystem104”) by way of a media network106and with a messaging subsystem108by way of a messaging network110. As further shown, user devices102may be associated with (e.g., operated by) respective users112(e.g., users112-1and112-2). The specific associations between users112and user devices102shown inFIG. 1are illustrative only. Other associations may exist in other examples. For example, a particular user, such as user112-2, may be associated with multiple user devices102, as described in more detail below. Users112are typically end users of one or more services, such as a messaging service provided by messaging subsystem108and/or a media distribution and/or sharing service provided by media subsystem104that may be accessed by user devices102.

User devices102may communicate with media subsystem104and messaging subsystem108using any suitable communication technologies. Examples of such communication technologies may include, without limitation, Transmission Control Protocol (“TCP”), Internet Protocol (“IP”), File Transfer Protocol (“FTP”), Hypertext Transfer Protocol (“HTTP”), Hypertext Transfer Protocol Secure (“HTTPS”), Session Initiation Protocol (“SIP”), Simple Object Access Protocol (“SOAP”), Extensible Mark-up Language (“XML”) and variations thereof, Simple Mail Transfer Protocol (“SMTP”), Real-Time Transport Protocol (“RTP”), User Datagram Protocol (“UDP”), Global System for Mobile Communications (“GSM”) technologies, Code Division Multiple Access (“CDMA”) technologies, Time Division Multiple Access (“TDMA”) technologies, Time Division Multiplexing (“TDM”) technologies, Short Message Service (“SMS”), Multimedia Message Service (“MMS”), Enhanced Message Service (“EMS”), Evolution Data Optimized Protocol (“EVDO”), Long Term Evolution (“LTE”) technologies, radio frequency (“RF”) signaling technologies, Fiber-to-the-premises (“FTTP”) technologies, Passive Optical Network (“PON”) technologies, wireless and/or wire line data transmission technologies, other suitable communications technologies, or any combination or sub-combination thereof.

Media network106may include a single media network, separate media networks, or a combination of media networks suitable for carrying data representative of media content between media subsystem104and user devices102. For example, media network106may include, without limitation, one or more wireless networks (e.g., satellite media broadcasting networks or terrestrial broadcasting networks), mobile telephone networks (e.g., cellular telephone networks), mobile data networks (e.g., 3G and/or 4G networks), subscriber television networks (e.g., broadcast, multicast, and/or narrowcast television networks), cable networks, hybrid fiber coax networks, optical fiber networks, broadband networks, narrowband networks, the Internet, wide area networks, and any other network or combination of networks capable of carrying media content between user devices102and media subsystem104.

Messaging network110may include a single messaging network, separate messaging networks, or a combination of messaging networks suitable for carrying data representative of messages between user devices102and messaging subsystem108. For example, messaging network110may include, without limitation, one or more mobile data networks (e.g., 3G and/or 4G networks), wide area networks, text messaging networks, email networks, instant messaging networks, social media networks, and any other network or combination of networks capable of carrying messages between user devices102and messaging subsystem108.

In certain examples, media network106and messaging network108may comprise separate and independent networks. In other examples, media network106and messaging network108may include the same and/or overlapping networks.

Media subsystem104may include one or more computing devices (e.g., one or more server devices, subscriber television network devices, etc.) configured to provide one or more services related to media content for access by user devices102. For example, media subsystem104may be configured to provide at least one of a television broadcasting, multicasting, and/or narrowcasting service, a video-on-demand service, a pay-per-view programming distribution service, and/or a user-generated content (e.g., live video) sharing service through which user devices102may access media content.

As part of one or more media services, media subsystem104may be configured to transmit data representative of media content to one or more user devices102by way of media network106in any suitable way. In certain embodiments, for example, media subsystem104may be configured to transmit one or more media content transport streams or feeds (e.g., MPEG-2 streams) containing data representative of one or more media content programs (e.g., one or more video programs to one or more user devices102. For example, media subsystem104may be configured to transmit (e.g., broadcast or multicast) media content transport streams in accordance with a predefined programming or transmission schedule. For instance, one or more live television programs may be broadcast or multicast to user devices102by way of one or more media content carrier channels. As another example, media subsystem104may be configured to transmit (e.g., narrowcast) media content transport streams and/or feeds in response to one or more requests from one or more user devices102. For instance, on-demand programs may be narrowcast to user devices102in response to requests for the on-demand programs. Media subsystem104may also be configured to provide information related to media content (e.g., metadata, program guide data, etc.) to user devices102.

In certain examples, media subsystem104may provide a live video sharing service configured to facilitate sharing of user generated live video between user devices102. As part of the live video sharing service, media subsystem104may be configured to establish one or more live video feed paths from a source user device102to one or more other user devices102. For example, media subsystem104may include a point-to-multipoint server device configured to receive a live video feed from a source user device102and to establish one or more connections between the source live video feed and one or more distribution live video feeds that media subsystem104transmits to one or more other user devices102. To illustrate,FIG. 2shows media subsystem104receiving a source live video feed202from user device102-1and connecting the source live video feed202to both a distribution live video feed204-1from media subsystem104to user device102-2and another distribution live video feed204-2from media subsystem104to another user device102-3. The combination of source video feed202and distribution video feed204-1forms a live video path from user device102-1to user device102-2, and the combination of source video feed202and distribution video feed204-2forms another live video path from user device102-1to user device102-3. In this or a similar manner, media subsystem104may establish multiple live video paths from a single source of a video feed to multiple destinations of the video feed, without the source of the video feed having to provide multiple outgoing video feeds to media subsystem104.

Media subsystem104may be configured to facilitate sharing of media content, such as live video, between user devices102in real time. According, users may be able to concurrently experience media content shared in real time such that the users may share the experience with one another. As used herein, the term “real time” allows for delays produced by processing (e.g., transmission, transcoding, buffering, etc.) media content. Media subsystem104may be further configured to facilitate sharing of media content, such as live video, between user devices102in non-real time. As used herein, non-real time sharing of media content includes storing of media content such that the stored media content remains available for future non-real time distribution.

Media subsystem104may be configured to perform processing configured to facilitate reception and distribution of live video feeds in various formats suited for various capabilities of user devices102. For example, media subsystem104may be configured to receive one or more source video feeds that include video content in one or more data formats, including, without limitation, Motion Picture Experts Group (“MPEG”), Windows Media Video (“WMV”), MP4, Advanced Audio Coding (“AAC”), Advanced Video Codec High Definition (“AVCHD”), Flash Video (“FLV”), Apple QuickTime Movie (“MOV”), RealVideo, Audio Video Interlaced (“AVI”), DivX, and any other suitable video data formats. Media subsystem104may be configured to transcode video content from certain formats to certain other formats, upscale and/or downscale video content (e.g., from one size or resolution to another size or resolution), modify video bit rates, or otherwise process video content. Media subsystem104may use such processing to generate and transmit one or more video feeds containing video content having properties that are well suited for processing by one or more particular user devices102.

To illustrate, media subsystem104may receive a request from user device102-2to access live video included in source video feed202received by media subsystem104from user device102-1. In response to the access request, media subsystem104may determine one or more attributes of user device102-2(e.g., attributes indicative of capabilities and/or resources of user device102-2related to receiving and/or processing video), determine from the device attributes one or more desired attributes of video to be sent to user device102-2, process the live video included in video feed202to generate distribution live video feed204-1containing live video having the one or more desired video attributes, and transmitting distribution live video feed204-1to user device102-2.

Additionally or alternatively, media subsystem104may perform processing of live video automatically without waiting to first receive an access request for the live video. For example, media subsystem104may receive source video feed202from user device102-1and process the live video included in source video feed202to generate one or more distribution video feeds204. For instance, media subsystem104may generate multiple distribution video feeds204having properties that are well suited for processing by one or more particular user devices102. In some examples, this may include generating “small,” “medium,” and “large” versions of the live video for distribution in distribution video feeds204. A “large” version of the live video may be well suited for processing by a user device102having sufficient resources to process the “large” version of the live video (e.g., sufficient resources to process high definition and/or large size video content), a “medium” version of the live video may be well suited for processing by a user device102having sufficient resources to process the “medium” version but not the “large” version of the live video (e.g., sufficient resources to process standard definition and/or medium size video content), and a “small” version of the live video may be well suited for processing by a user device102(e.g., a mobile device) having sufficient resources to process the “small” version but not the “medium” version of the live video (e.g., sufficient resources to process a mobile device version and/or small size of video content).

In certain implementations, media subsystem104may be configured to perform processing of live video based on settings and/or historical data associated with the user (e.g., user112-1) and/or the user device (e.g., user device102-1) that publishes the live video to media subsystem104. For example, media subsystem104may receive source video feed202from user device102-1associated with user112-1, identify one or more other users112and/or user devices102associated with user112-1and/or user device102-1(e.g., users112and/or user devices102that have shared live video with user112-1and/or user device102-1in the past and/or that are part of a defined group of users that includes user112-1), and process the live video received in source video feed202to prepare for distribution of the live video to one or more other user devices102if requested by the one or more other user devices102. For instance, media subsystem104may transcode the live video received in source video feed202to a particular data format suited for processing by user device102-2such that if user device102-2requests access to the live video, the transcoded live video is ready for insertion into live video feed204-1for distribution to user device102-2.

Media subsystem104may be configured to perform any of the above-described video processing at connections between a source video feed and one or more distribution video feeds. Accordingly, such video processing may be part of and/or may help form the connections between a source video feed and one or more distribution video feeds.

Media subsystem104may be configured to maintain and provide data configured to be used by user devices102to access media content from the media subsystem104. The data may include any form and/or type of information that may be used by a user device102to access particular media content from media subsystem104. For example, the data may include a unique identifier assigned to a media content program (e.g., a unique identified assigned to a live video) by media subsystem104, an address (e.g., a Uniform Resource Locator, a file system address, a machine address, etc.) from which a media content program may be accessed, a source video feed identifier (e.g., an identifier of source vide feed202), a broadcast, multicast, or narrowcast channel identifier (e.g., a media content carrier channel number associated with a frequency range within which a media content stream or feed is transmitted), a programming channel identifier (e.g., a television channel to which a user device102may tune in order to access media content associated with the television channel), and/or any other information that may be used by a user device102to access a particular media content program from media subsystem104. Additionally, in some implementations, the information may include a key configured to be used by a user device102to unlock, decrypt, decode, or otherwise gain access to a locked, encrypted, or encoded media content stream or feed provided by media subsystem104.

Media subsystem104may provide such data to user devices102for use by the user devices102to facilitate sharing of media content between users112. To this end, a user device102may be configured to share the data with one or more other user devices102in conjunction with inviting the one or more other devices102to access shared media content. To illustrate, media subsystem104may assign a unique identifier to a live video included in source video feed202received from user device102-1. Media subsystem104may provide data representative of the unique identifier to user device102-1for use by user device102-1to facilitate sharing of the live video with one or more other user devices102-2through102-3. For example, user112-1may want to share the live video with user112-2and may input a share request into user device102-1. In response to this share request from user112-1, user device102-1may generate and send an invite message to user device102-2associated with user112-2by way of messaging subsystem108. User device102-1may insert the unique identifier and other information about the live video and/or media subsystem104in the invite message, which may be actionable by user device102-2. Accordingly, when user device102-2receives the invite message, user device102-2may utilize the unique identifier and other information included in the message to access the live video from media subsystem104. For instance, user device102-2may send an access request including the unique identifier for the live video to media subsystem104, which may use the identifier in the access request to identify the live video and generate and provide distribution live video feed204-1including the live video to user device102-2.

With user device102-2in possession of the unique identifier for the live video and other information about the live video and/or media subsystem104, user device102-2is equipped to facilitate further sharing of the live video by sharing the unique identifier and other information with one or more other user devices102in conjunction with inviting the one or more other users112to access the live video.

FIG. 3illustrates exemplary components of media subsystem104. As shown, media subsystem104may include a communication facility302, a media processing facility304, a media management facility306, and a storage facility308, which may be in communication with one another using any suitable communication technologies.

Communication facility302may be configured to facilitate communications between media subsystem104and user devices102using any communication technologies suitable to support the functionality of media subsystem104described herein, including any of the exemplary communication technologies described above that may be used for sending and receiving media content streams or feeds (e.g., video feeds) to/from user devices102by way of media network106.

Media processing facility304may be configured to process media content, including by performing any of the exemplary media processing described herein on media content received from one or more media content providers and/or user devices102to prepare the media content for distribution to one or more user devices102.

Media management facility306may be configured to generate and maintain data about media content received and/or distributed by media subsystem104. For example, media management facility306may be configured to generate, assign, and/or otherwise manage unique identifiers and other information about media content (e.g., memory addresses, buffer information, and/or other information about locations of media content). In addition, media management facility306may be configured to generate and maintain information about media content streams or feeds being received and/or distributed by media subsystem104, as well as information about connections between a source media content stream or feed (e.g., source video feed202) and one or more distribution media content streams or feeds (e.g., distribution video feeds204-1and204-2) and/or the video paths forms by the connections.

Storage facility308may be configured to maintain media content data310representative of media content. Media content data310may represent live media content being processed by media subsystem104and/or media content that is stored for subsequent, non-real-time access. Storage facility308may be further configured to maintain media management data312representative of information about media content. Media management data312may be maintained by media management facility306and may include any of the exemplary information described herein (e.g., media content access address information, index information, key information, etc.). Storage facility308may maintain additional or alternative data, including any of the data disclosed herein.

Messaging subsystem108may include one or more computing devices (e.g., one or more server devices, network devices, routers, switches, etc.) configured to provide one or more messaging services by which user devices102may send and receive messages to/from one another. For example, messaging subsystem108may be configured to provide at least one of a text messaging service, an email messaging service, an instant messaging (“IM”) service, and/or a social media messaging service (e.g., a Facebook, Twitter, or other social media messaging service) by which user devices102may send and receive messages. Accordingly, messages received and sent from/to user devices102by messaging service108may include text messages, Short Message Service (“SMS”) messages, Multimedia Message Service (“MMS”) messages, Enhanced Message Service (“EMS”) messages, email messages, instant messaging messages, social media messages (e.g., tweet messages), IP based messages (e.g., IP messages that use TCP/IP, HTTP, SIP, or other IP-based protocols), or other suitable type of messages.

As part of a messaging service, messaging subsystem108may be configured to receive messages from source user devices102and route and deliver the messages to target user devices102. To this end, messaging subsystem108may maintain data that may be used to route incoming messages to appropriate target user devices102. For example, messaging subsystem108may maintain, without limitation, data representative of users112, user devices102, user network status information (e.g., user network presence information), user device network addresses and/or locations, user device geographic locations, user device statuses, user device attributes, and relationships between users112and user devices102. After receiving an incoming message from a source user device102, messaging subsystem108may utilize such data maintained by messaging subsystem108to identify, route, and send the message to the appropriate target user device(s)102.

Messaging subsystem108may be configured to forward a message to a particular user device102associated with a user112, to a subset of user devices102associated with a user112, or to all user devices102associated with a user112. The particular user device102or user devices102associated with the user112may be indicated by settings maintained by messaging subsystem108, information included in the invite message, and/or by any other information indicating that the user112is proximate to and/or using the user device(s)102.

As described in more detail herein, user devices102may leverage messaging subsystem108and/or a messaging service provided by messaging subsystem108to facilitate sharing of media content between users112. For example, invite messages may be generated by user devices102and sent between user devices102by way of messaging subsystem108to facilitate access to shared media content.FIG. 4illustrates an exemplary path of an invite message402between user devices102-1and102-2. In the illustrated example, user device102-1generates and sends invite message402to user device102-2. The invite message402is transmitted from user device102-1to messaging subsystem108, which forwards the invite message402to user device102-2.

In certain examples, the path of an invite message between user devices102is separate and independent of the path of media content shared between the user devices102. For example, the path of invite message402shown inFIG. 4is through messaging subsystem108by way of messaging network110, while the path of live video formed by the combination of source video feed202and distribution video feed204-1is through media subsystem104by way of media network106.

An invite message, such as invite message402, may include any type of message that is suitable for the functionality described herein, including any of the exemplary types of messages disclosed herein (e.g., a text message, an SMS message, an MMS message, an EMS message, an email message, an instant messaging message, a social media message (e.g., a Facebook invite message, a “tweet” message, etc.), an IP based message, etc.). In addition, the invite message may include data that makes the message actionable by a receiving user device102to facilitate user access to shared media content associated with the invite message.

For example, the invite message may include an indicator configured to be utilized by a receiving user device102to determine that the invite message is associated with a media sharing service. By making this determination, the user device102may distinguish the invite message from standard messages that may be received by way of a messaging service provided by messaging subsystem108. In response to a determination by the user device102that the invite message is associated with the media sharing service, the user device102may perform one or more operations to facilitate user access to media content associated with the invite message. Examples of such operations are described in detail herein.

The indicator may comprise any data in any format within a message and that may be detected and utilized by a receiving user device102to determine that the message is associated with a media sharing service. For example, the indicator may comprise a predetermined data value specified by one or more bits of data (e.g., a specific alphanumeric sequence, a flag, etc.). The indicator may be included in any suitable field of a message.

In addition, the invite message may include data configured to be used by a receiving user device102to access media content associated with the message. Such data may include any of the information about media content and/or a source or distributor of media content disclosed herein, such as a media content program identifier, address information (e.g., a URL, a machine address, etc.), and/or any of the information that is configured to be used by the receiving user device102to access shared media content from media subsystem104.

Using the data included in the invite message, the receiving user device102may access the media content. For example, the user device102may tune to a particular media programming channel to access the media content. As another example, the user device102may communicate with media subsystem104by way of media network106to request access the media content.

To illustrate, in certain implementations, an invite message may comprise a text message (e.g., an SMS message) including an indicator configured to be utilized by a receiving user device102to determine that the invite message is associated with a media sharing service and data configured to be used by the user device102to access media content associated with the message from media subsystem104. In other implementations, an invite message may comprise another type of message, such as any of the types of messages disclosed herein, that includes a media sharing service indicator and data configured to be used by the user device102to access media content associated with the message from media subsystem104.

FIG. 5illustrates exemplary components of messaging subsystem108. As shown, messaging subsystem108may include a communication facility502, a message processing facility504, a device management facility506(“management facility506”), and a storage facility508, which may be in communication with one another using any suitable communication technologies.

Communication facility502may be configured to facilitate communications between messaging subsystem108and user devices102using any communication technologies suitable to support the functionality of messaging subsystem108described herein, such as any of the exemplary communication technologies disclosed above that may be used for receiving and sending invite messages from/to user devices102by way of messaging subsystem108.

Message processing facility504may be configured to process invite messages, including by storing and/or forwarding invite messages to identified destinations. Device management facility506may be configured to maintain and/or access information about user devices102configured to send and/or receive messages to/from messaging subsystem108. For example, device management facility506may maintain and/or access location information indicative of locations (e.g., physical locations such as GPS locations and/or network address locations) of user devices102. To illustrate, in implementations in which messaging subsystem104provides a text messaging service by way of a wide area wireless data network, device management facility506may be configured to track locations of user devices102within the wide area wireless data network (e.g., track within which cells of the network user devices102are located) and maintain data representative of this information. Messaging subsystem104may then use this information to identify appropriate destinations (e.g., network cells, base stations, routers, etc.) to which received messages are to be forwarded in order to reach targeted user devices102.

Additionally or alternatively, device management facility506may be configured to maintain data mapping users112to user devices102. Device management facility506may use this data to determine to which user devices102to forward messages directed to particular users112. In certain examples, device management facility506may be configured to maintain and/or access presence information indicative of the presence of a user112relative to one or more user devices102associated with the user112(e.g., which user device102the user112is currently using and/or nearby). The presence information may be obtained in any suitable way, such as by tracking activity of user devices102(e.g., user profile login and logout activities, receipt of messages from user devices102, and any other activities of user devices102than may be tracked by messaging subsystem108. Alternatively, device management facility506may access such presence information from a source and/or service external of messaging subsystem108.

Storage facility508may be configured to maintain message data510representative of messages (e.g., invite messages) received and/or sent from/to user devices102by way of messaging subsystem108. Storage facility508may be further configured to maintain device data512representative of information about user devices102configured to send and/or receive messages to/from messaging subsystem108. Device data512may be maintained by device management facility506and may include any information descriptive of user devices102and/or associated users112. Storage facility508may maintain additional or alternative data, including any of the data disclosed herein.

Messaging subsystem108may be separate and independent of media subsystem104. Accordingly, invite messages sent between user devices102by way of messaging subsystem108are transported over messaging paths that are separate and independent of the paths over which media content is transported between user devices102and media subsystem104. While messaging subsystem108and media subsystem104may be separate and independent of one another, a media sharing service that provides for sharing of media content between users112by way of media subsystem104may leverage a messaging service provided at least in part by messaging subsystem104to use messaging between user devices102to facilitate sharing of media content between user112. For example, each user device102may be configured to leverage a messaging service provided by messaging subsystem108to facilitate sharing of media content with other user devices102, such as by leveraging a messaging facility implemented by the user device102to generate and send actionable invite messages to other user devices102, which can utilize the actionable invite messages to access shared media content, as described herein.

To illustrate, an exemplary user device102and components and functionality of the user device102will now be described. A user device102may include any computing and/or electronic device operated by an end user and configured to perform one or more of the messaging and/or media content sharing operations described herein. For example, a user device102may include a mobile device (e.g., a mobile phone and/or a tablet computer), a personal computer, an in-home consumer electronic device (e.g., a set-top box device, a television, a DVR device, a gaming device, etc.), and any other suitable device configured to perform user device functionality described herein.

FIG. 6illustrates exemplary components of a user device102. As shown, user device102may include a communication facility602, a user interface facility604, a media processing facility606, a messaging facility608, a media sharing facility610, and a storage facility612, which may be in communication with one another using any suitable communication technologies.

Storage facility612may be configured to maintain media data614representative of media content being processed by user device102, message data616representative of messages generated, sent, and/or received by user device102by way of one of more messaging services, and settings data618representative of user profile settings, media sharing settings, and/or any other settings of user device102. Storage facility612may maintain additional or alternative data, including any of the data disclosed herein.

Communication facility602may be configured to send and received communications and data to/from media subsystem104and messaging subsystem108using any suitable communication technologies, such as any of the exemplary communication technologies disclosed above.

User interface facility604may be configured to provide one or more user interfaces (e.g., graphical user interfaces (“GUIs”), display screens, audio speakers, touch screens, input mechanisms) through which a user112may interact with user device102. Thus, through user interface facility604, user device102may receive user input and provide user output, including any of the user input and/or output described herein.

Media processing facility606may be configured to process media content. For example, media processing facility606may receive media content from media subsystem104and process the received media content such as by buffering, storing, and/or providing the media content to user interface facility604for presentation to a user112. As another example, media processing facility606may capture and process media content. For instance, media processing facility606may utilize a video camera implemented by user device102to capture live video of a scene. Media processing facility606may process the captured live video, such as by buffering the live video, storing the live video, providing a live video to user interface facility604for presentation to a user112, and/or transmitting data representative of the live video to media subsystem104, as described herein. As another example, media processing facility606may process media content by rendering video content to be provided to user interface facility604for presentation to a user112. These examples of processing media content are illustrative only. Other processing of media content may be performed by media processing facility606in other embodiments.

Messaging facility608may be configured to generate and send messages to messaging subsystem108for delivery by messaging subsystem108to one or more other user devices102. In addition, messaging facility608may be configured to receive messages from messaging subsystem108and to process the received messages, such as by providing data representative of and/or included in the messages to user interface facility604for presentation to a user112.

In order to send and receive messages to/from messaging subsystem108, messaging facility608may be configured to access a messaging service provided by messaging subsystem108. The messaging service may include one or more of the exemplary types of messaging services described herein, and the messages sent and/or received by messaging facility608may include any of the exemplary types of messages described herein. For example, in certain embodiments, messaging facility608may include a text messaging client application implemented by user device102and configured to access a text messaging service provided by messaging subsystem108to send and receive text messages. One or more additional or alternative types of messaging services may be accessed by messaging facility608in other embodiments.

Media sharing facility610may be configured to provide functionality, user interface options, and/or one or more tools configured to facilitate sharing of media content by and/or with a user112associated with user device102. For example, media sharing facility610may be configured to generate one or more GUIs configured to provide a user112with one or more functions, options, and/or tools configured to be used by the user112to share media content with one or more other users112. In addition, media sharing facility610may be configured to generate one or more GUIs configured to be used by a user112of user device102to access media content that is shared with the user112by another user112. Exemplary GUIs and interactions of a user112with media sharing facility610, which interactions may be provided by way of one or more GUIs, are described herein.

Media sharing facility610may be configured to leverage messaging facility608to facilitate a user112of a user device102sharing media content being processed by the user device102with one or more other users112. To illustrate, media processing facility606implemented by user device102-1may be processing media content in any of the ways described herein. A user112-1of user device102-1may access a GUI generated by media sharing facility610and input a request through the GUI to share the media content being processed by user device102-01with another user112-2. Media sharing facility610may detect the request input by user112-1to share media content being processed by user device102-1with another user112-2and, in response to the share request, may leverage messaging facility608to generate an invite message configured to be sent by user device102-1to another user device102-2associated with the other user112-2. Media sharing facility610may leverage messaging facility608to automatically generate the invite message in response to the share request without requiring additional input from the user112-2.

The invite message may be generated to include data that makes the invite message actionable by the receiving user device102-2. For example, as described herein, the invite message may be generated to include an indicator configured to be utilized by the receiving user device102-2to determine that the invite message is associated with a media sharing service and data configured to be utilized by the receiving user device102-2to access the shared media content. This data may include an identifier associated with the media content, an address (e.g., a URL, server address, etc.), a content carrier or programming channel (e.g., a channel within a television service channel lineup) or any other data that may be used to access media content from media subsystem104. Media sharing facility610be configured to access the data to be included in the invite message from data stored locally at user device102-1(e.g., data associated with the processing of the media content by user device102-1) and/or from media subsystem104. For example, if the media content being processed by user device102-1comprises a television program broadcast by media subsystem104and received by user device102-1, media sharing facility610may be configured to determine a television channel to which user device102-1is tuned to in order to access the television program and insert data representative of the television channel in the invite message.

Messaging facility608may send the generated invite message to user device102-2by way of a messaging service associated with (e.g., accessible by) messaging facility608and provided by messaging subsystem108. In certain examples, media sharing facility610may be configured to instruct messaging facility608to automatically send the generated invite message to user device102-2by way of messaging subsystem108, without requiring additional input from user112-1. In other examples, media sharing facility610may leverage messaging facility608to automatically generate the invite message and then allow messaging facility608to provide user112-1with an opportunity to manually enter additional information into the invite message, such as by typing text into the body of the invite message, and to provide input that triggers messaging facility608sending the invite message to the other user device102-2by way of messaging subsystem108.

Media sharing facility610may be configured to identify a user device (e.g., user device102-2) and/or address associated with a user to which to send an invite message in any suitable way. As an example, media sharing facility610may be configured to leverage user contact information stored or otherwise accessible by user device102-1to identify a user device102and/or address associated with a user112with whom media content is to be shared. For instance, media sharing facility610may access an address book to identify a messaging address (e.g., a mobile phone number, an e-mail address, etc.) and/or other information that may be used to determine a user device to which the invite message will be sent. In certain implementations, for example, media sharing facility610may be configured to determine a mobile phone number associated with a user in an address book and send the invite message, which may comprise a text message, to the mobile phone number by way of messaging subsystem108. Accordingly, a mobile phone user device associated with the user may receive the invite message by way of messaging subsystem108.

In certain examples, media sharing facility610may be configured to select a type of messaging service to use and/or a type of message to generate based on information included for a user112in an address book. For example, if the address book does not include a mobile phone number but includes an email address for a user, media sharing facility610may elect to generate an invite message in the form of an email message.

As another example, media sharing facility610may be configured to use predefined settings associated with a media sharing service to identify a user device and/or address associated with a user. For instance, users of the media sharing service may define settings to indicate one or more user devices and/or addresses to which invite messages should be sent. Media sharing facility610may be configured to access these settings (e.g., locally at user device102-1or remotely from media subsystem104) and use information included in the settings to determine one or more user devices and/or addresses to which to send an invite message intended for a particular user. To illustrate, user112-2may define media sharing settings to indicate that user112-2prefers to receive invite messages at a particular user device102-2(e.g., a mobile phone) and/or address (e.g., a mobile phone number). Media sharing facility610may access these predefined settings to determine the user device102-2and/or address to which to send an invite message intended for user112-2.

As yet another example, media sharing facility610may be configured to access user presence information from media subsystem104or another source of user presence information and use the information to identify one or more user devices102that are being used by or are accessible to user112-2. To this end, user112-2may have previously provided media subsystem104permission to access and/or generate presence information based on detectable activities (e.g., log in/log off activities, media content processing activities, messaging activities, etc.) of one or more user devices102associated with user112-2. Accordingly, media sharing facility610may access and use the presence information to send an invite message to one or more user devices102associated with user112-2. The presence information may include any information potentially indicative of one or more user devices102being used or accessible by a user112.

Media sharing facility610may be further configured to leverage messaging facility608to facilitate access to shared media content. To illustrate, a user device102may receive an invite message from another user device102(e.g., user device102-2may received an invite message from user device102-1or user device102-1may received an invite message from user device102-2) by way of a messaging service provided by messaging subsystem108. Media sharing facility610may determine, based on an indicator included in the invite message, that the invite message is associated with a media sharing service that is associated with media sharing facility610(e.g., accessible by media sharing facility610) and provided at least in part by media subsystem104. This determination may be made any suitable way. For example, media sharing facility610may be configured to monitor messages received by or directed to messaging facility608to detect any invite messages that are associated with the media sharing service (e.g., for messages including an indicator indicative of such as association). Media sharing facility610may be configured to intercept and process identified invite messages that are associated with the media sharing service.

In response to a determination that an invite message is associated with the media sharing service, media sharing facility610may perform one or more operations to facilitate user access to the shared media content associated with the invite message. In certain examples, the operations performed by the user device102may facilitate access to the shared media content by the user device102(e.g., by the same user device102that received the invite message directly from the messaging service). To illustrate, media sharing facility610may generate and provide a notification of the invite message for presentation to a user112of the user device102. The notification may include any information about the invite message, the shared media content associated with the invite message, and/or any actions to be performed by the user112to access the media content with the user device102. For instance, the notification may indicate a user input command to be input by the user112to initiate accessing of the media content by the user device102. The indication of the user input command may be presented in any form and may include any information as may suit a particular implementation. In response to the notification, the user112may input the indicated user input command into the user device102by way of user interface facilities604in any suitable way. Media sharing facility610may detect the input of the user input command by the user112. In response to this detection, media sharing facility610may utilize data included in the invite message to access the media content associated with the invite message from media subsystem104. In certain examples, this may include media sharing facility610instructing media processing facility606to tune to a particular media programming channel (e.g., a particular television programming channel) or instructing communication facility602to transmit a request to access the media content to a particular address, such as to a URL and/or other address specified by the invite message.

In certain examples, the operations performed by the user device102may facilitate access to the shared media content by one or more other user devices (e.g., by one or more user devices that did not receive the invite message directly from the messaging service) associated with a user112. For example, the operations may include media sharing facility610forwarding the invite message from the user device102to one or more other user devices associated with the user112, which forwarding may facilitate user access to the shared media content through one or more other user devices associated with the user112. This may allow the user112to access the shared media content using a preferred device.

To illustrate,FIG. 7shows an exemplary media sharing system700(“system700”). System700is like system100except that in addition to user112-2being associated with user device102-2, user112-2is also associated with other user devices702(e.g., user devices702-1through702-N). In system700, user device102-2may receive an invite message from user device102-1by way of a messaging service provided by messaging subsystem108and determine that the invite message is associated with a media sharing service as described above. In response to this determination, user device102-2may perform one or more operations, which may include forwarding the invite message to one or more other user devices702to facilitate user access to the media content by way of the other user device(s)702. By forwarding the invite message as described herein, user device102-2may function as a gateway device for one or more other user devices702associated with user112-2.

By user device102-2forwarding the invite message to one or more other user devices702, the reach of the media sharing service provided by media subsystem104may be expanded to include one or more user devices702that may not otherwise be able to access the media sharing service and/or the messaging service described herein. For example, user devices702may not be configured to access the messaging service provided by messaging subsystem108. Accordingly, user devices702may be unable to receive invite messages directly from the messaging service, which may limit the ability of user devices702to access or otherwise participate in the media sharing service provided by media subsystem104.

To illustrate, in certain embodiments, the messaging service provided by messaging subsystem108may comprise a text messaging service, and user devices102may comprise devices (e.g., mobile phone devices) configured to access the text messaging service. Conversely, user devices702may comprise in-home consumer electronic devices (e.g., one or more set-top box devices) not configured to access the text messaging service or to receive invite messages directly from the text messaging service. In order to facilitate access to shared media content by user devices702, media sharing facility610implemented by user device102-2may be configured to forward an invite message received from the text messaging service to one or more of the user devices702. Each of the user devices702may implement media sharing facility610such that each user device702is configured to receive and use forwarded invite messages to access shared media content from media subsystem104in any of the ways described herein.

Media sharing facility610implemented by user device102-2may forward an invite message to one or more other user devices702in any suitable way and/or in any suitable format. To facilitate forwarding of invite message from user device102-2to user devices702associated with user112-2, media sharing facility610may be implemented by user device102-2and each of user devices702and may be configured to facilitate communications between user device102-2and user devices702, which communications may be used for forwarding invite messages from user device102-2to one or more of user devices702. To this end, media sharing facility610may be configured to access data indicating all user devices102-2and702associated with user112-2that are configured to access the media sharing service provided by media subsystem104. Such user device data may be included in settings associated with the media sharing service, which settings may be maintained by media sharing facility610implemented by user devices102-2and702and/or by components of media subsystem104. The user device data may be maintained in any suitable way. For example, user112-2may configure his or her settings for the media sharing service, which configuration may include providing information to register user devices102-2and702with the media sharing service.

Because one or more of the user devices702may not be configured to receive invite messages from the messaging service provided by messaging subsystem108, user device102-2may forward invite messages received through the messaging service to one or more of the user devices702using a different messaging format and/or communications protocol than that used by the messaging service. Accordingly, the forwarding of an invite message may include media sharing facility610of user device102-2using the invite message received from the messaging service to generate and transmit one or more other invite messages that contain data configured to be used by the media sharing facility610implemented by each of the other user devices702to access shared media content from media subsystem104. Hence, user device702-1(e.g., a set-top box device, a mobile device, etc.) may receive a forwarded invite message from user device102-2and may utilize data included in the forwarded invite message to access shared media content from media subsystem104, as described herein.

As shown inFIG. 7, in certain implementations, user devices102-2and702may be physically located within a footprint of a local area network (“LAN”)704associated with user112-2(a home network such as a Wi-Fi network operated by user112-2). Accordingly, user device102-2and user devices702associated with user112-2may be configured to communicate with one another by way of LAN704, which communications may include transmission of an invite message from user device102-2to one or more of the other user devices702associated with user112-2by way of LAN704. By user device102-2forwarding an invite message to one or more user devices702by way of LAN704, user device102-2may function as a media sharing gateway device (e.g., an in-home media sharing gateway device). WhileFIG. 7illustrates user device102-2and user devices702associated with user112-2as being located within the footprint of LAN704, this is illustrative only. User devices associated with user112-2may be configured to communicate with one another by way of additional or alternative communication networks, including by way of a wide area network (“WAN”).

In certain examples, media sharing facility610implemented by user device102-2may be configured to intelligently forward an invite message to one or more of user devices702in response to a detected satisfaction of one or more predefined criteria and/or an occurrence of one or more predefined events. In some embodiments, for instance, in response to detection of an invite message received from the messaging service provided by messaging subsystem108, media sharing facility610of user device102-2may be configured to automatically forward the invite message to all of the other user devices702registered as being associated with the user112-2. Accordingly, user112-2may be notified of the invite message regardless of the particular user device702the user112-2is using.

As another example, media sharing facility610implemented by user device102-2may be configured to provide a forwarding option to user112-2in response to a detection of an invite message received from the messaging service provided by messaging subsystem108. For example, media sharing facility610may provide a notification of the invite message for presentation to user112-2. The notification may indicate a user input command to be input by user112-2to forward the invite message to one or more other user devices702associated with user112-2. The indication of the user input command may be presented in any form and may include any information as may suit a particular implementation. In response to the notification, user112-2may input the indicated user input command into user device102-2by way of user interface facility604in any suitable way. Media sharing facility610may detect the input of the user input command by user112-2and in response to this detection, forward the invite message to one or more user devices702associated with user112-2.

In some examples, the notification may indicate a different user input command to be input to forward the invite message to each different user device702individually and/or a user input command to be input to forward the invite message to all of the other user devices702collectively. Accordingly, media sharing facility601may forward the invite message to a particular user device702individually or to all user devices702collectively depending on the user input command provided by user112-2.

As another example, in response to a detection of an invite message received from the messaging service, media sharing facility610of user device102-2may determine whether user device102-2is located within the footprint of LAN704. In response to a determination that user device102-2is located within the footprint of LAN704, media sharing facility610may forward the invite message to one or more of the other user devices702associated with user112-2by way of LAN704. Conversely, if user device102-2is determined not to be within the footprint of LAN704, media sharing facility610may refrain from forwarding the invite message, forward the invite message by way of another path such as by way of a WAN, or save the invite message for future forwarding in response to an entry of user device102-2into the footprint of LAN704.

As another example, in response to a detection of an invite message received from the messaging service, media sharing facility610of user device102-2may determine whether user devices102-2is compatible with the shared media content associated with the invite message. The determination may be made in any suitable way, including by analyzing the data included in the invite message (e.g., the data configured to be used to access the media content) or attempting to access and/or present the media content. In response to a determination the user device102-2is not compatible with the shared media content, media sharing facility610implemented by user device102-2may forward the invite message to one or more other user devices702associated with user112-2. In certain implementations, media sharing facility610implemented by user device102-2may select one or more of the user devices702to receive the forwarded invite message based on the compatibility analysis performed by102-2, which may be used by user device102-2to identify which of user devices702are compatible with the shared media content.

As yet another example, media sharing facility610implemented by user device102-2may be configured to forward an invite message to one or more other user devices702associated with user112-2in a targeted manner based on user presence information. The user presence information may include any information indicative of a user device, or multiple user devices, that are being used or are accessible by user112-2. The presence information may include or be based on device log in/log off activities, media content processing activities, messaging activities, and/or other activities indicative of user interaction with user devices, as mentioned above. The presence information may be generated and maintained by media sharing facility610, media subsystem104, or a presence information service from which media sharing facility610may access the information.

To illustrate, in response to a detection of an invite message received from the messaging service provided by messaging subsystem108, media sharing facility610implemented by user device102-2may access presence information for user112-2, identify one or more user devices702based on the information as devices that are being used by or are accessible by user112-2, and forward the invite message to the one or more identified user devices702.

An example of sharing of media content in the form of user-generated live video between users will now be described in reference to theFIGS. 8-10. The sharing of the user-generated live video may be performed by one or more components of system100or system700in any of the ways described herein.

FIG. 8illustrates an exemplary media sharing flow800in relation to an example of sharing of user-generated live video between user devices802(e.g., user devices802-1through802-3) associated with users. As shown inFIG. 8, a first user device802-1in the form of a mobile device equipped with a video camera may film a scene804that is within a video camera view806. The captured video may be filmed in real time by a user associated with user device802-1. Scene804may comprise of any event that may be filmed by user device802-1. For example, a mother may utilize user device802-1to film a child's soccer game or other event.

In certain examples, user device802-1may capture audio associated with the video. This may allow the user of user device802-1to narrate the filmed event and to share the narration along with the live video.

User device802-1may publish the user-generated live video to media subsystem104in real time. Arrow808inFIG. 8represents a video feed transmitted and carrying data representative of the captured live video from user device802-1to media subsystem104. User device802-1may publish the user-generated live video to media subsystem104automatically in accordance with predefined settings or in response to any predefined event, such as in response to a user (e.g., the child's mother) providing a user input command to publish the live video. In certain examples, media subsystem104may be able to limit the distribution of the published live video to a group of one or more users included in a predefined user group (e.g., members of a family) in accordance with a user's media sharing settings, which may be defined in the user's user profile.

Media subsystem104may receive video feed808and perform processing on the live video included in video feed808in any of the ways described herein to prepare the live video for sharing with one or more other users. As part of the processing of the live video, media subsystem104may assign data to the live video, the data configured to be used by one or more user devices to access the live video from media subsystem104. For example, media subsystem104may assign a unique identifier, a media channel (e.g., a personal television channel associated with the user of user device802-1), and/or an access address (e.g., a URL) to the live video. Media subsystem104may provide the data assigned to the live video to user device802-1such that the user of user device802-1may utilize user device802-1to send the data to one or more other users to facilitate sharing of the live video with the other user(s). Arrow810inFIG. 8represents transmission of this data from media subsystem108to user device802-1.

The user of user device802-1may want to share the live video with another user (e.g., the child's grandfather). Accordingly, the user may provide input to user device802-1requesting that the live video be shared with the other user. The user of user device802-1may also provide input identifying the other user with whom the live video is to be shared. In response to the user input, user device802-1may generate and send an actionable invite message to user device802-2, which is associated with the other user. This may be accomplished in any of the ways described herein. For example, user device802-1may generate and send an actionable invite message in the form of a text message (e.g., an SMS message) including data configured to be used to access the live video to user device802-2by way of a text messaging service provided by messaging subsystem108. Arrow812inFIG. 8represents transmission of the invite message from user device802-1to user device802-2by way of the messaging service.

User device802-2, which may be a mobile device such as a tablet computer as illustrated inFIG. 8, may receive the invite message from the messaging service, determine that the invite message is associated with a media sharing service, and utilize data included in the invite message to access the live video from media subsystem104, as described herein. For example, user device802-2may send a request to access the live video to media subsystem104. The request may include data obtained from the invite message (e.g., a URL and/or unique identifier) and/or may be sent to an address indicated by the data obtained from the invite message. Arrow814inFIG. 8represents transmission of the access request from user device802-2to media subsystem104.

Media subsystem104may receive the access request from user device802-2and respond by transmitting a video feed containing data representative of the live video from media subsystem104to user device802-2. Arrow816inFIG. 8represents transmission of a video feed containing the live video from media subsystem104to user device802-2. User device802-2may receive and process the video feed and present of the live video for experiencing by the user of user device802-2.

The live video may be processed by media subsystem104in any of the ways described herein such that the live video included in the video feed is suitable for processing by user device802-2. In some examples, media subsystem104may be configured to tailor the distributed live video to a particular user device. For example, media subsystem104may determine, from the access request received from user device802-2, one or more attributes of user device802-2and/or a connection between media subsystem104and user device802-2and select, generate, and/or transmit a video feed containing live video that has one or more attributes well suited to the user device802-2. For instance, media subsystem104may determine that user device802-2is a mobile device and generate or select a relatively low resolution and/or small size version of the live video for transmission to user device802-2.

The user of user device802-2may want to share the live video with yet another user (e.g., the child's grandmother). Accordingly, the user may provide input to user device802-2requesting that the live video be shared with the other user. The user of user device802-2may also provide input identifying the other user with whom the live video is to be shared. In response to the user input, user device802-2may generate and send an actionable invite message to user device802-3, which is associated with the other user. This may be accomplished in any of the ways described herein. For example, user device802-2may generate and send an actionable invite message in the form of a text message (e.g., an SMS message) including data configured to be used to access the live video to user device802-3by way of a text messaging service provided by messaging subsystem108. Arrow818inFIG. 8represents transmission of the invite message from user device802-2to user device802-3by way of the messaging service.

User device802-3, which may be a set-top box device as illustrated inFIG. 8, may receive the invite message from the messaging service, determine that the invite message is associated with a media sharing service, and utilize data (e.g., a media programming channel identifier, URL, or other information) included in the invite message to access the live video from media subsystem104, as described herein. For example, if the invite message includes data indicating a URL or other address, user device802-3may send an access request to the address to request access to the shared live video. The request may include data obtained from the invite message (e.g., a URL and/or unique identifier). Arrow820inFIG. 8represents transmission of the access request from user device802-3to media subsystem104.

Media subsystem104may receive the access request from user device802-3and respond by transmitting a video feed (e.g., an IP stream) containing data representative of the live video from media subsystem104to user device802-3. Arrow822inFIG. 8represents transmission of a video feed containing the live video from media subsystem104to user device802-3. User device802-3may receive and process the video feed and present the live video for experiencing by the user of user device802-3. For example, user device802-3may generate and provide a video signal to a display device such as a television824, which may process the video signal and display the live video for viewing by the user of user device802-3.

As described above, in some examples, media subsystem104may be configured to tailor the distributed live video to a particular user device. For example, media subsystem104may determine, from the access request received from user device802-3, one or more attributes of user device802-3and/or a connection between media subsystem104and user device802-3and select, generate, and/or transmit a video feed containing live video that has one or more attributes well suited to the user device802-3. For instance, media subsystem104may determine that user device802-3is a set-top box device and generate or select a relatively high resolution and/or large size version of the live video for transmission to user device802-3in view of a capability of the set-top box device to process high quality, large size video content.

In certain embodiments, media subsystem104and/or user device802-3may be configured to map a video feed (e.g., the video feed received from user device802-1) to a media programming channel such that media subsystem104may broadcast, multicast, or narrowcast the live video on a media content carrier channel associated with the media programming channel and user device802-3may tune to the media programming channel to access the video feed, without having to send a specific access request to media subsystem104. To this end, an invite message may include data indicating a media programming channel, and user device802-3may tune to the media programming channel (e.g., a personal television channel) to access a video feed transmitted by media subsystem104and that includes the live video.

Alternatively to user device802-2sending an actionable invite message in the form of a text message to user device802-3by way of a text messaging service in order to share the live video with a different user associated with user device802-3, user devices802-2and802-3may be associated with the same user (e.g., the child's grandfather) and user device802-2may be configured to forward the invite message received from user device802-1to user device802-3, as described above. For example, media sharing facility610implemented by user device802-2may forward the invite message to media sharing facility610implemented by user device802-3by way of a LAN when user devices802-2and802-3are located within the footprint of the LAN, as described above. Accordingly, the user associated with user devices802-2and802-3may choose which of the user devices802-2and802-3to use to access and view the shared live video. In this example, arrow818inFIG. 8represents the forwarding of the invite message from user device802-2to user device802-3by way of communications different from the messaging service provided by messaging subsystem108.

FIGS. 9-10illustrate exemplary views presented on a display screen according to principles described herein. The views may be presented on a display screen902of television824or other display device in response to user device802-3determining that an invite message associated with a media sharing service has been received. As shown inFIG. 9, the view displayed on display screen902may include a full-screen display of programming video content904(e.g., a broadcast television program). In addition, the view may include a notification window906overlaid on a portion of programming video content904. Window906may include text, graphics, and/or other information associated with the invite message received by user device802-3. As shown, for example, window906may indicate a user from whom the incoming message is received and a user input command (e.g., an “OK” button) that may be input by a user to access the shared live video. Window906may also include a custom message provided by the sending user. In the illustrated example, the custom message indicates the child's game (e.g., Amy's soccer game) has started and is the content of the shared live video that will be presented if the user actuates the “OK” button.FIG. 10illustrates display screen902displaying a full-screen view of the shared live video1002in response to the user selection of the “OK” button. While not shown inFIG. 9, in some examples, notification window906may visually indicate a media programming channel to which to tune in order to access the live video associated with the invite message. For example, the notification window906may include a message such as “Amy's game is on channel555.”

FIG. 11illustrates an exemplary method1100of sharing media content between users according to principles described herein. WhileFIG. 11illustrates exemplary steps according to one embodiment, other embodiments may omit, add to, combine, reorder, and/or modify one or more of the steps shown inFIG. 11. In certain examples, method1100may be performed by components of user devices such as user devices102and/or802.

In step1102, a user device detects a request input by a user of the user device to share media content being processed by the user device with another user. Step1102may be performed in any of the ways described herein.

In step1104, the user device generates an invite message. Step1104may be performed in any of the ways described herein to generate an actionable invite message configured to be processed by another user device to facilitate access to the shared media content.

In step1106, the user device sends the invite message to another user device associated with the other user by way of a messaging service. Step1106may be performed in any of the ways described herein.

In step1108, the other user device receives the invite message from the user device by way of the messaging service. Step1108may be performed in any of the ways described herein.

In step1110, the other user device determines that the invite message is associated with a media sharing service. Step1110may be performed in any of the ways described herein, including by the other user device detecting and using an indicator included in the invite message to determine that the invite message is associated with the media sharing service.

In step1112, the other user device performs one or more operations to facilitate access to the media content by the other user. Step1112may include any of the exemplary operations described herein, including the other user device utilizing data included in the invite message to access the media content from media subsystem104or the other user device forwarding the invite message to one or more other user device is associated with the other user, as described herein.

In certain embodiments, one or more of the components and/or processes described herein may be implemented and/or performed by one or more appropriately configured computing devices. To this end, one or more of the systems and/or components described above may include or be implemented by any computer hardware and/or computer-implemented instructions (e.g., software) embodied on at least one non-transitory computer-readable medium configured to perform one or more of the processes described herein. In particular, system components may be implemented on one physical computing device or may be implemented on more than one physical computing device. Accordingly, system components may include any number of computing devices, and may employ any of a number of computer operating systems.

In certain embodiments, one or more of the processes described herein may be implemented at least in part as instructions executable by one or more computing devices. In general, a processor (e.g., a microprocessor) receives instructions, from a tangible computer-readable medium, (e.g., a memory, etc.), and executes those instructions, thereby performing one or more processes, including one or more of the processes described herein. Such instructions may be stored and/or transmitted using any of a variety of known non-transitory computer-readable media.

A non-transitory computer-readable medium (also referred to as a processor-readable medium) includes any non-transitory medium that participates in providing data (e.g., instructions) that may be read by a computer (e.g., by a processor of a computer). Such a non-transitory medium may take many forms, including, but not limited to, non-volatile media and/or volatile media. Non-volatile media may include, for example, optical or magnetic disks and other persistent memory. Volatile media may include, for example, dynamic random access memory (“DRAM”), which typically constitutes a main memory. Common forms of non-transitory computer-readable media include, for example, a floppy disk, flexible disk, hard disk, magnetic tape, any other magnetic medium, a CD-ROM, DVD, any other optical medium, a RAM, a PROM, an EPROM, a FLASH-EEPROM, any other memory chip or cartridge, or any other non-transitory medium from which a computer can read.

FIG. 12illustrates an exemplary computing device1200that may be configured to perform one or more of the processes described herein. As shown inFIG. 12, computing device1200may include a communication interface1202, a processor1204, a storage device1206, and an input/output (“I/O”) module1208communicatively connected via a communication infrastructure1210. While an exemplary computing device1200is shown inFIG. 12, the components illustrated inFIG. 12are not intended to be limiting. Additional or alternative components may be used in other embodiments. Components of computing device1200shown inFIG. 12will now be described in additional detail.

Communication interface1202may be configured to communicate with one or more computing devices. Examples of communication interface1202include, without limitation, a wired network interface (such as a network interface card), a wireless network interface (such as a wireless network interface card), a modem, and any other suitable interface. Communication interface1202may additionally or alternatively provide such a connection through, for example, a local area network (such as an Ethernet network), a personal area network, a telephone or cable network, a satellite data connection, a dedicated URL, an Internet access network, or any other suitable connection. Communication interface1202may be configured to interface with any suitable communication media, protocols, and formats.

Processor1204generally represents any type or form of processing unit capable of processing data or interpreting, executing, and/or directing execution of one or more of the instructions, processes, and/or operations described herein. Processor1204may direct execution of operations in accordance with one or more applications1212or other computer-executable instructions such as may be stored in storage device1206or another non-transitory computer-readable medium.

Storage device1206may include one or more data storage media, devices, or configurations and may employ any type, form, and combination of data storage media and/or device. For example, storage device1206may include, but is not limited to, a hard drive, network drive, flash drive, magnetic disc, optical disc, random access memory (“RAM”), dynamic RAM (“DRAM”), other non-volatile and/or volatile data storage units, or a combination or sub-combination thereof. Electronic data, including data described herein, may be temporarily and/or permanently stored in storage device1206. For example, data representative of one or more executable applications1212(which may include, but are not limited to, one or more of the software applications described herein) configured to direct processor1204to perform any of the operations described herein may be stored within storage device1206. In some examples, data may be arranged in one or more databases residing within storage device1206.

I/O module1208may be configured to receive user input and provide user output and may include any hardware, firmware, software, or combination thereof supportive of input and output capabilities. For example, I/O module1208may include hardware and/or software for capturing user input, including, but not limited to, a keyboard or keypad, a touch screen component (e.g., touch screen display), a receiver (e.g., an RF or infrared receiver), and/or one or more input buttons.

In some examples, any of the facilities described herein may be implemented by or within one or more components of computing device1200. For example, one or more applications1212residing within storage device1206may be configured to direct processor1204to perform one or more processes or functions associated with one or more of the facilities described herein. Likewise, one or more of the storage facilities described herein may be implemented by or within storage device1206.