System and method for publishing content for broadcast

A system for publishing content for broadcast includes one or more processors. The one or more processors are configured to identify, in response to a user query, one or more video clips of a plurality of video clips stored in one or more storage devices. The one or more processors are further configured to display an indication of the one or more identified video clips and generate, based on a user selection of the one or more identified video clips, a rundown comprising the user-selected video clips. The one or more processors are further configured to determine that each of the user-selected video clips comply with a plurality of broadcasting requirements stored in the one or more storage devices and generate a playlist comprising each of the user-selected video clips of the rundown that comply with the plurality of broadcasting requirements.

TECHNICAL FIELD

This disclosure relates in general to the broadcasting of content and more particularly to a system and method for publishing content for broadcast.

BACKGROUND

Generally, broadcasting networks distribute media content to a plurality of consumers for a variety of reasons. For example, television networks may broadcast shows or movies for entertainment purposes but may also broadcast national and international news events or information. As another example, television networks may broadcast home shopping content which advertises goods for consumer purchase. The distribution of media content typically requires a number of determinations such as the selection of content for broadcast and the sequence of broadcast for selected content.

SUMMARY OF THE DISCLOSURE

According to one embodiment, a system for publishing content for broadcast includes one or more processors. The one or more processors are configured to identify, in response to a user query, one or more video clips of a plurality of video clips stored in one or more storage devices. The one or more processors are further configured to display an indication of the one or more identified video clips and generate, based on a user selection of the one or more identified video clips, a rundown comprising the user-selected video clips. The one or more processors are further configured to determine that each of the user-selected video clips comply with a plurality of broadcasting requirements stored in the one or more storage devices and generate a playlist comprising each of the user-selected video clips of the rundown that comply with the plurality of broadcasting requirements.

Technical advantages of certain embodiments may include improving the efficiency of underlying computers and network by reducing the amount of information communicated over the network and reducing the time needed to select and/or broadcast content. Other technical advantages will be readily apparent to one skilled in the art from the following figures, descriptions, and claims. Moreover, while specific advantages have been enumerated above, various embodiments may include all, some, or none of the enumerated advantages.

DETAILED DESCRIPTION OF THE DISCLOSURE

To facilitate a better understanding of the present disclosure, the following examples of certain embodiments are given. The following examples are not to be read to limit or define the scope of the disclosure. Embodiments of the present disclosure and its advantages are best understood by referring toFIGS. 1 through 10, where like numbers are used to indicate like and corresponding parts.

Selecting media content to be broadcast may be challenging for a number of reasons. For example, the amount of available content for broadcast may be large, making it difficult to find and/or choose a particular clip for broadcast. As another example, certain considerations may also affect selection of content for broadcast. One example of a consideration may be whether a particular media clip is of a sufficient duration to fill an open (or otherwise unprogrammed or unplanned) broadcasting slot. As another example, the timing of the last broadcast of a particular media clip may affect whether the particular clip should be broadcast again in the future. As another example, a physical retail inventory of products may affect selection of content for broadcast. As yet another example, rights pertaining to particular media content may change, expire or otherwise lapse, restricting when or how particular content may be distributed. Thus, selecting content for broadcast may be a time-consuming process in which many considerations must be accounted for.

This disclosure contemplates an unconventional system for publishing content for broadcast that accounts for one or more broadcasting requirements that utilize real-time (or near real-time) data. In some embodiments, the unconventional system may present, for user-selection, only content that complies with the one or more broadcasting requirements. In other embodiments, the unconventional system may prevent user-selected content from being broadcast if the content does not comply with one or more broadcasting requirements. As explained above, the unconventional system described herein may be associated with benefits such as improved efficiency and/or reduction in error rates relative to conventional systems.

FIG. 1illustrates a network environment100for a system140for publishing content for broadcast. As illustrated inFIG. 1, network environment100includes a network110, one or more users120, devices130, one or more storage devices150, and system140. In some embodiments, system140may include one or more storage devices (e.g., memory142) and a processor144. Generally, system140may publish content for broadcast based on one or more broadcasting requirements. As used herein, a “broadcasting requirement” refers to a requirement that indicates whether a video clip may be broadcast.

Network110may facilitate communication between and amongst components of network environment100. This disclosure contemplates network110being any suitable network operable to facilitate communication between the components of network environment100. For example, network110may permit users120to interact with system140. As another example, network110may permit users120to interact with each other. Network110may include any interconnecting system capable of transmitting audio, video, signals, data, messages, or any combination of the preceding. Network110may include all or a portion of a public switched telephone network (PSTN), a public or private data network, a local area network (LAN), a metropolitan area network (MAN), a wide area network (WAN), a local, regional, or global communication or computer network, such as the Internet, a wireline or wireless network, an enterprise intranet, or any other suitable communication link, including combinations thereof, operable to facilitate communication between the components.

As described above, network environment100may include one or more users120in some embodiments. As depicted inFIG. 1, network environment100includes two users120aand120b. As is also depicted inFIG. 1, each user120is associated with one or more devices130. For example, user120ais associated with devices130aand user120bis associated with devices130b. In some embodiments, users120use devices130to interact with system140over network110. For example, users120may use devices130to select content for broadcast. In some embodiments, a user's interactions with system140may require system140to communicate with one or more storage devices150.

As an example, user120amay use device130ato communicate with system140. User120amay send a query (e.g., query805ofFIG. 8) to system140over network110in connection with a request to generate a rundown (also referred to as a “rundown generation request”). As used herein, a “rundown” is used to describe a listing of one or more media clips (also referred to as video clips) selected by a user120. In some embodiments, user120amay define particular characteristics associated with a video clip to facilitate the generation of the rundown. As an example, user120amay query system140for video clips associated with one or more of a particular date, a particular product, a particular source code, a particular show, a particular date, etc. As used herein, a “source code” may refer to a unique identifier for each show and order of product(s) and/or video clip(s)180. As an example, a source code for a show may be YYMMDDHHOO, where YY refers to a year, MM refers to a month, DD refers to a day, HH refers to hour, and OO refers to a position (or order) of a video clip180in a sequence. In response to receiving the user's query, system140may identify, based on the characteristics defined by the user, video clips stored in one or more storage devices150and send an identification or indication of the identified video clips180for display on device130aof user120a. In some embodiments, system140only sends identifications of those video clips that (1) meet the characteristics defined by the user and (2) comply with one or more broadcasting requirements. In such an embodiment, the video clips180(or indications thereof) selected by user120afor inclusion in their rundown are permitted to be broadcast. As will be explained in further detail below,FIGS. 2-7are examples of user interfaces that may be displayed on device130aas user120ainteracts with system140.

As depicted, network environment100also includes one or more storage devices150. Storage devices150may, in some embodiments, be databases configured to store data in an organized manner.FIG. 1illustrates network environment100having four separate storage devices150, each configured to store different types of data. In other embodiments, network environment100may include more or fewer storage devices150(e.g., a single storage device150). As depicted, storage device150astores inventory item data160. Generally, inventory item data160refers to data that is associated with a product or item in inventory. Inventory item data160may include one or more of a price corresponding to an inventory item, a date associated with an inventory item, an identification of one or more videos corresponding to an inventory item, and a quality of a video corresponding to an inventory item. As an example, storage device150amay store the following inventory item data160about a Product A:

As illustrated in TABLE 1 above, Product A is associated with an inventory quantity of 25 units, two video clips (A0001, A0002), particular pricing, and video clip dates. Although particular types of inventory item data160have been described and disclosed, this disclosure recognizes that inventory item data160may comprise any suitable data associated with an item in inventory.

Storage device150bis configured to store non-inventory item data170as illustrated inFIG. 1. Generally, non-inventory item data170refers to data that is not associated with a product or item in inventory. In some embodiments, non-inventory item data170includes data about products or services not available for sale through the network that is broadcasting content. As an example, storage device150bmay store the following non-inventory item data170about a Service A:

As illustrated in TABLE 2 above, Service A is associated with three video clips180(SA0001, SA0002, SA0003), each having a different duration, first air date, and expiration date. In some embodiments, video clips180associated with non-inventory item data170are included in one or more rundowns (e.g., rundown815ofFIG. 8) generated by system140. In some embodiments, a video clip associated with non-inventory item data170is a commercial that is broadcast between other video clips180(e.g., video clips associated with an item in inventory). Although particular types of non-inventory item data170have been described and disclosed, this disclosure recognizes that non-inventory item data170may comprise any suitable data not associated with an item in inventory.

As illustrated inFIG. 1, storage device150cis configured to store video clips180. Video clips180may be media files (e.g., video files) associated with inventory items and/or non-inventory items. For example, one or more of video clips180may be a video clip associated with a product or item in inventory. As another example, one or more of video clips180may be a video clip associated with a product or item not in inventory. In some embodiments, video clips180include each video clip identified in inventory item data160and/or non-inventory item data170. For example, video clips180may include one or more of video clips A0001, A0002, SA0001, SA0002, and SA0003 described above.

In some embodiments, network environment100includes a storage device150dthat stores one or more broadcasting requirements190. As described above, a broadcasting requirement may be a requirement that indicates whether a video clip may be broadcast. In some embodiments, broadcasting requirements190are pre-defined by a manufacturer (e.g., manufacturer of system140). In other embodiments, broadcasting requirements190are defined and/or updated by user120. TABLE 3 below illustrates examples of various broadcasting requirements:

TABLE 31quantity of item in inventory is greater than 502last air date of video clip is greater than 14 days3price of item in inventory is greater than $9.994expiration date of video clip has not passed

In some embodiments, system140uses one or more broadcasting requirements190to determine whether a video clip is eligible to be identified for rundown purposes and/or broadcast. As an example, broadcasting requirement 1 identified in TABLE 3 above requires that a video clip associated with an item in inventory be greater than 50 in order for the video clip to meet the requirement. In some embodiments, system140may apply broadcasting requirement 1 when determining whether to identify a video clip as a potential rundown candidate or otherwise determining whether the video clip can be broadcast. As an example, system140may not identify video clips A0001 or A0002 as eligible for broadcast based on broadcasting rule 1 of TABLE 3 above.

In some embodiments, system140determines whether a video clip is eligible to be broadcast based on one or more applicable stored broadcasting requirements190. In such embodiments, system140is configured to determine which broadcasting requirements190are applicable based on whether a video clip is associated with an inventory item or a non-inventory item. For example, system140may determine that broadcasting requirements 1-4 from TABLE 3 above apply when a video clip is associated with an inventory item but that only broadcasting requirements 2 and 4 apply when a video clip is associated with a non-inventory item. For example, system140may determine, on Jul. 28, 2017, that video clips A0002 and SA0003 are the only video clips180stored in storage device150cthat are eligible for broadcast. In such an example, system140would not identify video clips A0001, SA0001, or SA0003 in response to a user query in connection with the generation of a rundown.

AlthoughFIG. 1depicts storage devices150being physically separate from system140, this disclosure recognizes that system140may include one or more storage devices150that are configured to store one or more of the types of data illustrated inFIG. 1. For example, system140may include one or more storage devices150configured to store inventory item data160, non-inventory item data170, and broadcasting requirements data190(see e.g.,FIG. 8). Thus, this disclosure recognizes that system140may include, or otherwise be communicably coupled to, one or more storage devices150storing the data and/or media content described above and illustrated inFIG. 1.

FIGS. 2-5are examples of user interfaces that may be displayed on user devices130. Turning first toFIG. 2, user interface200(also referred to as “rundown listing interface200”) illustrates a listing of rundowns that have previously been created by one or more users120. As shown inFIG. 2, each rundown may be associated with a rundown title202, a broadcast date and time204, a planned duration206, and a total duration208. For example, the rundown entitled “Rubies Sapphires & Emeralds” is planned for broadcast on May 14, 2017 between 6:00 p.m. and 7:00 p.m. Additionally, the “Rubies Sapphires & Emeralds” rundown has a total duration of 31 minutes, 15 seconds, and 6 milliseconds and a planned duration of 1 hour. The rundown listing interface200illustrates two other generated rundowns: one entitled “Arte d'Argento®—The Art of Silver” (202b) and another entitled “Golden Sunrise—Gold Jewelry Special” (202c). Each rundown202b-cis associated with a respective broadcast date and time204b-c, a planned duration206b-c, and a total duration208b-c.

Additionally, rundown listing interface200may include other features such as the ability to preview the video clips included in each of the generated rundowns and a notes feature permitting users120to include notes about each rundown. The rundown listing interface200illustrated inFIG. 2also includes a menu icon210that presents additional action functions to user120once selected. As illustrated inFIG. 2, the action functions presented upon selection of menu icon210include a “create new rundown” option212and an “export all rundowns” option214. In some embodiments, selecting the “create new rundown” option212presents one or more additional user interfaces on user device130which permit user120to create a new rundown. As an example, user interfaces300,400, and600ofFIGS. 3, 4, and 6may be presented upon selection of the “create new rundown” option212. In some other embodiments, selection of the “export all rundowns” option214results in the exportation of each rundown presented in user interface200to a file that may be saved locally on user device130and/or to a network storage device (e.g., storage device150). Although this disclosure describes certain information and functionality associated with rundown listing interface200, interface200may include any suitable information or functionality about a generated rundown, including a show code, a status, an identification of the user120that generated or last modified a rundown, and last modification date.

FIG. 3illustrates an example of a user interface300that may be displayed on user device130in response to selection of the “create new rundown” option212ofFIG. 2. As illustrated, user interface300may include information about a rundown to be created by user120. For example, user interface300permits user120to define a channel302that will be associated with the rundown to be created by user120, a show title304that will be associated with the rundown to be created by user120, and a planned or expected duration306of the rundown to be created by user120. As illustrated inFIG. 3, user interface300also includes options for a user120to define a show code, a source code, an assigned planner (user) name, and notes associated with the rundown to be created by user120. In some embodiments, the information input by user120on interface300will be saved by system140and displayed when interface200is next presented on user device130. As an example, interface200may be updated to reflect an additional rundown entitled “Friday Night Beauty” to be broadcast on the “Beauty iQ” channel, the rundown having a planned duration of one hour. In some embodiments, the information input by user120on user interface200is stored to one or more storage devices of system140in response to user120selecting the “save” button308. In some embodiments, selection of “save” button308causes an additional interface (e.g., interface400or600ofFIGS. 4 and 6, respectively) to be displayed on user device130.

FIGS. 4 and 6illustrate examples of user interfaces400and600, respectively that may be presented to user120on user device130in response to user-selection of “save” button308on interface300. User interfaces400and600are search interfaces that may permit user120to define characteristics about video clips150to be included in the rundown being created.FIG. 4illustrates a search interface that is configured to receive characteristics about video clips150associated with products or items in inventory (see “product” radio button selected inFIG. 4). If user120instead desired to search for video clips not associated with items in inventory, user120may select another radio button (e.g., the “non-product” radio button404, the “other” radio button406, or the “show” radio button408). This disclosure recognizes that the selection of another radio button from search interface400may result in the display of a different search interface. For example, selection of “non-product” radio button404may cause user device130to display search interface600ofFIG. 6. As illustrated inFIGS. 4 and 6, user120may define characteristics about video clips150associated with items in inventory (by selecting the “product” radio button402) and/or video clips associated with items not in inventory (by selecting the “non-product” radio button404). Although this disclosure describes and depicts only two search interfaces (interfaces400and600), this disclosure recognizes that user device130may display any suitable search interface.

Interface400ofFIG. 4permits user120to input or define search characteristics about a video clip associated with an item in inventory. As illustrated inFIG. 4, user120may specify a number of characteristics about an item in inventory, including a product number410, and depending on whether the “show name” radio button412aor “show code” radio button412bis selected, a show name/title414or show code (not illustrated), and a start air date416and an end air date418associated with a show title or show code. As illustrated inFIG. 4, user120may define a product number (e.g., “A290425”) in the product number field410. After entering search criteria in interface400, user120may select the “search” button420, which may prompt system140to query storage devices150for video clips180that match or substantially match the search criteria entered by user120.

FIG. 5illustrates an interface500showing the search results returned from the search criteria input by user120on interface400. As illustrated inFIG. 5, interface500includes a search result summary505and query hits510. Search result summary505describes a total number of hits returned from the search criteria defined on interface400. As shown inFIG. 5, a search for product number A290425 returned nine hits. In some embodiments, the product number is associated with a product title515. As illustrated inFIG. 5, product title515for product number A290425 is “Doll 10 Precision Stick Concealer w/ Brush.” In some embodiments, each query hit510comprises details about a corresponding video clip180. As illustrated inFIG. 5, query hit510acomprises details about video clip180aand query hit510bcomprises details about video clip180b. Although video clips180a-bare both associated with product number A290425 and have similar pricing information525, these video clips180differ in a number of ways. For example, show information530a-breveal that video clips180a-bwere played on different channels and are assigned different source code numbers. As another example, video clips180a-bdiffer in their duration535and expiration date540. As depicted inFIG. 5, query hit510may comprise any suitable information including but not limited to historical performance data520.

Interface600ofFIG. 6permits user120to input or define search characteristics about a video clip associated with an item not in inventory. The input fields presented on interface600may be different from the input field presented on interface400. For example, user120may define search characteristics for one or more of the search fields illustrated inFIG. 6(e.g., clip type602, duration604, clip start date506, clip end date508). As illustrated inFIG. 6, user120defines a duration of greater than 20 seconds in duration field604. After entering search criteria in interface600, user120may select the “search” button610, which may prompt system140to query storage devices150for video clips180that match or substantially match the search criteria entered by user120.FIG. 7illustrates an interface700showing the search results returned from the search criteria input by user120on interface600.

FIG. 7illustrates an interface700showing the search results returned from the search criteria input by user120on interface600. As illustrated inFIG. 7, interface700includes a search result summary705and query hits510. Search result summary705describes a total number of hits returned from the search criteria defined on interface600. As shown inFIG. 7, a search for a video clip180associated with a non-inventory item170and having a duration of greater than 20 seconds returned47hits.FIG. 7illustrates an example of the first four query hits710a-d. In some embodiments, each query hit710comprises details about a corresponding video clip180. As illustrated inFIG. 5, query hit710acomprises details about video clip180c, query hit710bcomprises details about video clip180d, query hit710ccomprises details about video clip180e, and query hit710dcomprises details about video clip180f. As illustrated inFIG. 7, video clips180c-fmay be associated with particular clips names/titles715, particular durations725, and particular eligibility statuses735. Although certain types details corresponding to each query hit710have been described above, query hit710may comprise any suitable information including but not limited to eligibility reason and use dates.

FIG. 8illustrates an example embodiment of system140. As illustrated, system140includes a rundown generation engine810, a publication engine820, and storage device150. In some embodiments, modules810and820are executable software. In other embodiments, modules810and820are hardware. In yet other embodiments, modules810and820are a combination of software and hardware. Generally, rundown generation engine810is configured to receive one or more queries805from user120and generate a rundown815based on the queries. Publication engine820is generally configured to receive a rundown815and generate a playlist825for broadcast based on rundown815.

As illustrated inFIG. 8, system140may include rundown generation engine810which is communicably coupled to storage device150. AlthoughFIG. 8depicts system140including storage device150that stores the data that is used by rundown generation engine810, this disclosure recognizes that system140need not include storage device150. Rather, rundown generation engine810may instead be communicably coupled to one or more storage devices150that store the data to be used by rundown generation engine810. An example of such an embodiment is depicted inFIG. 1. Rundown generation engine820may be configured to receive one or more queries805from user120over network110and generate rundowns815based on the one or more queries805. Queries805from user120may include any suitable interaction between user120and system140. In some embodiments, queries805are rundown creation requests discussed above in reference toFIG. 3.

In some other embodiments, query805may be a search request associated with a particular rundown creation request as discussed above in reference toFIGS. 4-7. For example, query805may be the search query resulting from user-selection of the “search” action button on interface400. As a result of user120selecting the “search” action button, system140may perform a search through the contents of storage device150to identify one or more video clips180that match or substantially match the criteria input by user120. As used herein, “substantially match” may refer to matching at least 70% or more of the search criteria input by user120.

As described above, system140may, in some embodiments, only identify those video clips180that comply with broadcasting requirements190. As such, rundown generation engine810may be configured to receive query805from user120and identify video clips180based on query805. Rundown generation engine810may further be configured to determine, for each video clip180identified based on query805, whether the video clip180complies with broadcasting requirements190and present on user device130an identification of each video clip that complies with broadcasting requirements190. Rundown generation engine810may be further configured to receive a selection of a presented identification of a video clip180from user device130and add each video clip180associated with a selected identification to an associated rundown. In this manner, rundown815will only include those video clips180that comply with broadcasting requirements190at the time rundown815is generated.

The following is an example of an algorithm that may be executed by rundown generation engine210: (1) receive, from user device130, a first query805requesting to create a first rundown815; (2) receive a second query805requesting an identification of video clips180associated with a product number (e.g., product number 1000A); (3) query inventory item data160for an identification of video clips180associated with the product number; (4) identify, within storage device150, video clips180associated with the product number (e.g., video clips A0001 and A0002); (5) determine, by applying applicable broadcasting requirements190(e.g., broadcasting requirements190applicable to items in inventory), whether each of the identified video clips comply with broadcasting requirements190; (6) upon determining that a first video clip complies with broadcasting requirements190and that a second video clip does not comply with broadcasting requirements190, communicate, to user device130, an identification of the first video clip but not the second video clip (7) upon user selection of an identification of the first video clip, add the first video clip to the first rundown815.

In some embodiments, rundown815includes only a single video clip180. In other embodiments, rundown815includes multiple video clips180. As discussed above, rundown815may include video clips180associated with items in inventory and/or items not in inventory. As an example, rundown815may include two video clips180associated with items in inventory and one video clip not associated with an item in inventory (e.g., an advertisement). This disclosure recognizes that a video clip not associated with an item in inventory may be a commercial for a product, service, or company for which a broadcast network may collect revenue.

Rundown815may, in some embodiments, be associated with a specified broadcast date and/or time. The broadcast date and/or time may be automatically assigned by system140and/or set by user120. As an example, system140may automatically assign a broadcast date and/or time to be the first available broadcast date and/or time. As another example, user120may assign a broadcast date and/or time to rundown815at the time of the rundown creation request. As yet another example, user120may assign a broadcast date and/or time at some point after rundown815has been generated by rundown generation engine810. In some embodiments, the user120who created the rundown815is different than the user120who assigns the broadcast date and/or time.

In some embodiments, rundown815may include one or more alternative video clips180. As used herein, an alternative video clip180refers to a video clip180that may replace, in rundown815, one or more user-selected video clips180that are determined to not be in compliance with broadcasting requirements190. In some embodiments, user120may select and indicate whether a video clip180is an alternative video clip. In other embodiments, system140automatically selects one or more alternative video clips180based on search criteria included in query205. For example, system140may select the video clip180associated with the second search result option on interface600as an appropriate alternative video clip for the video clip associated with the first search result selected by user120.

As described above, system140may also include publication engine820. Generally, publication engine820is configured to receive rundown815, perform one or more checks on rundown810, and generate a playlist825. As used herein, a “playlist” refers to a rundown815comprising video clips180that are compliant with broadcasting requirements190and is ready for broadcast. As will be described in more detail below, playlist825may include the same or different video clips180as rundown815generated by rundown generation engine810. In some embodiments, a playlist is set for broadcast at a particular broadcast time and/or date that may be specified by user120or system140.

Although this disclosure describes and depicts publication engine820receiving rundown815from rundown generation engine810, this disclosure recognizes that publication engine820may receive rundown820from any suitable component of network environment100. For example, this disclosure recognizes that each rundown815generated by rundown generation engine810may be stored in one or more storage devices150accessible to system140. In such an embodiment, publication engine820may receive rundown815from the one or more storage devices150. Accordingly, this disclosure recognizes that publication engine820may be communicably coupled to one or more storage devices that are configured to store rundowns815.

In some embodiments, the one or more checks performed by publication engine820include a compliance check, wherein publication engine820determines whether each video clip180in rundown815complies with broadcasting requirements190. A compliance check may be beneficial because various factors may have changed since rundown815was generated. As an example, at the time rundown815was generated, a video clip180associated with an item in inventory may have had sufficient inventory quantity to be in compliance with broadcasting requirements190. However, at a later time after rundown815was created, the inventory quantity may be reduced to a quantity below an amount required by broadcasting requirements190. As another example, a video clip180associated with an expiration date may have expired since rundown815was originally generated. As yet another example, a video clip180of rundown815may have been broadcast since rundown815was originally generated (e.g., because the same video clip180was included in a different rundown815) and thus is no longer in compliance with a broadcasting requirement190related to last broadcast date. As such, publication engine220may perform a compliance check on rundown815to ensure each video clip180in rundown815remains in compliance with broadcasting requirements190.

In some embodiments, publication engine820uses data stored in one or more storage devices150in order to perform the one or more checks discussed above. Accordingly, this disclosure recognizes that publication engine820is communicably coupled to one or more storage devices150that store one or more of broadcasting requirements190, inventory item data160, non-inventory item data170, and video clips180. Publication engine820may use broadcasting requirements190in conjunction with inventory item data160and/or non-inventory item data170in order to determine whether a video clip180in rundown815is compliant with broadcasting requirements190.

In some embodiments, publication engine820is communicably coupled to video clips180in order to determine alternative video clips for a particular rundown815. For example, in response to determining that a video clip180in rundown815is not compliant with broadcasting requirements190, publication engine220may retrieve, an alternative video clip180, from storage device150, and replace the non-compliant video clip180in rundown815with the alternative video clip180. Accordingly, publication engine820can update rundown815to include compliant video clips180. As described above, alternative video clips180may be selected by user120and/or system140. This disclosure recognizes that both rundown generation engine810and publication engine820may be configured to select a suitable alternative video clip180for a user-selected video clip180.

In some embodiments, publication engine820performs one or more compliance checks on rundown815periodically after rundown815is generated (e.g., once per week). In other embodiments, publication engine820performs a compliance check on rundown815at a particular time. As an example, publication engine820may be configured to perform a compliance check on rundown815at a particular time (e.g., 2 weeks, 2 days, 2 hours, 2 minutes) prior to a broadcast time and/or date associated with rundown815.

An example algorithm for publication engine820may include: (1) receive rundown815comprising one or more video clips180; (2) determine, for each video clip180included in rundown815, whether the video clip180complies with applicable broadcasting requirements190; (3) in response to determining that a video clip180of rundown815does not comply with applicable broadcasting requirements190, substitute the non-compliant video clip180with an alternative video clip180to generate an updated rundown815; and (4) after determining that each video clip180in the updated rundown815is compliant with applicable broadcasting requirements190, generate a playlist825for broadcast that includes each video clip180in the updated rundown.

Although not depicted, system140(or a component thereof) may be further configured to store published playlists to a storage device150of network environment100. As an example, after generating playlist825for broadcast, publication engine820may store, or cause to be stored, the generated playlist825in a video server (not depicted) of network environment100. At some point thereafter, playlist825may be broadcast from, or retrieved from for broadcast, the video server at which playlist825is stored.

FIG. 9illustrates an example method900which may be performed by system140. In some embodiments, some or all of the steps of method900are performed by one or more modules of system140. As an example, some steps of method900may be performed by rundown generation engine810and some other steps of method900may be performed by publication engine820. In some embodiments, one or more of the steps of method900are executed by a processor of a computer. An example of a computer configured to execute the method900is computer system1000depicted and described in reference toFIG. 10.

Method900may begin at step905and proceed to step910. At step910, system140identifies one or more video clips180of a plurality of video clips180stored in storage device150. In some embodiments, step910is executed in response to receiving a query805from user device130. As explained above, query805may be a video clip search request associated with user-defined criteria. In some embodiments, the video clips180identified in response to query805match or substantially match the user-defined criteria. In some embodiments, the method900continues to a step920after identifying one or more video clips180.

At step920, system140receives a selection of the one or video clips identified at step910. In some embodiments, the selection is a selection of indications of video clips180rather than a selection of video clips180themselves. For example, system140may, in some embodiments, communicate an indication of the one or more video clips180identified at step910to user device130and receive a user selection of one or more of the indications. In some embodiments, method900continues to step930after step920.

At step930, system140generates a rundown815that includes the one or more video clips180selected by user120. In some embodiments, system140identifies, for each indication selected by user120, a video clip180stored in storage device150and adds the video clip180to rundown815. In some embodiments, method900continues to step940after generating rundown815.

At step940, system140determines whether each of the user-selected video clips180comply with one or more broadcasting requirements190. In some embodiments, determining whether a user-selected video clip180is compliant with broadcasting requirements190first requires a determination about the broadcasting requirements190that are applicable to each user-selected video clip180. For example, a broadcasting requirement190regarding inventory quantities may not be applicable to video clips180that are not associated with an item in inventory. As another example, a broadcasting requirement190regarding last broadcast date may apply to both video clips180associated and not-associated with an item in inventory. In some embodiments, the compliance determination of step940occurs at a pre-determined time prior to a specified broadcast date and/or time. For example, step940may occur upon determining that a broadcast date and/or time associated with rundown815is planned to occur in 2 hours. If system140determines at step940that each of the user-selected video clips180comply with applicable broadcasting requirements190, the method900may proceed directly to step950. If system140instead determines that one or more of the user-selected video clips180are not compliant with applicable broadcasting requirements, the method900may continue to step945.

In step945, system140replaces each user-selected video clip180determined to not be compliant with applicable broadcasting requirements190with an alternative video clip180. As explained above, alternative video clips180may be selected and/or designated by user120and/or system140. In some embodiments, the alternative video clips180that replace a non-compliant user-selected video clip180matches or substantially matches the user-defined criteria included in query805associated with the user-selected video clip180. Although method900describes and depicts system140replacing user-selected video clip180at step945, step945may include, in other embodiments, a notification to user device130to select alternative video clips to replace a user-selected video clip180that is determined at step140to not be compliant with applicable broadcasting requirements190. In some embodiments, after each of the non-compliant user-selected video clips180have been replaced with alternative video clips180, method900may proceed to step950.

At step950, system140generates a playlist825. As explained above, playlist825comprises one or more video clips180, each video clip180in playlist825being compliant with applicable broadcasting requirements190. In some embodiments, playlist825includes the same video clips180that were selected by user120for the associated rundown. In other embodiments, playlist825includes one or more video clips180that were selected by user120for the associated rundown815in addition to one or more alternative video clips180. Playlist825may be associated with a particular broadcast date and/or time and may, in some embodiments, be broadcast at, or approximately at (e.g., within 20 minutes of), the planned broadcast date and/or time. In some embodiments, method900proceeds to an end step955after generating playlist825.

Although not depicted inFIGS. 1-10, this disclosure recognizes corresponding methods that may be executed by user device130. For example, user device130may receive, from user120, user-defined criteria corresponding to query805and communicate the user-defined criteria to system140. After system140identifies, within one or more storage devices150, one or more video clips180that match or substantially match the user-defined criteria of query805, user device130may receive an indication of each of the video clips180identified by system140and present, on a display of user device130, the indication of each video clip180identified by system140. In some embodiments, the one or more video clips180identified by system140comply with broadcasting requirements190. User device130may further be configured to receive from user120a selection of one or more of the indications and communicate the selected indications to system140.

In other embodiments, user device130may be communicably coupled to one or more storage devices150storing the types of data explained above. In such an embodiment, system140may be software that is executable by user device130. As such, user device130may be configured to execute the steps of method900in addition to being able to present interfaces (e.g., interfaces200-700) to user120via user device130.

FIG. 10illustrates an example computer system1000. In some embodiments, system140and/or user device130may be a computer system such as computer system1000ofFIG. 10. In particular embodiments, one or more computer systems1000perform one or more steps of one or more methods described or illustrated herein. In particular embodiments, one or more computer systems1000provide functionality described or illustrated herein. In particular embodiments, software running on one or more computer systems1000performs one or more steps of one or more methods described or illustrated herein or provides functionality described or illustrated herein. Particular embodiments include one or more portions of one or more computer systems1000. Herein, reference to a computer system may encompass a computing device, and vice versa, where appropriate. Moreover, reference to a computer system may encompass one or more computer systems, where appropriate.

In particular embodiments, computer system1000includes a processor1010, memory1020, storage1030, an input/output (I/O) interface1040, a communication interface1050, and a bus1060. Although this disclosure describes and illustrates a particular computer system having a particular number of particular components in a particular arrangement, this disclosure contemplates any suitable computer system having any suitable number of any suitable components in any suitable arrangement.

In particular embodiments, processor1010includes hardware for executing instructions, such as those making up a computer program. As an example and not by way of limitation, to execute instructions, processor1010may retrieve (or fetch) the instructions from an internal register, an internal cache, memory1020, or storage1030; decode and execute them; and then write one or more results to an internal register, an internal cache, memory1020, or storage1030. In particular embodiments, processor1010may include one or more internal caches for data, instructions, or addresses. This disclosure contemplates processor1010including any suitable number of any suitable internal caches, where appropriate. As an example and not by way of limitation, processor1010may include one or more instruction caches, one or more data caches, and one or more translation lookaside buffers (TLBs). Instructions in the instruction caches may be copies of instructions in memory1020or storage1030, and the instruction caches may speed up retrieval of those instructions by processor1010. Data in the data caches may be copies of data in memory1020or storage1030for instructions executing at processor1010to operate on; the results of previous instructions executed at processor1010for access by subsequent instructions executing at processor1010or for writing to memory1020or storage1030; or other suitable data. The data caches may speed up read or write operations by processor1010. The TLBs may speed up virtual-address translation for processor1010. In particular embodiments, processor1010may include one or more internal registers for data, instructions, or addresses. This disclosure contemplates processor1010including any suitable number of any suitable internal registers, where appropriate. Where appropriate, processor1010may include one or more arithmetic logic units (ALUs); be a multi-core processor; or include one or more processors1010. Although this disclosure describes and illustrates a particular processor, this disclosure contemplates any suitable processor.

In particular embodiments, memory1020includes main memory for storing instructions for processor1010to execute or data for processor1010to operate on. As an example and not by way of limitation, computer system1000may load instructions from storage1030or another source (such as, for example, another computer system1000) to memory1020. Processor1010may then load the instructions from memory1020to an internal register or internal cache. To execute the instructions, processor1010may retrieve the instructions from the internal register or internal cache and decode them. During or after execution of the instructions, processor1010may write one or more results (which may be intermediate or final results) to the internal register or internal cache. Processor1010may then write one or more of those results to memory1020. In particular embodiments, processor1010executes only instructions in one or more internal registers or internal caches or in memory1020(as opposed to storage1030or elsewhere) and operates only on data in one or more internal registers or internal caches or in memory1020(as opposed to storage1030or elsewhere). One or more memory buses (which may each include an address bus and a data bus) may couple processor1010to memory1020. Bus1060may include one or more memory buses, as described below. In particular embodiments, one or more memory management units (MMUs) reside between processor1010and memory1020and facilitate accesses to memory1020requested by processor1010. In particular embodiments, memory1020includes random access memory (RAM). This RAM may be volatile memory, where appropriate Where appropriate, this RAM may be dynamic RAM (DRAM) or static RAM (SRAM). Moreover, where appropriate, this RAM may be single-ported or multi-ported RAM. This disclosure contemplates any suitable RAM. Memory1020may include one or more memories1020, where appropriate. Although this disclosure describes and illustrates particular memory, this disclosure contemplates any suitable memory.

In particular embodiments, storage1030includes mass storage for data or instructions. As an example and not by way of limitation, storage1030may include a hard disk drive (HDD), a floppy disk drive, flash memory, an optical disc, a magneto-optical disc, magnetic tape, or a Universal Serial Bus (USB) drive or a combination of two or more of these. Storage1030may include removable or non-removable (or fixed) media, where appropriate. Storage1030may be internal or external to computer system1000, where appropriate. In particular embodiments, storage1030is non-volatile, solid-state memory. In particular embodiments, storage1030includes read-only memory (ROM). Where appropriate, this ROM may be mask-programmed ROM, programmable ROM (PROM), erasable PROM (EPROM), electrically erasable PROM (EEPROM), electrically alterable ROM (EAROM), or flash memory or a combination of two or more of these. This disclosure contemplates mass storage1030taking any suitable physical form. Storage1030may include one or more storage control units facilitating communication between processor1010and storage1030, where appropriate. Where appropriate, storage1030may include one or more storages1030. Although this disclosure describes and illustrates particular storage, this disclosure contemplates any suitable storage.

In particular embodiments, I/O interface1040includes hardware, software, or both, providing one or more interfaces for communication between computer system1000and one or more I/O devices. Computer system1000may include one or more of these I/O devices, where appropriate. One or more of these I/O devices may enable communication between a person and computer system1000. As an example and not by way of limitation, an I/O device may include a keyboard, keypad, microphone, monitor, mouse, printer, scanner, speaker, still camera, stylus, tablet, touch screen, trackball, video camera, another suitable I/O device or a combination of two or more of these. An I/O device may include one or more sensors. This disclosure contemplates any suitable I/O devices and any suitable I/O interfaces1040for them. Where appropriate, I/O interface1040may include one or more device or software drivers enabling processor1010to drive one or more of these I/O devices. I/O interface1040may include one or more I/O interfaces1040, where appropriate. Although this disclosure describes and illustrates a particular I/O interface, this disclosure contemplates any suitable I/O interface.

In particular embodiments, communication interface1050includes hardware, software, or both providing one or more interfaces for communication (such as, for example, packet-based communication) between computer system1000and one or more other computer systems1000or one or more networks. As an example and not by way of limitation, communication interface1050may include a network interface controller (NIC) or network adapter for communicating with an Ethernet or other wire-based network or a wireless NIC (WNIC) or wireless adapter for communicating with a wireless network, such as a WI-FI network. This disclosure contemplates any suitable network and any suitable communication interface1050for it. As an example and not by way of limitation, computer system1000may communicate with an ad hoc network, a personal area network (PAN), a local area network (LAN), a wide area network (WAN), a metropolitan area network (MAN), or one or more portions of the Internet or a combination of two or more of these. One or more portions of one or more of these networks may be wired or wireless. As an example, computer system1000may communicate with a wireless PAN (WPAN) (such as, for example, a BLUETOOTH WPAN), a WI-FI network, a WI-MAX network, a cellular telephone network (such as, for example, a Global System for Mobile Communications (GSM) network), or other suitable wireless network or a combination of two or more of these. Computer system1000may include any suitable communication interface1050for any of these networks, where appropriate. Communication interface1050may include one or more communication interfaces1010, where appropriate. Although this disclosure describes and illustrates a particular communication interface, this disclosure contemplates any suitable communication interface.

In particular embodiments, bus1060includes hardware, software, or both coupling components of computer system1000to each other. As an example and not by way of limitation, bus1060may include an Accelerated Graphics Port (AGP) or other graphics bus, an Enhanced Industry Standard Architecture (EISA) bus, a front-side bus (FSB), a HYPERTRANSPORT (HT) interconnect, an Industry Standard Architecture (ISA) bus, an INFINIBAND interconnect, a low-pin-count (LPC) bus, a memory bus, a Micro Channel Architecture (MCA) bus, a Peripheral Component Interconnect (PCI) bus, a PCI-Express (PCIe) bus, a serial advanced technology attachment (SATA) bus, a Video Electronics Standards Association local (VLB) bus, or another suitable bus or a combination of two or more of these. Bus1060may include one or more buses1060, where appropriate. Although this disclosure describes and illustrates a particular bus, this disclosure contemplates any suitable bus or interconnect.

The components of computer system1000may be integrated or separated. In some embodiments, components of computer system1000may each be housed within a single chassis. The operations of computer system1000may be performed by more, fewer, or other components. Additionally, operations of computer system1000may be performed using any suitable logic that may comprise software, hardware, other logic, or any suitable combination of the preceding.