CROSS-REFERENCE TO RELATED DISCLOSURESThis disclosure claims priority to (i) U.S. Provisional Patent Application No. 62/194,171, titled “Video Production System with Social Media Features,” filed on Jul. 17, 2015, and (ii) U.S. Provisional Patent Application No. 62/242,593, titled “Video Production System with Content-Related Features,” filed on Oct. 16, 2015, both of which are hereby incorporated by reference in their entirety.
USAGE AND TERMINOLOGYIn this disclosure, with respect to all reasonable derivatives of such terms, unless otherwise specified and/or unless the particular context clearly dictates otherwise, each usage of “a” or “an” means at least one, and each usage of “the” means the at least one.
BACKGROUNDUnless otherwise specified, the materials described in this section are not prior art to the claims in this disclosure and are not admitted to be prior art by inclusion in this section.
A video-production system (VPS) can generate and/or output a video program (e.g., a news program) in the form of video content. The VPS can include various components to facilitate this. For example, the VPS can include a scheduling system, which can create and/or edit a program schedule, perhaps based on input received from a user (e.g., a producer or technical director) via a user interface. Further, the VPS can include a sequencing system, which can process records in the program schedule, and based on the processed records, control one or more components of the VPS to facilitate generating and/or outputting the video program.
SUMMARYIn a first aspect, the disclosure provides a method that includes (i) accessing, by a computing system, a social media (SM) platform, (ii) selecting, by the computing system, a SM content item published on the SM platform, (iii) responsive to selecting the SM content item, receiving, by the computing system, a corresponding link, (iv) using, by the computing system, the received link to retrieve the SM content item from the SM platform, and (v) integrating, by the computing system, the retrieved SM content item into a video program.
In a second aspect, the disclosure provides a non-transitory computer-readable medium having stored thereon, program instructions, that when executed by a processor, cause a computing system to perform a set of acts that includes (i) accessing, by the computing system, a SM platform, (ii) selecting, by the computing system, a SM content item published on the SM platform, (iii) responsive to selecting the SM content item, receiving, by the computing system, a corresponding link, and (iv) using, by the computing system, the received link to retrieve the SM content item from the SM platform.
In a third aspect, the disclosure provides a computing system configured for performing a set of acts that includes (i) accessing, by the computing system, a SM platform, (ii) selecting, by the computing system, a SM content item published on the SM platform, (iii) responsive to selecting the SM content item, receiving, by the computing system, a corresponding link, and (iv) using, by the computing system, the received link to retrieve the SM content item from the SM platform.
BRIEF DESCRIPTION OF THE DRAWINGSFIG. 1 is a simplified block diagram of an example computing device.
FIG. 2 is a simplified block diagram of an example computing system.
FIG. 3 is a simplified block diagram of another example computing system.
FIG. 4A is a simplified illustration of a frame of video content, without overlaid content.
FIG. 4B is a simplified illustration of another frame of video content, with overlaid content.
FIG. 5 is a simplified illustration of an example program schedule.
FIG. 6 is a simplified illustration of an example display screen of a SM system.
FIG. 7A is a simplified illustration of another example display screen of a SM system.
FIG. 7B is a simplified illustration of another example display screen of a SM system.
FIG. 7C is a simplified illustration of another example display screen of a SM system.
FIG. 8 is a simplified illustration of an example flowchart for obtaining a SM content item from a SM platform.
FIG. 9A is a simplified illustration of an example display screen of a SM system.
FIG. 9B is a simplified illustration of another example display screen of a SM system.
FIG. 9C is a simplified illustration of another example display screen of a SM system.
FIG. 10 is a simplified illustration of another example flowchart for obtaining a SM content item from a SM platform.
FIG. 11 is a simplified illustration of another example flowchart for obtaining a SM content item from a SM platform.
FIG. 12 is a simplified illustration of another example flowchart for obtaining a SM content item from a SM platform.
FIG. 13 is a simplified illustration of another example flowchart for obtaining data associated with a SM content item from a SM platform.
FIG. 14 is a simplified illustration of another example flowchart for obtaining data associated with a SM content item from a SM platform.
FIG. 15 is a simplified illustration of another example flowchart for obtaining data associated with a SM content item from a SM platform.
FIG. 16 is a simplified illustration of another example flowchart for obtaining data associated with a SM content item from a SM platform.
FIG. 17 is a simplified illustration of an example user interface of a SM system.
FIG. 18 is simplified illustration of another example user interface of a SM system.
DETAILED DESCRIPTIONI. OverviewTechnology has changed how information is stored, published, searched, and consumed. Among other things, social media has become a prominent and influential source of news and entertainment content. Indeed, social media platforms are more and more often a news-breaking source of information. It may thus be beneficial for media content providers to incorporate social media content items into video broadcasts.
However, media content providers can encounter a number of technological challenges that make it difficult to incorporate social media content items into a video program. For example, acquiring and preparing social media content items for a video program is generally a time consuming and labor-intensive process using conventional computing devices and technology platforms. This can be particularly problematic in the context of news broadcasts in which it may be beneficial to quickly identify, acquire, and integrate in a video program news-worthy information published on social media platforms.
The systems and methods of the present disclosure can overcome these and other technological challenges. In particular, the systems and methods of the present disclosure provide technological solutions that allow for timely and efficient identification, acquisition, and integration of social media content items into a video program. For example, the systems and methods can facilitate identifying social media content items of interest on social media platforms, which are generally information-over-loaded environments. As another example, the systems and methods can provide a user interface that facilitates automated social media content retrieval to rapidly and efficiently acquire social media content items of interest. In some instances, the systems and methods can facilitate real-time acquisition and integration of social media content items into a video program. Numerous other example benefits will be apparent from the example systems and methods described below.
In line with the discussion above, this disclosure provides a VPS that can integrate a social media (SM) content item into a video program. A SM content item is a content item that has been published on a SM platform, which is a computer-based tool that allows users to create, share, and/or exchange content (e.g., in the form of text, pictures, and/or videos) in virtual communities on a computer-based network such as the Internet. Examples of SM platforms include TWITTER™, YOUTUBE™, FACEBOOK™, PERISCOPE™, INSTAGRAM™, MEERKAT™, LINKEDIN™, and GOOGLE+™.
In one aspect, a VPS can include a SM system, which can obtain a SM content item. A SM system can do this in various ways. In some aspects, a SM system can select a SM content item published on a SM platform, perhaps based on input received from a user via a user interface. For instance, a SM system can select a SM content item based on a user dragging and dropping an object (e.g., an image or link) associated with the SM content item from a first window containing a graphical user interface of a SM platform into a second window containing a graphical user interface of the SM system.
In some implementations, responsive to the SM system selecting the SM content item, the SM system can receive a link to the selected SM content item. Using the received link, the SM system can then retrieve the SM content item from a SM platform on which the SM content item is published.
In other implementations, responsive to the SM system selecting the SM content item, the SM system can receive an account identifier (e.g., a username) and a timestamp, both corresponding to the SM content item. Using the account identifier, the SM system can then access a webpage associated with (i) a SM platform on which the SM content item is published and (ii) the account identifier. Using the timestamp, the SM system can then identify the SM content item on the webpage, and retrieve the identified SM content item from the SM platform.
In either case, the SM system can then store the retrieved SM content item in a data storage unit associated with the SM system. This can allow the SM system to later retrieve the SM content item from the data storage unit associated with the SM system, perhaps based on input received from a user via a user interface.
The SM system can also edit a SM content item. The SM system can do this in various ways. In some aspects, the SM system can edit a SM content item to remove vulgarities, personal information, and/or extraneous information that is not suitable or desirable for integration into a video program, perhaps based on input received from a user via a user interface.
A VPS can also include a scheduling system, which can schedule integration of a SM content item into a video program. In some aspects, a scheduling system can select a SM content item, perhaps based on input received from a user via a user interface. For instance, a scheduling system can select a SM content item based on a user dragging and dropping an object associated with the SM content item from a first window containing a graphical user interface of the SM system into a second window containing a graphical user interface of the scheduling system. Responsive to the scheduling system selecting the SM content item, the scheduling system can modify a program schedule such that the schedule includes a reference to the selected SM content item. A scheduling system can also transform a SM content item from a native format into a format suitable for use by the scheduling system (e.g., a Media Object Server (MOS) object).
A VPS can also include a digital-video effect (DVE) system, which can integrate a SM content item into a video program. In some aspects, a DVE system can receive a SM content item, and can execute a DVE, which causes the DVE system to generate video content that includes the received SM content item. The generated video content can serve as or be made part of a video program.
II. Example ArchitectureA. Computing Device
FIG. 1 is a simplified block diagram of anexample computing device100.Computing device100 can perform various acts and/or functions, such as those described in this disclosure (including the accompanying drawings).Computing device100 can include various components, such asprocessor102,data storage unit104,communication interface106, and/oruser interface108. These components can be connected to each other (or to another device, system, or other entity) viaconnection mechanism110.
In this disclosure, the term “connection mechanism” means a mechanism that facilitates communication between two or more devices, systems, or other entities. A connection mechanism can be a relatively simple mechanism, such as a cable or system bus, or a relatively complex mechanism, such as a packet-based communication network (e.g., the Internet). In some instances, a connection mechanism can include a non-tangible medium (e.g., where the connection is wireless).
Processor102 can include a general-purpose processor (e.g., a microprocessor) and/or a special-purpose processor (e.g., a digital signal processor (DSP)).
Data storage unit104 can include one or more volatile, non-volatile, removable, and/or non-removable storage components, such as magnetic, optical, or flash storage, and/or can be integrated in whole or in part withprocessor102. Further,data storage unit104 can take the form of a non-transitory computer-readable storage medium, having stored thereon program instructions (e.g., compiled or non-compiled program logic and/or machine code) that, when executed byprocessor102,cause computing device100 to perform one or more acts and/or functions, such as those described in this disclosure. As such,computing device100 can be configured to perform one or more acts and/or functions, such as those described in this disclosure. Such program instructions can define and/or be part of a discrete software application. In some instances,computing device100 can execute program instructions in response to receiving an input, such as fromcommunication interface106 and/oruser interface108.Data storage unit104 can also store other types of data, such as those types described in this disclosure.
Communication interface106 can allowcomputing device100 to connect to and/or communicate with another other entity according to one or more protocols. In one example,communication interface106 can be a wired interface, such as an Ethernet interface or a high-definition serial-digital-interface (HD-SDI). In another example,communication interface106 can be a wireless interface, such as a cellular or WI-FI interface. Each connection described in this disclosure can be a direct connection or an indirect connection, the latter being a connection that passes through and/or traverses one or more entities, such as such as a router, switcher, or other network device. Likewise, each transmission described in this disclosure can be a direct transmission or an indirect transmission.
User interface108 can facilitate interaction betweencomputing device100 and a user ofcomputing device100, if applicable. As such,user interface108 can include input components such as a keyboard, a keypad, a mouse, a touch-sensitive panel, a microphone, and/or a camera, and/or output components such as a display device (which, for example, can be combined with a touch-sensitive panel), a sound speaker, and/or a haptic feedback system. More generally,user interface108 can include hardware and/or software components that facilitate interaction betweencomputing device100 and the user of thecomputing device100.
Computing device100 can take various forms, such as a workstation, a desktop computer, a laptop, a tablet, a television, a set-top box, and/or a mobile phone.
B. Computing System
FIG. 2 is a simplified block diagram of anexample computing system200. In this disclosure, a computing system is a system that includes at least one computing device. In some instances, a computing system can include one or more other computing systems.
Computing system200 can include various components, such asVPS202, video-broadcast system (VBS)204, and end-user device206, each of which can be implemented as a computing system.Computing system200 can also includeconnection mechanism208, which connectsVPS202 withVBS204; andconnection mechanism210, which connectsVBS204 with end-user device206.
VPS202 can generate video content, which can serve as or be made part of a video program. VPS can then transmit the video content toVBS204.VBS204 can receive the video content and transmit the video content to end-user device206 for presentation of the video content to an end user. In practice,VBS204 can transmit video content to a large number of end-user devices for presentation of the video content to a large number of end users.
Video content can be generated, transmitted, and/or received in various ways and/or according to various standards. For example, the act of generating video content can include generating a video stream representing the video content. As another example, the act of transmitting and/or receiving video content can include transmitting and/or receiving a video stream representing the video content, such as over Internet Protocol (IP) or in accordance with the high-definition serial digital interface (HD-SDI) standard. Also, the act of generating, transmitting, and/or receiving video content can include generating, transmitting, and/or receiving an encoded or decoded version of the video content.
FIG. 3 is a simplified block diagram of anexample VPS202.VPS202 can include various components, such asvideo source302,DVE system304,sequencing system306,SM system308, andscheduling system310, each of which can be implemented as a computing system.VPS202 can also includeconnection mechanism312, which connectsvideo source302 withDVE system304;connection mechanism314, which connectssequencing system306 withvideo source302;connection mechanism316, which connectssequencing system306 withDVE system304;connection mechanism318, which connectssequencing system306 withSM system308,connection mechanism320, which connectssequencing system306 withscheduling system310;connection mechanism322, which connectsSM system308 withscheduling system310; andconnection mechanism324, which connectsSM system308 withDVE system304.
Video source302 can generate and/or output video content, and can transmit the video content toDVE system304.Video source302 can take various forms, such as a character generator (CG), a video server, a satellite receiver, or a video camera.Video source302 can also take the form ofDVE system304 orSM system308, as described below.
A CG can generate video content based on input data. For example, a character generator can receive weather data and then generate video content that includes the weather data. As another example, a character generator can use an ordered set of content items to generate video content that includes the content items in the specified order. This type of generated video content is sometimes referred to in the industry as a “ticker.” The content items can include various types of content, such as text and/or images. The ordered set of content items can be stored in various forms, such as in the form of an extended markup Language (XML) file. An example CG is VizRT Trio/VizRT Engine provided by Viz Rt™ of Bergen, Norway. Another example CG is the CasparCG developed and distributed by the Swedish Broadcasting Corporation (SVT).
A video server can store, retrieve, and/or output video content. An example video server is the K2 server provided by Grass Valley™ of San Francisco, Calif.
DVE system304 can execute a DVE, which can causeDVE system304 to generate and/or output video content.DVE system304 can then transmit the video content toVBS204. In one example,DVE system304 can receive first video content fromvideo source302, and can execute a DVE, which causesDVE system304 to generate second video content by modifying the first video content. As such,DVE system304 can generate video content by modifying other video content.
DVE system304 can modify video content in various ways, such as by overlaying text, images, video, or other content thereon. For example,DVE system304 can modify video content by overlaying, on a lower right-hand corner region of the video content, a channel logo. As another example,DVE system304 can modify video content by overlaying, on a lower-third region of the video content, a text box including text. As yet another example,DVE system304 can modify video content by overlaying, on the video content, a SM content item. As another example,DVE system304 can modify video content by scaling or re-positioning the video content or a portion thereof.
FIGS. 4A and 4B help illustrate the concept of overlaying content on video content.FIG. 4A is a simplified diagram of aframe400 of video content.Frame400 includescontent402, but does not include content overlaid oncontent402. For comparison,FIG. 4B is a simplified diagram of anotherframe450 of video content.Frame450 includescontent452 andcontent454 overlaid oncontent452.Content454 is a SM content item that includes text indicating that there is severe weather in Chicago and that includes a photo of the severe weather.
As noted above,DVE system304 can execute a DVE, which causes DVE system to generate video content by modifying other video content. However, as another example,DVE system304 can execute a DVE, which causesDVE system304 to generate video content without modifying other video content. This type of DVE is sometimes referred to in the industry to as a “full screen DVE.”
DVE system304 can obtain content for use in connection with executing a DVE in various ways. For example,DVE system304 can retrieve the content from a data storage unit ofDVE system304. As another example,DVE system304 can receive the content from a video source, such asvideo source302 orSM system308.
In practice,DVE system304 can execute multiple DVEs in serial fashion. Further, in practice,VPS202 can include multiple video sources. In one arrangement, each of multiple video sources can be connected toDVE system304, andDVE system304 can switch between one or more inputs as appropriate to receive and use video content in connection withDVE system304 executing a given DVE.
DVE system304 can also perform other acts and/or functions related to DVEs. For example,DVE system304 can create and/or edit DVEs, perhaps based on input received from a user via a user interface. WhenDVE system304 creates a DVE,DVE system304 can generate and store corresponding program instructions for later retrieval and execution. As such, the act ofDVE system304 executing a DVE can includeDVE system304 retrieving and executing program instructions corresponding to the DVE.
DVE system304 can take various forms, such as a production switcher. An example production switcher is the Vision Octane production switcher provided by Ross Video Ltd. of Iroquois, Ontario in Canada.
SM system308 can perform acts and/or functions related to SM content items. For example,SM system308 can retrieve, store, and/or edit a SM content item. Further,SM system308 can generate and/or output a SM content item or video content that includes a SM content item.
Scheduling system310 can perform acts and/or functions related to scheduling and/or managing the production of a video program. For example,scheduling system310 can create and/or edit a program schedule of a video program, perhaps based on input received from a user via a user interface.Sequencing system306 can then process records in the program schedule. This can causesequencing system306 to control one or more other components ofVPS202 to facilitateVPS202 generating and/or outputting video content, which can serve as or be part of a video program. As such, based on a program schedule,sequencing system306 can controlvideo source302,DVE system304 and/orSM system308.
A program schedule (sometimes referred to in the industry as a “rundown”) serves as a schedule or outline of a video program and can include multiple records. A video program can be conceptually divided into multiple logically-separated portions (sometimes referred to in the industry as “stories”). In one example, each portion of the video program can be represented by a separate record of the program schedule. Each record can include various types of data.
FIG. 5 is a simplified diagram of an example program schedule500. Program schedule500 includes ten records represented as ten ordered rows. Each record corresponds to a respective portion of a video program, except for one which corresponds to a commercial break. For each portion, the respective record specifies at least one data item that corresponds to that portion of the video program. In particular, each record specifies at least one of a story title, a video-segment identifier, a duration, and a DVE identifier (which can serve as an instruction to execute the identified DVE).
In this disclosure, the term “video segment” means a portion of video content. In some instances, a video segment consists of logically-related video content. For instance, a video segment can be a commercial or a portion of a television show that is scheduled between two commercial breaks.
As shown inFIG. 5, the first record specifies a story title of STORY A, a video-segment identifier of VS ID A, a duration of 00:02:00:00 (in hours::minutes::seconds::frames format), and a DVE identifier of DVE ID A. As such, uponsequencing system306 processing the first record,sequencing system306 can causevideo source302 to playout a video segment identified by the video-segment identifier VS ID A for two minutes, and further can causeDVE system304 to execute a DVE identified by the DVE identifier DVE ID A, which for example, can causeDVE system304 to overlay specified content on the identified video segment.
As another example, the third record specifies a story title of STORY C, a duration of 00:00:30:00, and a DVE identifier of DVE ID C. As such, uponsequencing system306 processing the third record,sequencing system306 can causeDVE system304 to execute a DVE identified by the DVE identifier DVE ID C, which for example, can causeDVE system304 to generate and output video content for two minutes.
It should be noted that program schedule500 has been greatly simplified for the purposes of illustrating certain features. In practice, a program schedule is likely to include significantly more data such as further details regarding DVE execution timing. In some aspects,sequencing system306 can be configured to process a next record in the program schedule based on input received from a user via a user interface.
VBS204 can transmit video content to end-user device206 for presentation of the video content to an end user. In practice,VBS204 can transmit video content to a large number of end-user devices for presentation of the video content to a large number of end users.VBS204 can include various components to facilitate this, such as a terrestrial antenna or a satellite, each of which can be implemented as a computing system.
In this disclosure, the term “video broadcast” means the distribution of video content via any means. As such,VBS204 can transmit video content to end-user device206 in various ways. For example,VBS204 can transmit video content to end-user device206 over-the-air or via a packet-based network such as the Internet.
End-user device206 can receive video content fromVBS204, and can present the video content to an end-user via a user interface.
Each of the video-based systems or devices described in this disclosure can include or be integrated with a corresponding audio-based system or device. Likewise, the video content described in this disclosure can include or be integrated with corresponding audio content.
III. Example OperationsComputing system200 and/or components ofcomputing system200 can perform various acts. These and related features will now be described.
A. SM Content Item Selection and Acquisition
SM system308 can obtain a SM content item in various ways. In one aspect,SM system308 can obtain a SM content item from a SM platform by (i) accessing the SM platform, (ii) selecting the SM content item published on the SM platform, (iii) responsive to the selection, receiving information relating to the selected SM content item, (iv) using the received information to retrieve the SM content item from the SM platform, and (v) storing the retrieved SM content item in a data storage unit.
In some examples,SM system308 can access a SM platform in a manner that allows a user to view, search for, and/or browse SM content items via a user interface. For instance,SM system308 can access the SM platform via a web browser application. In one implementation,SM system308 can directly access the SM platform by using the web browser application to initiate a browsing session, navigate to an IP address of the SM platform, and enter login credentials (if necessary). In another implementation,SM system308 can indirectly access the SM platform via a SM dashboard application (e.g., TWEETDECK®, CYFE®, or HOOTSUITE®) operating in connection with the web browser application. A SM dashboard application can provide, for example, additional searching and browsing functionalities that may not be provided by the SM platform itself (e.g., based on trend analysis or analytics) and/or access to multiple SM platforms from a common user interface.
Next,SM system308 can select a SM content item published on the SM platform. In some aspects,SM system308 can select the SM content item based on an input received from a user via a user interface. As examples, the user can select the SM content item by providing a drag-and-drop input and/or a copy-and-paste input via the user interface. Such examples are described in detail below.
Responsive toSM system308 selecting the SM content item,SM system308 can receive information relating to the selected SM content item and can then use the received information to retrieve the selected SM content item from the SM platform. The information can be any information that facilitates retrieving the SM content item from the SM platform. In one example, the information can be a link to the SM content item. To retrieve the selected SM content item, theSM system308 can use the link to generate and transmit a request for the SM content item to an application programming interface (API) associated with the SM platform.
In another example, the information can includeSM system308 can receive an indication of an account identifier and a timestamp corresponding to the SM content item responsive to theSM system308 selecting the SM content item. In an implementation in whichSM system308 selects a SM content item via a SM dashboard application, theSM system308 can retrieve the SM content item by directly accessing the SM platform, navigating to a webpage associated with the account identifier on the SM platform, identifying the SM content item on the webpage based on the timestamp, and then obtaining the identified SM content item from the webpage of the SM platform (e.g., via a screen scraping process). Other examples may also be possible.
In some aspects, afterSM system308 selects a SM content item (perhaps based on user input),SM system308 can retrieve the SM content item without input from a user. In this way,SM system308 can automatically retrieve the SM content item responsive toSM system308 selecting the SM content item. For example,SM system308 can automatically generate and transmit a request to an API based on a received link without user input. As another example,SM system308 can automatically navigate to a webpage associated with a received account identifier, identify a SM content item based on the account identifier and a timestamp, and retrieve the identified SM content item without user input. In some aspects,SM system308 can retrieve the selected SM content item based on input received from a user via a user interface.
The retrieved SM content item can include various types of data such as, for example, (i) data indicating the SM platform from which the SM content item was retrieved (e.g., FACEBOOK™ or TWITTER™), (ii) data identifying the publisher of the SM content item (e.g., an account identifier, such as a username), (iii) a profile picture corresponding to the publisher of the SM content item, (iv) text published by the publisher in connection with the SM content item, (v) an image published by the publisher in connection with the SM content item, (vi) video content published by the publisher in connection with the SM content item, (vii) audio content published by the publisher in connection with the SM content item, (viii) a timestamp indicating a time and/or date at which the SM content item was published on the SM platform, (ix) global positioning system (GPS) coordinates of the publisher when the SM content item was published, (x) GPS coordinates of a location at which an aspect of the SM content item occurred (e.g., a video was filmed or a picture was taken), (xi) a number of other users associated with the publisher on a SM platform (e.g., a number of friends or followers), (xii) an indication of how long the publisher has been a user of a SM platform, (xiii) a timestamp indicating a time and/or date at which an aspect of the SM content item was created (e.g., a time/date a video was recorded or a picture was taken), (xiv) a number of times a SM content item has been shared (e.g., retweeted) by other users of a SM platform, (xv) a number of posts by the publisher on a SM platform, and/or (xvi) any other data that can be integrated into a video program.
In general, theSM system308 can retrieve all or a portion of the data stored by the SM platform for a selected SM content item. In some aspects, the type of data retrieved for the SM content item can be the same as the type of data published for that SM content item on the SM platform. As one example, in a scenario in which a SM platform publishes an account identifier and text for a SM content item, theSM system308 can retrieve the account identifier and the text of the SM content item. In some aspects, theSM system308 can retrieve greater or fewer types of data for a SM content item than the SM platform publishes for that SM content item. For example, in the scenario in which the SM platform publishes an account identifier and text for a SM content item, theSM system308 can retrieve the account identifier, the text, a timestamp, and a profile picture corresponding to the SM content item. This may be possible, for instance, in implementations in which the SM platform stores additional types of information for the SM content item that are not published on the SM platform.
In some examples, theSM system308 can retrieve data that is different than the data utilized by the SM platform to publish a particular type of data for the SM content item. For instance, the SM platform may store a relatively high resolution image of a SM content item, but publish a lower resolution version of the image for various reasons (e.g., web browser optimization). Although the SM platform publishes the lower resolution image, theSM system308 can retrieve the higher resolution image.
In some aspects, theSM system308 can retrieve data using a set of rules stored by theSM system308. In an implementation, the set of rules can include one or more subsets of platform-specific rules and each subset can correspond to a different SM platform. This can facilitateSM system308 retrieving data from SM platforms having a variety of different architectures for publishing, storing, and/or providing access to SM content items. In an example, the set of rules can specify for a particular SM platform whether to retrieve data using a link approach and/or an account identifier and timestamp approach. In another example, the set of rules can provideSM system308 with a framework for recursively retrieving data from a particular SM platform based on, for instance, data type and/or SM content item architecture (e.g., an architecture used by the SM platform for nesting comments and/or replies associated with a published post of a SM content item). These and other examples are described in further detail below.
Once retrieved, theSM system308 can store the SM content item in a data storage unit of theSM system308. In some examples, theSM system308 can store the SM content item in a database maintained in the data storage unit of the SM system308 (hereinafter “SMS database”). In such examples, the data retrieved for a SM content item can be stored as a record in the SMS database. The SMS database can have multiple data fields that are each configured to store particular types of data (such as those described above) for the SM content item. Accordingly,SM system308 can retrieve data for the selected SM content item, parse the data to determine which portions of the data correspond to which fields in the SMS database, and then populate the record in the SMS database with the determined portions of the data in the corresponding fields. TheSM system308 can also assign the record a unique identification (ID) number to facilitate managing the SM content items stored in the SMS database. Depending on the SM content item selected, one or more of the potential fields can be left unpopulated for a stored record in the SMS database.
As noted above, in some examples,SM system308 can select a SM content item using a drag-and-drop input. To implement a drag-and-drop input,SM system308 can drag a selectable object associated with the SM content item to a drop-target object, and thenSM system308 can drop the selectable object on the drop-target object. In one implementation, the selectable object can be provided in a first application window displaying the web browser application and the drop-target object can be provided in a second application window displaying a graphical user interface ofSM system308. The graphical user interface ofSM system308 can facilitate operations described herein on retrieved SM content items.
FIG. 6 illustrates anexample display screen600 of a user interface ofSM system308, showing an example drag-and-drop input for selecting aSM content item630. Theexample display screen600 includes afirst application window632 containing a web browser application and asecond application window634 containing a graphical user interface of theSM system308. As shown inFIG. 6, the web browser application in thefirst application window632 displays a webpage of a SM platform. The webpage can be, for example, associated with a particular account of the SM platform. Thus, the webpage can contain one or more SM content items published by the accountholder or by others having a connection to the accountholder. The accountholder of the SM platform can be the same as or different from a user of theSM system308. In the illustrated example, the published SM content items displayed in thefirst application window632 include theSM content item630, which is selected bySM system308 in this example. TheSM content item630 includes an account identifier, a profile picture, text, an image, and a timestamp.
The graphical user interface ofSM system308 displayed in thesecond application window634 is a web-based application in the illustrated example. That is, the graphical user interface of theSM system308 is also displayed via a web browser application. In other examples, the graphical user interface ofSM system308 can be executed and displayed as, for example, a desktop application among other possibilities. As shown inFIG. 6, the graphical user interface includes a drop-target object636 for adding SM content items toSM system308. Although the drop-target object636 is displayed in a lower corner of thesecond application window634 inFIG. 6, the drop-target object636 can be displayed in other locations in other examples.
As noted above,SM system308 can select theSM content item630 by dragging a selectable object associated with theSM content item630 and dropping it onto the drop-target object636. In the illustrated example, the selectable object is a publishedimage638 of theSM content item630. Accordingly, in the illustrated example, to add theSM content item630 to the SM system308 (e.g., to the SMS database),SM system308 can drag the publishedimage638 of theSM content item630 from thefirst application window632 to the drop-target object636 in thesecond window634.SM system308 can do so responsive to user input provided via the user interface, for instance. An example drag-and-drop of the publishedimage638 is shown byarrow640 inFIG. 6.
In addition to the drop-target object636, the example user interface illustrated inFIG. 6 includes alist642 of SM content items recently added toSM system308. Thus, responsive to selecting theSM content item630 inFIG. 6,SM system308 can add theSM content item630 to the displayedlist642 as well. Displaying thelist642 of SM content items can facilitate operations on the retrieved SM content items as described below (e.g., editing and previewing SM content items).
The listed SM content items can be displayed with at least a portion of the data stored in the SMS database for those SM content items. For example, inFIG. 6, the listed SM content items each have aSM platform icon644A indicating the SM platform that published the SM content item, anaccount identifier644B identifying the publisher of the SM content item, auser profile picture644C associated with the publisher, atimestamp644D indicating a time of publication of the SM content item, and at least a portion oftext644E published in connection with the SM content item. Also, inFIG. 6, each SM content item in the list includes anID number646 assigned bySM system308 to the SM content item to facilitate managing the SM content items stored in the SMS database. Some of the listed SM content items can also include an icon648 (e.g., in the shape of a paperclip) indicating that the SMS database contains data relating to additional content (e.g., an image, video, and/or audio) for the SM content item.
In the example ofFIG. 6, the graphical user interface ofSM system308 includes a single drop-target object636, which can be used to add SM content items to the SMS database. That is, the drop-target object636 can be configured such thatSM system308 dynamically stores a SM content item in any available storage location within the SMS database responsive to the SM content item being dropped on the drop-target636. In some aspects, the graphical user interface ofSM system308 can include multiple drop-target objects and/or the drop-target object(s) can be fixedly associated with respective storage location(s) in the SMS database. An example of this is illustrated and described below with respect toFIG. 12.
As noted above, responsive toSM system308 selecting a SM content item,SM system308 can receive a link to the selected SM content item on the SM platform. For example, the link can include a uniform resource locator (URL) for a storage location within of a data storage unit at which data associated with the SM content item is stored. Using the received link,SM system308 can retrieve the SM content item from the SM platform.
In some examples, theSM system308 can request the SM content item from the SM platform via an API provided by or associated with the SM platform. To do so, theSM system308 can parse the received link to determine one or more parameters that can be used to request the SM content item via the API. The particular parameter(s) determined from the link can depend on the SM platform as different SM platforms may require different parameters for requesting SM content items via the API. In some implementations, theSM system308 can parse the link to determine a unique identification number assigned to the published SM content item by the SM platform. Many SM platforms expressly include the unique identification number within the URL corresponding to the SM content item. For example, selecting a SM content item on TWITTER™ can provide theSM system308 with a URL having a format of:
- http://twitter.com/[screen_name]/status/[status_id],
where “screen_name” identifies the publisher of the SM content item and “status_id” is the unique identification number assigned to the SM content item by the SM platform. It should be understood that other example parameters are also possible.
AfterSM system308 determines the parameter(s),SM system308 can generate a request for the SM content item. In some instances, the SM platform may specify a particular format for requesting the SM content item via the API. Accordingly,SM system308 can use the determined parameter(s) to generate a request (also known as an API call) according to the format specified by the SM platform for interfacing with its API. TheSM system308 can then transmit the request to the API to cause the SM platform to provide the requested SM content item toSM system308. For example,SM system308 can transmit the request to the API of the SM platform using Hypertext Transfer Protocol (HTTP). As such,SM system308 can use a web browser application to transmit the request to the API of the SM platform.
In some implementations, theSM system308 can receive the SM content item from the SM platform in the form of an Extensible Markup Language (XML) file. TheSM system308 can parse the XML file to determine data corresponding to fields in the SMS database, and can then populate the SMS database with the data in the corresponding fields.SM system308 can also process the XML file to determine whether any additional data associated with the SM content item still needs to be retrieved from the SM platform. For instance, the XML file can include, for some types of media, a pointer to a storage location on a data storage unit of the SM platform. As an example, the XML file can contain a pointer for an image file, a video file, and/or an audio file associated with the selected SM content item. IfSM system308 determines that additional data needs to be retrieved,SM system308 can use the pointer(s) to access the indicated storage location(s), download the additional data, and store the additional data in the SMS database (e.g., via additional API call(s)). In this way,SM system308 can recursively retrieve data from the SM platform.
To facilitateSM system308 receiving a link responsive to a drag-and-drop input, the link can be embedded in the selectable object that is dragged-and-dropped by theSM system308. For example, inFIG. 6, the user ofSM system308 selects theSM content item630 by dragging and dropping the publishedimage638. Thus, in the example ofFIG. 6, the publishedimage638 can be a selectable object having an embedded link to theSM content item630.
In other examples, the link can be embedded in other selectable objects associated with a SM content item.FIGS. 7A-7C illustrate some other examples of such selectable objects. In particular,FIGS. 7A-7C illustrate adisplay screen700 ofSM system308, including afirst application window732 and asecond application window734. Thefirst application window732 includes aSM content item730 published on a SM platform. Thesecond application window734 includes an example graphical user interface forSM system308, which contains a drop-target object736.
InFIG. 7A, the selectable object is in the form of a timestamp738A associated with theSM content item730. The timestamp738A can indicate a time at which the SM platform published theSM content item730. As indicated byarrow740A, the user can select theSM content item730 by dragging the timestamp738A from thefirst application window732 to thesecond application window734, and then dropping the timestamp738A on the drop-target object736. Responsive to the drag-and-drop of the timestamp738A,SM system308 can receive a link embedded in the timestamp738A. TheSM system308 can then use the link to retrieve theSM content item730 as described above.
InFIG. 7B, the selectable object is in the form of aURL738B for a webpage containing theSM content item730. The user ofSM system308 can access theURL738B by opening a drop-down menu viabutton742 and then selecting an option relating to theURL738B. In the illustrated example, theURL738B is displayed in a pop-upwindow744 responsive to the user selecting the option in the drop-down menu. As indicated byarrow740B, the user can select theSM content item730 by dragging theURL738B from thefirst application window732 to thesecond application window734, and then dropping theURL738B on the drop-target object736. Responsive to the drag-and-drop of theURL738B,SM system308 can receive and process a link embedded in theURL738B as described above.
InFIG. 7C, the selectable object is in the form of afavicon738C located in an address bar of a web browser application. Thefavicon738C can have an embedded link that corresponds to the URL of the webpage displayed by the web browser in thefirst application window732. As such, the user can use thefavicon738C to select theSM content item730 if the URL of the webpage (and, thus, the favicon) corresponds to the URL of theSM content item730. As indicated byarrow740C, the user can select theSM content item730 by dragging thefavicon738C from thefirst application window732 to thesecond application window734, and then dropping thefavicon738C on the drop-target object736. Responsive to the drag-and-drop of thefavicon738C, theSM system308 can receive and process a link embedded in thefavicon738C as described above.
According to additional or alternative aspects,SM system308 can select a SM content item published on a SM platform using an input other than a drag-and-drop input. For example, as noted above, a user can select a SM content item using a copy-and-paste input via the user interface. In particular, the user can select a SM content item by (i) copying a URL displayed in an address bar of webpage associated with the SM content item and (ii) pasting the URL into the graphical user interface ofSM system308. In one implementation, the user can paste the URL anywhere in the graphical user interface ofSM system308. In another implementation, the user interface ofSM system308 can include a designated area for the user to paste the URL. By copying and pasting the URL of the webpage associated with the selected SM content item,SM system308 can receive a link to the SM content item in the SM platform.SM system308 can then use the link to retrieve the SM content item from the SM platform as described above.
FIG. 8 illustrates a flowchart of anexample process800 for obtaining a SM content item from a SM platform. As shown inFIG. 8, atblock810, the computing system accesses a SM platform. Atblock812, the computing system selects a SM content item published on the SM platform. Atblock814, the computing system receives a link to the selected SM content item. Atblock816, the computing system uses the received link to retrieve the selected SM content item from the SM platform. Atblock818, the computing system stores the retrieved SM content item in a data storage unit. Atblock820, the computing system integrates the retrieved SM content item into a video program as described below.
In theexample process800 described forFIG. 8,SM system308 receives and uses a link to retrieve a selected SM content item. As noted above, in some aspects,SM system308 can receive and use other information to retrieve a selected SM content item. For example,SM system308 can receive information indicating an account identifier and a timestamp responsive toSM system308 selecting a SM content item. The account identifier can identify the publisher of the selected SM item on the relevant SM platform. The account identifier can also be referred to as a username, profile name, screen name, or handle of the publisher. The timestamp can indicate a time at which the selected SM content item was published on the SM platform. To retrieve the selected SM content item,SM system308 can access a webpage corresponding to the received account identifier on the SM platform, identify the SM content item on the webpage using the received timestamp, and then copy the identified SM content item into a data storage unit of theSM system308.
In one example,SM system308 indirectly accesses the SM platform (e.g., via a SM dashboard application) and selects a SM content item (e.g., via a drag-and-drop input). Responsive toSM system308 selecting SM content item,SM system308 receives an indication of an account identifier and a timestamp corresponding to the selected SM content item.SM system308 then directly accesses the SM platform and navigates to a webpage corresponding to the received account identifier. In one implementation,SM system308 can first access the SM platform and then input the received account identifier into a search functionality of the SM platform to navigate to the webpage corresponding to the received account identifier.
In another implementation,SM system308 can simultaneously access the SM platform and navigate to the webpage corresponding to the received account identifier. For instance, some SM platforms are configured such that the webpage corresponding to the received account identifier can be determined prior to accessing the SM platform. As one example, FACEBOOK™ is currently structured such that the URL for a webpage corresponding to a particular account identifier can be determined by using www.facebook.com as the domain name and the account identifier as the file path (e.g., the URL for the webpage associated with the username “johndoe1234” can be https://www.facebook.com/johndoe1234). Thus,SM system308 can process the received account identifier to determine a URL for the webpage corresponding to the account identifier on the SM platform, and theSM system308 can access the SM platform via that URL.
After navigating to the webpage corresponding to the account identifier,SM system308 can identify, using the received timestamp, the selected SM content item on the webpage. For example,SM system308 can crawl the webpage to identify the SM content item having a timestamp that matches the received timestamp. In some instances, the timestamp can be in the form of an absolute time (e.g., a calendar date and/or clock time). In other instances, the timestamp indicated on the webpage can indicate a time differential (e.g., “5 mins ago”) between the time at whichSM system308 accessed the webpage and the time at which the SM platform published the SM content item. In such instances,SM system308 can be operable to compute the time differential to facilitate identifying the selected SM content item from among multiple SM contents published on the webpage.
In some aspects,SM system308 can utilize a stored set of rules to recursively search within the webpage for the selected SM content item. In an example, the webpage may display some SM content items but hide other SM content items when theSM system308 initially navigates to the webpage. For instance, the webpage may contain one or more hidden SM content items arranged in a tree-type structure (e.g., nested comments and/or replies, which are initially collapsed on the webpage). These hidden SM content items can be accessed responsive toSM system308 selecting (e.g., clicking on) certain nested link objects on the webpage. By selecting a nested link object, a part or all of the tree-type structure expands to reveal some or all of the hidden SM content items. In some instances, there may be multiple nested link objects in the tree-type structure so that theSM system308 has to select each of the multiple nested link objects to access all hidden SM content items in the tree-type structure (e.g., to traverse multiple nesting levels of hidden SM content items in the tree-type structure). In this example, the set of rules utilized by theSM system308 can recursively detect and select such nested link objects to thereby allowSM system308 to access and evaluate hidden SM content items in an effort to identify the selected SM content item on the webpage.
As an example,FIGS. 9A-9C illustrate adisplay screen900 ofSM system308 as theSM system308 detects and selects nested link objects901A,901B on a webpage. As shown inFIG. 9A, the webpage initially displaysSM content items930A and a first nested link object901A. As shown inFIG. 9B, the webpage displays hiddenSM content items930B responsive toSM system308 selecting the first nested link object901A displayed by the webpage inFIG. 9A. Additionally, inFIG. 9B, the webpage displays a second nestedlink object901B responsive toSM system308 selecting the first nested link object901A. As shown inFIG. 9C, the webpage displays additionalSM content items930C responsive toSM system308 selecting the second nestedlink object901B.
AfterSM system308 identifies the SM content item, theSM system308 can then retrieve the identified SM content item from the webpage of the SM platform and can store the SM content item in a data storage unit ofSM system308. For example,SM system308 can analyze the identified SM content item on the webpage to determine data corresponding to fields in a SMS database and then copy that data into those fields (e.g., via a screen scraping process). For instance, to determine data corresponding to fields in the SMS database,SM system308 can analyze the webpage to identify files having file extensions corresponding to certain data types (e.g., “.jpg” corresponds to an image, “.txt corresponds to text, “.mov” corresponds to a video, etc.). In an example, the SMS database can include one or more generic fields for storing data identified on the website, which does not correspond to any of the other fields in the SMS database.
In some aspects, the set of rules utilized bySM system308 can additionally or alternatively causeSM system308 to detect that an identified SM content item contains a particular type of data and, based on such detection,cause SM system308 to take certain actions to obtain that type of data for the SM content item. In an example,SM system308 can detect that an identified SM content item contains an image and the identified SM content item is displayed on a webpage containing other SM content items (e.g., other posts, comments, and/or replies in a nested arrangement). In this example, a rule may specify that when an identified SM content item contains an image and is displayed along with other SM content items on a first webpage,SM system308 selects an object associated with the identified SM content item to navigate to second webpage corresponding to that SM content item (e.g., a dedicated webpage displaying the identified SM content item without any other SM content items). TheSM system308 can then obtain the image from the second webpage. This may, for instance, facilitateSM system308 obtaining a higher resolution version of the image. In another example, a rule may specify that similar actions are taken when the identified SM content item contains a video to facilitateSM system308 obtaining a higher resolution version of the video.
In some instances, this account identifier and timestamp approach to retrieving a SM content item can be employed in scenarios in which a link cannot be obtained responsive to selecting a SM content item. For example, some SM platforms and/or some SM dashboard applications may not provide selectable objects having an embedded link. In other instances, this approach can be applied in scenarios in which the relevant SM platform does not provide an API for requesting SM content items. In still other instances,SM system308 can employ this approach to provide a more robust system capable of retrieving SM content items in multiple ways. Further still,SM system308 can optionally combine the link approach with the account identifier and timestamp approach to retrieve SM content items from a particular SM platform.
FIG. 10 illustrates a flowchart of anotherexample process1000 for obtaining a SM content item from a SM platform. Atblock1010, a computing system accesses a SM platform. Atblock1012, the computing system selects a SM content item published on the SM platform. Atblock1014, responsive to the computing system selecting the SM content item, the computing system receives information indicating an account identifier and a timestamp corresponding to the selected SM content item. Atblock1016, the computing system uses the received account identifier and timestamp to retrieve the SM content item from the SM platform. Atblock1018, the computing system stores the retrieved SM content item in a data storage unit. Atblock1020, the computing system integrates the retrieved SM content item into a video program as described below.
As noted above, theSM system308 can retrieve a SM content item by recursively searching and evaluating a webpage for a selected SM content item.FIG. 11 illustrates a flowchart of anotherexample process1100 for obtaining a SM content item from a SM platform. Atblock1110, a computing system accesses a SM platform. Atblock1112, the computing system selects a SM content item published on the SM platform. Atblock1114, responsive to selecting the SM content item, the computing system accesses a webpage of the SM platform. Atblock1116, the computing system detects that the webpage contains a nested link object on the webpage. The nested link object is selectable to display one or more hidden SM content items on the webpage. Atblock1118, the computing system selects the nested link object on the webpage to display the one or more hidden SM content items on the webpage. Atblock1120, responsive to selecting the nested link object, the computing system evaluates the displayed one or more hidden SM content items on the webpage to determine whether the selected SM content item is displayed on the webpage. Atblock1122, the computing system determines, based on the evaluation atblock1120, whether the selected SM content item is displayed on the webpage. If it is determined atblock1122 that the selected SM content item is not displayed on the webpage, then theprocess1100 returns to block1116. If it is determined atblock1122 that the selected SM content item is displayed on the webpage, then the computing system retrieves the selected SM content item via the webpage atblock1124. In this way, theprocess1000 can repeat the steps atblocks1116,1118, and1120 until the computing system determines that the selected SM content item is displayed on the webpage.
In one example implementation of theprocess1100, the computing system can receive an account identifier and a timestamp that each correspond to the selected SM content item responsive to the selection atblock1112. In this example, the computing system can access the webpage using the received account identifier. Additionally, the computing system can evaluate the displayed hidden SM content item(s) atblock1120 using the received timestamp. For instance, the computing system can determine that the selected SM content item is displayed on the webpage by determining, based on the evaluation, that one of the displayed hidden content items has a timestamp that matches the received timestamp corresponding to the selected SM content item.
In the examples described above,SM system308 can retrieve a SM content item from the SM platform responsive toSM system308 selecting the SM content item. According to some aspects,SM system308 can cache one or more SM content items published by one or more publishers beforeSM system308 selects the SM content item(s). For example,SM system308 can store SM content item(s) in a cache database and then, responsive toSM system308 selecting a SM content item,SM system308 can provide stored data for the SM content item from the cache database to the SMS database. This can allowSM system308 to more rapidly populate the SMS database with selected SM content items published by the one or more publishers.
In one example,SM system308 can select (perhaps based on input from the user) a publisher from among multiple potential publishers based on criteria such as, for example, a frequency with which the publisher's SM content items have been added to the SMS database in the past, an extent to which the publisher is considered to be an authority on particular topics, and/or an anticipated need for SM content items published by the publisher in the future. For instance,SM system308 can select a publisher responsive toSM system308 determining that greater than a threshold number of SM content items published by the publisher were added to the SMS database over a given period of time. Additionally, for instance, in a scenario in which SM system308 (or a user) determines that a future news broadcast may include a story on a particular event,SM system308 can select a publisher that is likely to publish SM content items relating to the event. For example, theSM system308 can analyze a program schedule for an upcoming video program and automatically select the publisher based on the analysis of the program schedule. Other examples of criteria that can be used to select a publisher are also possible. AfterSM system308 selects the publisher,SM system308 monitors activity by the publisher on the SM platform and stores, in a cache database, SM content items published on the SM platform by the publisher.
In an example implementation,SM system308 can use a stored set of rules to cache SM content items for a selected publisher. The rules can, for example, facilitateSM system308 recursively searching for, identifying, selecting, and retrieving SM content items on the webpage associated with the selected publisher. In an aspect, the set of rules can provide a framework for recursively searching for SM content items on a webpage associated with the selected publisher in a manner similar to that described above. For example, as described above, the webpage may contain one or more hidden SM content items that are initially hidden in a tree-structure, but which can be displayed by selecting nested link object(s) on the webpage. The rules can facilitateSM system308 searching for SM content items by recursively detecting and selecting such nested link objects so thatSM system308 can access a tree of hidden SM content items from the root down. Such rules can thus facilitateSM system308 comprehensively identifying some or all SM content items on the webpage associated with the publisher (including SM content items that may be initially hidden or otherwise inaccessible whenSM system308 initially navigates to the webpage).
AsSM system308 identifies SM content items on the webpage,SM system308 can select those SM content items and responsively receive information identifying the SM content item (e.g., a link and/or an account identifier and timestamp) from the SM platform. TheSM system308 can then compare the received information to the cache database to determine whether the SM content item associated with the information was previously retrieved and stored in the cache database. IfSM system308 determines that the information identifying the SM content item is not present in the cache database, thenSM system308 can retrieve the SM content item as described above.
In some aspects,SM system308 can periodically repeat this cache process of searching for, identifying, selecting, and retrieving SM content items for a selected publisher on a SM platform. In one example,SM system308 can repeat this cache process to update the cache database once every five minutes. The interval between updates can be different in other examples.
As noted above, after the cache database has been populated with SM content items,SM system308 can use the cache database to add a SM content item to the SMS database (e.g., for preparing and/or integrating the SM content item into a media program). In particular,SM system308 can access the SM platform and select a SM content item, for example, as described above with respect toFIGS. 6-7C. Responsive toSM system308 selecting the SM content item,SM system308 can receive information identifying the SM content item. For example,SM system308 can receive a link and/or an indication of an account identifier and timestamp as described above. Using the received information,SM system308 can determine whether the selected SM content item is stored in the cache database. IfSM system308 determines that the selected SM content item is stored in the cache database,SM system308 can provide the SM content item from the cache database to the SMS database. Otherwise,SM system308 can retrieve the selected SM content item from the SM platform as described above.
FIG. 12 illustrates a flowchart of anotherexample process1200 for obtaining a SM content item. Atblock1210, a computing system selects a publisher of SM content items on a SM platform. Atblock1212, the computing system monitors activity by the publisher on the SM platform and stores, in a cache database, SM content items published on the SM platform by the publisher. Atblock1214, the computing device accesses the SM platform. Atblock1216, the computing system selects a SM content item published by the publisher on the SM platform. Atblock1218, the computing system receives information identifying the SM content item. Atblock1220, the computing system determines that the selected SM content item is stored in the cache database based on the information received atblock1018. Atblock1222, the computing system provides the identified SM content item from the cache database to an SMS database.
FIG. 13 illustrates a flowchart of anotherexample process1300 for obtaining a SM contain item. Atblock1310, a computing system selects a publisher of SM content items on a SM platform. Atblock1312, the computing system periodically retrieves, from the SM platform, one or more SM content items published by the selected publisher. Atblock1314, the computing system stores each retrieved SM content item in cache storage of the computing system. Atblock1316, the computing system selects a SM content item on the SM platform to be integrated in a video program. Atblock1318, responsive to selecting the SM content item, the computing system determines that the selected SM content item is stored in the cache storage. Atblock1320, the computing system uses the selected SM content item stored in the cache storage to integrate the selected SM content item into the video program.
In one example implementation, the computing system can store each retrieved SM content item in the cache storage atblock1314 by (i) receiving information corresponding to the SM content item, (ii) determining whether the SM content item was previously stored in the cache storage using the received information, and (iii) responsive to determining that the SM content item was not previously stored in the cache storage, storing the SM content item in the cache storage. The received information can be, for example, a timestamp corresponding to the retrieved SM content item. In such this example, the computing system can determine whether the SM content item was previously stored in the cache storage by comparing the timestamp to timestamp information stored in the cache storage for previously retrieved SM content items.
In an example implementation, the computing system can retrieve the one or more SM content items atblock1312, by (a) periodically accessing a webpage corresponding to the selected publisher on the SM platform, (b) detecting that the webpage contains a nested link object on the webpage, (c) selecting the nested link object on the webpage to display the one or more hidden SM content items on the webpage, (d) responsive to selecting the nested link object, the computing system retrieving the displayed one or more hidden SM content items on the webpage, and (e) repeating acts (b)-(d) until a condition is met. The condition can be met, for example, when the computing system follows a link that leads outside of the SM platform (e.g., selecting a link to a different SM platform) and/or when the computing system has traversed more than a predetermined number of levels down a tree-type structure of hidden content items (e.g., after the computing system carries out acts (b)-(d) the predetermined number of times). In one example, the predetermined number can be eight such that the computing system will discontinue retrieving SM content items for a particular instance ofblock1312 after the computing system has carried out acts (b)-(d) eight times. Other examples are also possible.
As noted above,SM system308 can select a SM content item based on an input received from a user via a user interface. According to some aspects,SM system308 can select a SM content item without user input. For example,SM system308 can receive a communication from a third party source, process the communication to determine information relating to a SM content item, and then use the determined information to retrieve the SM content item from the SM platform (or cache storage).
In one implementation,SM system308 can include or have access to an email inbox, which receives an email including an indication of one or more published SM content items. In some instances, a third party source can send the email to the inbox to suggest a SM content item that can be of interest to the user. One example of a third-party email service that provides emails including indications of SM content items is DATAMINR® provided by DATAMINR, INC of New York City, N.Y. When the email is received,SM system308 can determine from the email information relating to the SM content item. The determined information can be in the form of a link to the SM content item and/or an indication of the account identifier and the timestamp corresponding to the SM content item. Using the determined information,SM system308 can obtain the SM content item as described above.
In some examples,SM system308 can obtain all SM content items indicated in a received communication. In other examples,SM system308 can determine which (if any) of the SM content item(s) indicated in the communication should be retrieved. To do so,SM system308 can determine characteristic information for each SM content item in the communication and compare the characteristic information to one or more predetermined criteria, for instance. The characteristic information and predetermined criteria can relate to the identity of the publisher, the presence and/or quantity of certain keywords or phrases, etc. Other examples are also possible.
FIG. 14 illustrates a flowchart of anexample process1400 for obtaining SM data associated with a SM content item. As shown inFIG. 14, atblock1410, a computing system receives a communication related to a SM content item. Atblock1412, the computing system processes the communication to determine information relating to the SM content item. Atblock1414, the computing system uses the determined information to retrieve the SM content item. Atblock1416, the computing system stores the retrieved SM content item in a data storage unit.
As noted above, theSM system308 can use a plurality of sets of platform-specific rules to obtain SM content items from different SM platforms.FIG. 15 illustrates a flowchart of anexample process1500 for retrieving an SM content item using platform-specific rules. In this example, a computing system is operable to access a plurality of SM platforms, and the computing system stores a plurality of sets of platform-specific rules for retrieving SM content items from the plurality of SM platforms. Each set of the platform-specific rules corresponds to a respective one of the plurality of SM platforms.
Atblock1510, the computing system accesses one SM platform of the plurality of SM platforms. Atblock1512, the computing system selects a SM content item published on the accessed SM platform. Atblock1514, responsive to the selection of the SM content item on the SM platform, the computing system selects, from among the plurality of sets of platform-specific rules, a set of platform-specific rules corresponding to the accessed SM platform. Atblock1516, the computing system uses the selected set of platform-specific rules to retrieve the selected SM content item. Atblock1518, the computing system integrates the retrieved SM content item into a video program.
FIG. 16 illustrates another flowchart of anexample process1600 for retrieving SM content items using platform-specific rules. In this example, a computing system is operable to access a plurality of SM platforms, and the computing system stores a plurality of sets of platform-specific rules for retrieving SM content items from the plurality of SM platforms. Each set of the platform-specific rules corresponds to a respective one of the plurality of SM platforms.
Atblock1610, the computing system retrieves a first SM content item from a first SM platform of the plurality of SM platforms. As shown inFIG. 16, the computing system can retrieve the first SM content item atblock1610 by performing the operations specified inblocks1610A-1610D. Atblock1610A, the computing system accesses the first SM platform. Atblock1610B, the computing system selects the first SM content item published on the first SM platform. Atblock1610C, responsive to selecting the first SM content item on the first SM platform, the computing selects, from among the plurality of sets of platform-specific rules, a first set of platform-specific rules corresponding to the first SM platform. Atblock1610D, the computing system uses the first set of platform-specific rules to retrieve the first SM content item from the first SM platform.
Atblock1612, the computing system retrieves a second SM content item from a second SM platform of the plurality of SM platforms. As shown inFIG. 16, the computing system can retrieve the first SM content item atblock1612 by performing the operations specified inblocks1612A-1612D. Atblock1612A, the computing system accesses the second SM platform. Atblock1612B, the computing system selects the second SM content item published on the second SM platform. Atblock1612C, responsive to selecting the second SM content item on the second SM platform, the computing selects, from among the plurality of sets of platform-specific rules, a second set of platform-specific rules corresponding to the second SM platform. Atblock1612D, the computing system uses the second set of platform-specific rules to retrieve the second SM content item from the second SM platform.
Atblock1614, the computing system integrates the first SM content item and the second SM content item into a video program.
Although the concepts describe above may relate toSM system308 obtaining SM content items and/or associated data,SM system308 can obtain other data using techniques similar to those described above. In one example, the user can ingest intoSM system308 data stored on a personal computer (PC) desktop by dragging a file from a folder on the PC desktop to a drop-target object provided in the graphical user interface of theSM system308. In another example, the user can copy the file from the folder and paste it into the user interface ofSM system308. In a further example, the user can add an image on a webpage of a web browser toSM system308 by copying a URL of the image and pasting it into the user interface ofSM system308. Other examples can also be possible.
B. SM Content Item Preparation
Once the SMS database is populated with one or more SM content items,SM system308 can prepare the SM content item(s) for integration into the video program. This process can includeSM system308 selecting a template from among multiple templates to determine an arrangement and/or layout for presenting the SM content item(s) in the video program. The templates can include graphics and/or animations that are pre-formatted to allow for aspects of one or more SM content items to be incorporated by a CG in pre-defined ways. For example, a template can define respective positions at which text, images, and/or videos of the SM content item can be overlaid on a video segment of the video program. The template can also define an order in which different SM content items will be presented during the video program. Thus, video programs (e.g., news stories) can easily be produced by leveraging a previously created template. This can save time and maintain format consistency across multiple video programs and/or portions thereof.
According to some aspects, the template can be modified by a user ofSM system308 in various ways. According to additional aspects, the template can also be selected before the SM content items are selected.
FIG. 17 illustrates an examplegraphical user interface1700 including atemplate1760 populated with images corresponding toSM content items1730. Theuser interface1700 can also include a list1742 having multiple slots populated with theSM content items1730. In some aspects, each image location in the template can be associated with a respective slot on the list1742. As such, the image displayed in a particular location in the template can be the image of the SM content item occupying the slot associated with that location.
As shown inFIG. 17, each slot includes a respective drop-target object1764 to facilitate selecting a SM content item for that slot on the list1742. Further, each drop-target object1764 (and, thus, each slot) is associated with a different, respective record location in a SMS database.
In one aspect, the drop-target objects1764 can be utilized to add SM content items from a web browser application, for example, as described above with respect toFIGS. 6 to 7C. Accordingly, each drag-and-drop input received bySM system308 stores a record in the SMS database, populates the list with information for the selected SM content item, and populates the template with an image. In this way, the list, the template, and the SMS database can be populated with a SM content item at the same time. In the event that a new SM content item is dragged-and-dropped to a slot that already includes another SM content item,SM system308 can replace the other SM content item with the new SM content item in the slot and overwrite the associated record in the SMS database with the data of the new SM content item. In another aspect, the drop-target objects1764 can be utilized to add SM content items already stored in the SMS database.
Theexample user interface1700 also includes a drop-target object1736 that functions in the same manner as described above with respect to the drop-target object636 inFIG. 6. That is, responsive to the user dragging and dropping a SM content item on the drop-target object1736, the SM data obtained for the SM content item can be stored dynamically stored in an available storage location within the SMS database.
The user interface ofSM system308 can include apreview window1762 that displays a selected template populated with one or more selected SM content items. In this way, a user can determine how the SM content item(s) will appear when integrated into the video program and determine whether any modifications should be made. In some instances, it may not be appropriate or desirable to integrate an entire SM content item into the video program. For example, the text obtained for the SM content item can include a URL that the user may wish to omit to provide a cleaner presentation of the SM content item during the video program. As another example, the text of the SM content item may include vulgarities or personal information that the user may wish to omit from the video program.
The user interface ofSM system308 can facilitate modifying one or more aspects of a SM content item. In one example implementation, the user interface can display a list of SM content items that have been selected for integration into the video program (e.g., thelist642 inFIG. 6 and/or the list1742 inFIG. 17). In this example, for each of the listed SM content items, the user interface can also include anedit button1766. When theedit button1766 is selected for a particular SM content item, theSM system308 can provide one or more editable data fields displaying the data stored in the SMS database for that SM content item. Anexample user interface1800 providingeditable data fields1870 is illustrated inFIG. 18.
To modify the text associated with a particular SM content item, the user can modify the text displayed in an editable text field of the user interface for that SM content item. Responsive to the user modifying the text in the user interface,SM system308 can automatically modify the corresponding data stored in the SMS database in a consistent manner. In other examples, other aspects of the SM content item (e.g., videos, images, or audio files) can be modified via the user interface to causeSM system308 to modify corresponding data stored in the SMS database. In some examples, any modifications to the SM content item can be shown in real-time in thepreview window1762 of the user interface forSM system308.
Typically, SM platforms provide data for SM content items in a common web browser file format such as, for example, HTML, HTML5, or JavaScript. On the other hand, one or more components of theVPS202 can utilize an entirely different file format to playout videos, text, or images.SM system308 can facilitate integrating SM content items into the video program, at least in part, by handling these formatting differences. For example,SM system308 can include a CG that (i) displays a SM content item in its native web browser file format in the preview window of the user interface but (ii) reformats the SM content items to a standard broadcast format for display in the video program. Such a CG allows the data obtained for a SM content item to be stored in the SMS database in the format in which it is received from the SM platform. Because the SM content item does not need to be reformatted until the SM content item is ready to be integrated into the video program,SM system308 can reduce the processing workload and time for preparing the SM content item.
C. Example SM Content Item Integration
Once a SM content item is obtained and prepared,SM system308 can facilitate integrating the SM content item into the video program in various ways. According to some aspects, a SM content item can be integrated into the video program via a video camera. In practice, a SM content item can be displayed on a display device located within the field of view of the video camera (e.g., on a set where filming occurs for the video program). For example, the SM content item can be displayed on a touch screen device, which allows an on-air presenter to interact with the SM content item. To facilitate the presenter's interactions with the SM content item,SM system308 can be programmed with instructions that cause predefined actions in response to predetermined touch commands.
In one example, the touch screen can initially display multiple small tiles, each representing a different SM content item. In this example, the SM content items can relate to weather conditions captured in photographs published on SM platforms by various different publishers. As such, each tile can display a different photograph. The position and ordering of the small tiles can be determined by a template selected for the display of the SM content items. The selected template can also include programming instructions that allows the commands provided via the touch screen display to cause predefined actions for the displayed SM content items. For example, if a meteorologist taps on one of the small items a first time, the programming instructions can cause the tile to expand so as to enlarge the photograph and perhaps display additional information associated with the SM content item (e.g., a username, time, location, and/or text published in connection with the SM content item). Other commands can cause an expanded tile to return to its initial size and position in this example. As the meteorologist interacts with the SM content items displayed on the touch screen, a camera can generate a video output including these interactions and thereby integrate the SM content items into the video program.
In some examples, a SM content item can be integrated into the video program viaDVE system304 executing a DVE. To do so,SM system308 can facilitate integrating a selected template and a SM content item into the program schedule maintained by thescheduling system310. The program schedule can include multiple Media Object Server Communication Protocol (“MOS Protocol”) objects that collectively define various content items and actions scheduled to occur for the video program. To facilitate integration of the template and the SM content item,SM system308 can facilitate transforming the selected template and SM content item into a MOS object. In practice, this can be achieved by creating a record in a scheduling database having appropriate MOS protocol fields populated by references to the SM fields in the SMS database. In one example implementation,SM system308 can create the record in the scheduling database in response to the user dragging-and-dropping a selectable object in the user interface of the SM system into the scheduling system. Other example mechanisms for creating a MOS object based on SM content items are also contemplated.
The MOS object can include programming instructions that correspond to a sequence for playing out multiple states of the SM content items and the template. Based on such instructions,sequencing system306 can be employed to step through the different states (e.g., in response to a user provided input).
The SM content item and the template also can be integrated into the video program via a DVE system of the video-broadcast system204. In this context, the SM content item can be integrated in a manner that persistently displays the SM content item even if the video program is not being broadcasted (e.g., during commercial breaks). For example, such implementations can be utilized to display SM content items related to amber alerts, severe weather warnings, and/or public safety advisories.
IV. Example VariationsAlthough some of the acts and/or functions described in this disclosure have been described as being performed by a particular entity, such acts and/or functions can be performed by any entity, such as those described in this disclosure. Further, although the described acts and/or functions have been recited in a particular order, the acts and/or functions need not be performed in the order recited. However, in some instances, it can be desired to perform the acts and/or functions in the order recited. Also, not all of the described acts and/or functions need to be performed to achieve one or more of the benefits provided by this disclosure, and therefore not all acts and/or functions are required.
Although some of the acts and/or functions described in this disclosure have been described as being performed by a particular entity, the acts and/or functions can be performed by any entity, such as those entities described in this disclosure. Further, although the acts and/or functions have been recited in a particular order, the acts and/or functions need not be performed in the order recited. However, in some instances, it can be desired to perform the acts and/or functions in the order recited. Further, each of the acts and/or functions can be performed responsive to one or more of the other acts and/or functions. Also, not all of the acts and/or functions need to be performed to achieve one or more of the benefits provided by this disclosure, and therefore not all of the acts and/or functions are required.
Although certain variations have been discussed in connection with one or more example of this disclosure, such variations can also be applied to all of the other examples of this disclosure as well.
Although select examples of this disclosure have been described, alterations and permutations of these examples will be apparent to those of ordinary skill in the art. Other changes, substitutions, and/or alterations are also possible without departing from the invention in its broader aspects as set forth in the following claims.