ES2725461T3 - Procedimientos y sistemas para generar y proporcionar guías de programas y contenido - Google Patents

Procedimientos y sistemas para generar y proporcionar guías de programas y contenido Download PDF

Info

Publication number
ES2725461T3
ES2725461T3 ES15749508T ES15749508T ES2725461T3 ES 2725461 T3 ES2725461 T3 ES 2725461T3 ES 15749508 T ES15749508 T ES 15749508T ES 15749508 T ES15749508 T ES 15749508T ES 2725461 T3 ES2725461 T3 ES 2725461T3
Authority
ES
Spain
Prior art keywords
video
content
program
time
duration
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
ES15749508T
Other languages
English (en)
Inventor
Nicholas A Grouf
Ilya Pozin
Thomas Sieverding
Michael Price
Lindsey Emerson
Lynn D Gabbay
Thomas V Ryan
Audra E Gold
Chan V Hou
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Pluto Inc
Original Assignee
Pluto Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Pluto Inc filed Critical Pluto Inc
Application granted granted Critical
Publication of ES2725461T3 publication Critical patent/ES2725461T3/es
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/45Management operations performed by the client for facilitating the reception of or the interaction with the content or administrating data related to the end-user or to the client device itself, e.g. learning user preferences for recommending movies, resolving scheduling conflicts
    • H04N21/4508Management of client data or end-user data
    • H04N21/4532Management of client data or end-user data involving end-user characteristics, e.g. viewer profile, preferences
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/234Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs
    • H04N21/23424Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving splicing one content stream with another content stream, e.g. for inserting or substituting an advertisement
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/24Monitoring of processes or resources, e.g. monitoring of server load, available bandwidth, upstream requests
    • H04N21/2407Monitoring of transmitted content, e.g. distribution time, number of downloads
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/25Management operations performed by the server for facilitating the content distribution or administrating data related to end-users or client devices, e.g. end-user or client device authentication, learning user preferences for recommending movies
    • H04N21/262Content or additional data distribution scheduling, e.g. sending additional data at off-peak times, updating software modules, calculating the carousel transmission frequency, delaying a video stream transmission, generating play-lists
    • H04N21/26208Content or additional data distribution scheduling, e.g. sending additional data at off-peak times, updating software modules, calculating the carousel transmission frequency, delaying a video stream transmission, generating play-lists the scheduling operation being performed under constraints
    • H04N21/26241Content or additional data distribution scheduling, e.g. sending additional data at off-peak times, updating software modules, calculating the carousel transmission frequency, delaying a video stream transmission, generating play-lists the scheduling operation being performed under constraints involving the time of distribution, e.g. the best time of the day for inserting an advertisement or airing a children program
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/25Management operations performed by the server for facilitating the content distribution or administrating data related to end-users or client devices, e.g. end-user or client device authentication, learning user preferences for recommending movies
    • H04N21/262Content or additional data distribution scheduling, e.g. sending additional data at off-peak times, updating software modules, calculating the carousel transmission frequency, delaying a video stream transmission, generating play-lists
    • H04N21/26258Content or additional data distribution scheduling, e.g. sending additional data at off-peak times, updating software modules, calculating the carousel transmission frequency, delaying a video stream transmission, generating play-lists for generating a list of items to be played back in a given order, e.g. playlist, or scheduling item distribution according to such list
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/25Management operations performed by the server for facilitating the content distribution or administrating data related to end-users or client devices, e.g. end-user or client device authentication, learning user preferences for recommending movies
    • H04N21/262Content or additional data distribution scheduling, e.g. sending additional data at off-peak times, updating software modules, calculating the carousel transmission frequency, delaying a video stream transmission, generating play-lists
    • H04N21/26283Content or additional data distribution scheduling, e.g. sending additional data at off-peak times, updating software modules, calculating the carousel transmission frequency, delaying a video stream transmission, generating play-lists for associating distribution time parameters to content, e.g. to generate electronic program guide data
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/25Management operations performed by the server for facilitating the content distribution or administrating data related to end-users or client devices, e.g. end-user or client device authentication, learning user preferences for recommending movies
    • H04N21/266Channel or content management, e.g. generation and management of keys and entitlement messages in a conditional access system, merging a VOD unicast channel into a multicast channel
    • H04N21/2665Gathering content from different sources, e.g. Internet and satellite
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/431Generation of visual interfaces for content selection or interaction; Content or additional data rendering
    • H04N21/4312Generation of visual interfaces for content selection or interaction; Content or additional data rendering involving specific graphical features, e.g. screen layout, special fonts or colors, blinking icons, highlights or animations
    • H04N21/4316Generation of visual interfaces for content selection or interaction; Content or additional data rendering involving specific graphical features, e.g. screen layout, special fonts or colors, blinking icons, highlights or animations for displaying supplemental content in a region of the screen, e.g. an advertisement in a separate window
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/435Processing of additional data, e.g. decrypting of additional data, reconstructing software from modules extracted from the transport stream
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/45Management operations performed by the client for facilitating the reception of or the interaction with the content or administrating data related to the end-user or to the client device itself, e.g. learning user preferences for recommending movies, resolving scheduling conflicts
    • H04N21/458Scheduling content for creating a personalised stream, e.g. by combining a locally stored advertisement with an incoming stream; Updating operations, e.g. for OS modules ; time-related management operations
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/45Management operations performed by the client for facilitating the reception of or the interaction with the content or administrating data related to the end-user or to the client device itself, e.g. learning user preferences for recommending movies, resolving scheduling conflicts
    • H04N21/466Learning process for intelligent management, e.g. learning user preferences for recommending movies
    • H04N21/4668Learning process for intelligent management, e.g. learning user preferences for recommending movies for recommending content, e.g. movies
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/47End-user applications
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/47End-user applications
    • H04N21/472End-user interface for requesting content, additional data or services; End-user interface for interacting with content, e.g. for content reservation or setting reminders, for requesting event notification, for manipulating displayed content
    • H04N21/47214End-user interface for requesting content, additional data or services; End-user interface for interacting with content, e.g. for content reservation or setting reminders, for requesting event notification, for manipulating displayed content for content reservation or setting reminders; for requesting event notification, e.g. of sport results or stock market
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/47End-user applications
    • H04N21/478Supplemental services, e.g. displaying phone caller identification, shopping application
    • H04N21/4788Supplemental services, e.g. displaying phone caller identification, shopping application communicating with other users, e.g. chatting
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/47End-user applications
    • H04N21/482End-user interface for program selection
    • H04N21/4821End-user interface for program selection using a grid, e.g. sorted out by channel and broadcast time
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/47End-user applications
    • H04N21/482End-user interface for program selection
    • H04N21/4825End-user interface for program selection using a list of items to be played back in a given order, e.g. playlists
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/47End-user applications
    • H04N21/488Data services, e.g. news ticker
    • H04N21/4882Data services, e.g. news ticker for displaying messages, e.g. warnings, reminders
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N5/00Details of television systems
    • H04N5/44Receiver circuitry for the reception of television signals according to analogue transmission standards
    • H04N5/445Receiver circuitry for the reception of television signals according to analogue transmission standards for displaying additional information
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N5/00Details of television systems
    • H04N5/44Receiver circuitry for the reception of television signals according to analogue transmission standards
    • H04N5/445Receiver circuitry for the reception of television signals according to analogue transmission standards for displaying additional information
    • H04N5/45Picture in picture, e.g. displaying simultaneously another television channel in a region of the screen

Landscapes

  • Engineering & Computer Science (AREA)
  • Signal Processing (AREA)
  • Multimedia (AREA)
  • Databases & Information Systems (AREA)
  • Business, Economics & Management (AREA)
  • Human Computer Interaction (AREA)
  • Marketing (AREA)
  • Physics & Mathematics (AREA)
  • Astronomy & Astrophysics (AREA)
  • General Physics & Mathematics (AREA)
  • Finance (AREA)
  • Strategic Management (AREA)
  • General Engineering & Computer Science (AREA)
  • Information Transfer Between Computers (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)

Abstract

Sistema, que comprende: una interfaz de red configurada para comunicar sobre una red de datos; un sistema informático que comprende uno o varios dispositivos informáticos; un sistema de terceros adecuado para proporcionar contenido de vídeo de transmisión en continuo, estando el sistema de terceros bajo control independiente del sistema informático; y un sistema de almacenamiento informático que comprende un dispositivo de almacenamiento no transitorio, dicho sistema de almacenamiento informático teniendo almacenados en el mismo instrucciones de programa ejecutables que dirigen el sistema informático para, por lo menos: generar una guía electrónica de programas que enumera canales y programas de canales; dotar a una pluralidad de terminales de usuario de acceso a la guía electrónica de programas; identificar, en un primer tiempo, un primer vídeo a incluir en un primer programa, comprendiendo el primer programa una pluralidad de vídeos, planificados para ser mostrados a los usuarios en un primer período de tiempo que tiene un tiempo de inicio y un tiempo de finalización, estando alojado el primer vídeo en el sistema de terceros, en el que el primer vídeo tiene una primera duración de tiempo, en el que la guía electrónica de programas comprende una entrada del primer programa; asignar un primer intervalo de tiempo dentro del primer programa para el primer vídeo que se va a proporcionar a los usuarios, en el que el primer intervalo de tiempo es mayor que la primera duración de tiempo para alojar el máximo aumento potencial previsto, en la duración del primer vídeo; usar una interfaz de programación de aplicaciones (API) para acceder en un segundo tiempo, desde el sistema de terceros, a una información de duración actual asociada con el primer vídeo; determinar una duración actual del primer vídeo, en base por lo menos en parte a la información de duración accedida desde el sistema de terceros; calcular, antes de o durante el primer período de tiempo, una diferencia de tiempo entre una duración actual del primer vídeo y el primer intervalo de tiempo, en el que cuando el primer vídeo es identificado, el primer vídeo comprende contenido principal y un primer anuncio, teniendo el primer anuncio una duración del primer anuncio, y cuando se determina la diferencia de tiempo entre la duración actual del primer vídeo y el primer intervalo de tiempo, el primer vídeo comprende el contenido principal y un segundo anuncio y no el primer anuncio, teniendo el segundo anuncio una duración de tiempo distinta a la duración del primer anuncio; por lo menos en parte en respuesta a la determinación de que la duración actual del primer vídeo es más corta que el primer intervalo de tiempo; seleccionar contenido suplementario de un repositorio de elementos de contenido, mantenido por un proceso o procedente de una o varias fuentes, basándose en parte en una diferencia de tiempo determinada entre el primer intervalo de tiempo y la duración actual del primer vídeo; y hacer que, por lo menos en parte, contenido suplementario seleccionado basándose, por lo menos en parte, en la diferencia de tiempo determinada se transmita en continuo a terminales de usuario utilizando la interfaz de red sobre una red de datos dentro del primer período de tiempo.

Description

DESCRIPCIÓN
Procedimientos y sistemas para generar y proporcionar guías de programas y contenido
ANTECEDENTES
Sector de la invención
La presente invención está relacionada con la identificación, generación, organización y distribución de contenido. Descripción de la técnica relacionada
Los sitios para compartir vídeos se han vuelto cada vez más populares. Los usuarios suben vídeos a un sitio web para compartir vídeos. Otros usuarios pueden, a continuación, navegar al sitio web y dentro del mismo para localizar vídeos de interés. Los usuarios pueden, a continuación, visualizar los vídeos independientemente de otros usuarios, es decir, los usuarios no visualizan los vídeos según un horario, sino en cualquier momento aleatorio en que un usuario determinado acceda al vídeo. Por lo tanto, utilizando técnicas convencionales, es difícil para los usuarios localizar vídeos de interés. Además, la visualización de vídeos es una experiencia de aislamiento, donde los usuarios ven vídeos en diferentes momentos y, a menudo, debido a la dificultad para localizar el contenido, los amigos con poca frecuencia ven los mismos vídeos.
Los documentos WO 00/40021A1 y GB 2343051A dan a conocer procedimientos para llenar huecos en canales virtuales utilizando programas suplementarios.
CARACTERÍSTICAS
La invención se define en las reivindicaciones independientes, mientras que las realizaciones ventajosas se exponen en las reivindicaciones dependientes correspondientes.
A continuación se presenta un resumen simplificado de uno o varios aspectos con el fin de proporcionar una comprensión básica de dichos aspectos. Este resumen no es una visión general extensa de todos los aspectos contemplados, y no pretende identificar elementos clave o críticos de todos los aspectos ni delinear el alcance de alguno o todos los aspectos. Su único propósito es presentar algunos conceptos de uno o varios aspectos de forma simplificada como preludio a la descripción más detallada que se presenta más adelante.
Un aspecto de la invención es un procedimiento para sincronizar contenido con una guía de programas y un sistema configurado para realizar el procedimiento o, por lo menos, una parte del mismo. El procedimiento comprende algunos o todos los siguientes actos: identificar, mediante un primer sistema, un primer programa previamente planificado para ser mostrado a los usuarios en un primer período de tiempo, comprendiendo el primer programa, por lo menos, un primer vídeo alojado en un sistema de terceros, el sistema de terceros bajo control independiente del primer sistema, en el que el primer vídeo tiene una duración; determinar mediante el primer sistema, antes del primer período de tiempo, si el primer vídeo todavía es accesible desde el sistema de terceros; por lo menos en parte, en respuesta a la determinación de que el primer vídeo ya no es accesible desde el sistema de terceros: identificar, mediante el primer sistema, por lo menos un vídeo de sustitución basándose, por lo menos en parte, en la duración del primer vídeo; haciendo que, por lo menos en parte, el por lo menos un vídeo de sustitución se transmita en continuo a los terminales de usuario sobre una red de datos dentro del primer período de tiempo.
Un aspecto de la invención es un procedimiento. El procedimiento comprende algunos o todos los siguientes actos: identificar, mediante un primer sistema, un primer programa planificado previamente para ser mostrado a los usuarios en un primer período de tiempo, comprendiendo el primer programa, por lo menos, un primer elemento de contenido alojado en un sistema de terceros, el sistema de terceros bajo control independiente del primer sistema, en el que el primer elemento de contenido tiene una duración; determinar mediante el primer sistema, antes del primer período de tiempo, si el primer elemento de contenido aún es accesible desde el sistema de terceros; por lo menos en parte en respuesta a la determinación de que el primer elemento de contenido ya no es accesible desde el sistema de terceros: identificar, mediante el primer sistema, por lo menos un elemento de contenido de sustitución basándose por lo menos en parte en la duración del primer elemento de contenido; haciendo que, por lo menos en parte, el por lo menos un elemento de contenido de sustitución se transmita en continuo a los terminales de usuario sobre una red de datos dentro del primer período de tiempo.
Un aspecto de la invención es un procedimiento para generar contenido y un sistema configurado para realizar el procedimiento o, por lo menos, una parte del mismo. El procedimiento comprende algunos o todos los actos siguientes: identificar, mediante un primer sistema, un primer vídeo que se incluirá en un primer programa planificado para ser mostrado a los usuarios en un primer período de tiempo, el primer vídeo alojado en un sistema de terceros, el sistema de terceros bajo control independiente del primer sistema, en el que el primer vídeo tiene una primera duración de tiempo; asignar un primer intervalo de tiempo con el primer programa para que el primer vídeo se proporcione a los usuarios, en el que el primer intervalo de tiempo es más largo que la primera duración de tiempo; determinar, mediante el primer sistema, antes de o durante el primer período de tiempo, una diferencia de tiempo entre la duración actual del primer vídeo y el primer intervalo de tiempo; por lo menos en parte, en respuesta a la determinación de que el primer vídeo tiene una duración de tiempo más corta que el primer intervalo de tiempo, hacer que, por lo menos en parte, el contenido suplementario seleccionado en base, por lo menos en parte, a la diferencia de tiempo determinada para se transmita en continuo a los terminales de usuario sobre una red de datos dentro del primer período de tiempo.
Un aspecto de la invención es un procedimiento para generar contenido y un sistema configurado para realizar el procedimiento o por lo menos una parte del mismo. El procedimiento comprende algunos o todos los actos siguientes: identificar, mediante un primer sistema, un primer elemento de contenido que se incluirá en un primer programa planificado para ser mostrado a los usuarios en un primer período de tiempo, el primer elemento de contenido alojado en un sistema de terceros, el sistema de terceros bajo el control independiente del primer sistema, en el que el primer elemento de contenido tiene una primera duración de tiempo; asignar un primer intervalo de tiempo con el primer programa para que el primer elemento de contenido se proporcione a los usuarios, en el que el primer intervalo de tiempo es más largo que la primera duración de tiempo; determinar, mediante el primer sistema, antes de o durante el primer período de tiempo, una diferencia de tiempo entre la duración actual del primer elemento de contenido y el primer intervalo de tiempo; por lo menos en parte, en respuesta a la determinación de que el primer elemento de contenido tiene una duración de tiempo más corta que el primer intervalo de tiempo, hacer que, por lo menos en parte, el contenido suplementario seleccionado en base, por lo menos en parte, a la diferencia de tiempo determinada se transmita en continuo a los terminales de usuario sobre una red de datos dentro del primer período de tiempo.
Un aspecto de la invención es un procedimiento que comprende algunos o todos los actos siguientes: identificar, mediante un primer sistema que comprende hardware informático configurado con instrucciones ejecutables específicas y una interfaz de red configurada para comunicarse con terminales de usuario y sistemas de alojamiento de contenido, un primer programa, incluido en una guía electrónica de programas estando planificado para ser mostrado a los usuarios en un primer período de tiempo, en el que el primer programa comprende, por lo menos, un primer vídeo que tiene una duración de tiempo, el primer vídeo alojado en un sistema de terceros que proporciona contenido de vídeo para transmisión en continuo, el sistema de terceros bajo control independiente del primer sistema; antes del primer período de tiempo, determinar si se debe realizar una verificación de disponibilidad de contenido; por lo menos en parte, en respuesta a la determinación de que se debe realizar una verificación de disponibilidad de contenido, determinar mediante el primer sistema si el primer vídeo aún es accesible; por lo menos en parte en respuesta a la determinación de que el primer vídeo ya no es accesible: identificar, mediante el primer sistema, por lo menos un vídeo de sustitución basándose, por lo menos en parte, en la duración de tiempo del primer vídeo, en los datos que indican la materia del primer programa y en los metadatos accedidos desde una fuente de contenido de sustitución; hacer que, por lo menos en parte, el por lo menos un vídeo de sustitución se transmita en continuo a los terminales de usuario sobre una red de datos dentro del primer período de tiempo; por lo menos en parte, en respuesta a la determinación de que el primer vídeo aún es accesible, hacer que, por lo menos en parte, el primer vídeo se transmita en continuo a uno o varios terminales de usuario sobre una red de datos dentro del primer período de tiempo como parte del primer programa incluido en la guía electrónica de programas.
Un aspecto de la invención es un procedimiento implementado por ordenador para sincronizar contenido con una guía de programas, comprendiendo el procedimiento algunos o todos los siguientes actos: identificar, mediante un primer sistema que comprende hardware informático configurado con instrucciones ejecutables específicas y una interfaz de red configurada para comunicarse con terminales de usuario y sistemas de alojamiento de contenido, un primer programa, enumerado en una guía electrónica de programas proporcionada a los terminales de usuario como planificado para ser mostrado a los usuarios en un primer período de tiempo, en el que el primer programa comprende, por lo menos, un primer vídeo que tiene una duración de tiempo, el primer vídeo alojado en un sistema de terceros que proporciona contenido de vídeo para transmisión en continuo, el sistema de terceros bajo control independiente del primer sistema; antes del primer período de tiempo, determinar si se debe realizar una verificación de disponibilidad de contenido; por lo menos en parte, en respuesta a la determinación de que se debe realizar una verificación de disponibilidad de contenido, transmitir, antes del primer período de tiempo, una consulta sobre la red al sistema de terceros a través de una interfaz de programación de aplicaciones (API, application programming interface), y determinar mediante el primer sistema si el primer vídeo todavía es accesible desde el sistema de terceros, basándose por lo menos en parte en un resultado de la consulta; por lo menos en parte, en respuesta a la determinación de que el primer vídeo ya no es accesible desde el sistema de terceros: identificar, mediante el primer sistema, por lo menos un vídeo de sustitución en base, por lo menos en parte, a la duración de tiempo del primer vídeo, a los datos que indican la materia del primer programa y a los metadatos accedidos desde una fuente de contenido de sustitución; hacer que, por lo menos en parte, el por lo menos un vídeo de sustitución se transmita en continuo a los terminales de usuario sobre una red de datos dentro del primer período de tiempo; por lo menos en parte en respuesta a la determinación de que todavía se puede acceder al primer vídeo desde el sistema de terceros, hacer que, por lo menos en parte, el primer vídeo se transmita en continuo del sistema de terceros a los terminales de usuario sobre una red de datos dentro del primer período de tiempo como parte del primer programa enumerado en la guía electrónica de programas.
Un aspecto de la invención es un procedimiento implementado por ordenador, comprendiendo el procedimiento algunos o todos los siguientes actos: identificar, mediante un primer sistema que comprende hardware informático configurado con instrucciones ejecutables específicas y una interfaz de red configurada para comunicarse con terminales de usuario y sistemas de alojamiento de contenido, un primer programa enumerado en una guía electrónica de programas proporcionada a los terminales de usuario como planificado para ser mostrado a los usuarios en un primer período de tiempo, en el que el primer programa comprende, por lo menos, un primer contenido que tiene una duración de tiempo, el primer contenido alojado en un sistema de terceros que proporciona contenido para transmisión en continuo, el sistema de terceros bajo control independiente del primer sistema; antes del primer período de tiempo, determinar si se debe realizar una verificación de disponibilidad del contenido; por lo menos en parte en respuesta a la determinación de que se debe realizar una verificación de disponibilidad de contenido, transmitir, antes del primer período de tiempo, una consulta sobre la red al sistema de terceros a través de una interfaz de programación de aplicaciones (API), y determinar mediante el primer sistema si el primer contenido aún es accesible desde el sistema de terceros, en base por lo menos en parte a un resultado de la consulta; por lo menos en parte, en respuesta a la determinación de que el primer contenido ya no es accesible desde el sistema de terceros: identificar, mediante el primer sistema, por lo menos un contenido de sustitución en base, por lo menos en parte, a la duración de tiempo del primer contenido, a los datos que indican la materia del primer programa y a los metadatos accedidos desde una fuente de contenido de sustitución; hacer que, por lo menos en parte, el por lo menos un contenido de sustitución se transmita en continuo a los terminales de usuario sobre una red de datos dentro del primer período de tiempo; por lo menos en parte en respuesta a la determinación de que todavía se puede acceder al primer contenido desde el sistema de terceros, hacer que, por lo menos en parte, el primer contenido se transmita en continuo desde el sistema de terceros a los terminales de usuario sobre una red de datos dentro del primer período de tiempo como parte del primer programa enumerado en la guía electrónica de programas.
Un aspecto de la invención es un procedimiento que comprende algunos o todos los actos siguientes: generar, mediante un primer sistema que comprende hardware informático configurado con instrucciones ejecutables específicas, una guía electrónica de programas que incluya canales y programas de canales; identificar, mediante el primer sistema, un primer vídeo que se incluirá en un primer programa planificado para ser mostrado a los usuarios en un primer período de tiempo, en el que el primer vídeo tiene una primera duración de tiempo, en el que la guía electrónica de programas incluye una entrada para el primer programa; asignar un primer intervalo de tiempo dentro del primer programa para que se proporcione el primer vídeo a los usuarios, en el que el primer intervalo de tiempo es más largo que la primera duración de tiempo; determinar, mediante el primer sistema, la duración actual del primer vídeo; determinar, mediante el primer sistema, antes de o durante el primer período de tiempo, una diferencia de tiempo entre la duración actual del primer vídeo y el primer intervalo de tiempo; por lo menos en parte en respuesta a la determinación, mediante el primer sistema, de que el primer vídeo tiene una duración de tiempo más corta que el primer intervalo de tiempo: seleccionar, mediante el primer sistema, contenido suplementario basándose, por lo menos en parte, en la diferencia de tiempo determinada; y hacer que, por lo menos en parte, el contenido suplementario seleccionado en base, por lo menos en parte, a la diferencia de tiempo determinada sea transmitido en continuo a los terminales de usuario sobre una red de datos dentro del primer período de tiempo de modo que la temporización de la reproducción del primer programa corresponda a la planificación del primer programa en la guía electrónica de programas.
Un aspecto de la invención es un sistema, que comprende una parte o la totalidad de lo siguiente: una interfaz de red configurada para comunicar sobre una red; un sistema informático que comprende uno o varios dispositivos informáticos; y un sistema de almacenamiento informático que comprende un dispositivo de almacenamiento no transitorio, dicho sistema de almacenamiento informático teniendo almacenado en el mismo instrucciones de programa ejecutables que indican al sistema informático que realice por lo menos parte o la totalidad de lo siguiente: identificar un primer programa, enumerado en una guía electrónica de programas proporcionada a los terminales de usuario como planificado para ser mostrado a los usuarios en un primer período de tiempo, en el que el primer programa comprende, por lo menos, un primer elemento de contenido que tiene una duración de tiempo, el primer elemento de contenido alojado en un sistema de terceros que proporciona contenido de elementos de contenido para transmisión en continuo, el sistema de terceros bajo control independiente del sistema; antes del primer período de tiempo, determinar si se debe realizar una verificación de disponibilidad de contenido; por lo menos en parte en respuesta a la determinación de que se debe realizar una verificación de disponibilidad de contenido, transmitir, antes del primer período de tiempo, una comunicación a través de la interfaz de red sobre la red al sistema de terceros, y determinar si el primer elemento de contenido es todavía accesible desde el sistema de terceros, basándose por lo menos en parte en un resultado de la comunicación; por lo menos en parte en respuesta a la determinación de que el primer elemento de contenido ya no es accesible desde el sistema de terceros: identificar por lo menos un elemento de contenido de sustitución basándose, por lo menos en parte, en la duración de tiempo del primer elemento de contenido, en los datos que indican la materia del primer programa y en los metadatos accedidos desde una fuente de contenido de sustitución; hacer que, por lo menos en parte, los terminales de usuario accedan al por lo menos un elemento de contenido de sustitución sobre una red de datos dentro del primer período de tiempo; por lo menos en parte en respuesta a la determinación de que todavía se puede acceder al primer elemento de contenido desde el sistema de terceros, hacer que, por lo menos en parte, los terminales de usuario accedan desde el sistema de terceros al primer elemento de contenido sobre una red de datos dentro del primer período de tiempo como parte del primer programa enumerado en la guía electrónica de programas.
Un aspecto de la invención es un sistema de almacenamiento informático que comprende un dispositivo de almacenamiento no transitorio, dicho sistema de almacenamiento informático teniendo almacenadas en el mismo instrucciones de programa ejecutables que indican a un sistema informático que realice por lo menos parte o la totalidad de lo siguiente: identificar un primer programa, enumerado en una guía electrónica de programas proporcionada a los terminales de usuario como planificado para ser mostrado a los usuarios en un primer período de tiempo, en el que el primer programa comprende por lo menos un primer elemento de contenido que tiene una duración de tiempo, el primer elemento de contenido alojado en un sistema de terceros que proporciona contenido de elementos de contenido para transmisión en continuo; antes del primer período de tiempo, determinar si se debe realizar una verificación de disponibilidad de contenido; por lo menos en parte en respuesta a la determinación de que se debe realizar una verificación de disponibilidad de contenido, transmitir, antes del primer período de tiempo, una comunicación a través de la interfaz de red sobre la red al sistema de terceros, y determinar si el primer elemento de contenido es todavía accesible desde el sistema de terceros, basándose, por lo menos en parte, en un resultado de la comunicación; por lo menos en parte en respuesta a la determinación de que el primer elemento de contenido ya no es accesible desde el sistema de terceros: identificar por lo menos un elemento de contenido de sustitución basándose, por lo menos en parte, en la duración de tiempo del primer elemento de contenido, en los datos que indican la materia del primer programa y en los metadatos accedidos desde una fuente de contenido de sustitución; hacer que, por lo menos en parte, los terminales de usuario accedan al por lo menos un elemento de contenido de sustitución sobre una red de datos dentro del primer período de tiempo; por lo menos en parte en respuesta a la determinación de que todavía se puede acceder al primer elemento de contenido desde el sistema de terceros, hacer que, por lo menos en parte, los terminales de usuario accedan al primer elemento de contenido desde el sistema de terceros sobre una red de datos dentro del primer período de tiempo como parte del primer programa enumerado en la guía electrónica de programas.
Un aspecto de la invención es un procedimiento implementado por ordenador para sincronizar contenido con una guía de programas, comprendiendo el procedimiento algunos o todos los actos siguientes: generar, mediante un primer sistema que comprende hardware informático configurado con instrucciones ejecutables específicas, una guía electrónica de programas que enumera canales y programas de canales; identificar, mediante el primer sistema, un primer vídeo para ser incluido en un primer programa planificado para ser mostrado a los usuarios en un primer período de tiempo, el primer vídeo alojado en un sistema de terceros, el sistema de terceros bajo el control independiente del primer sistema, en el que el primer vídeo tiene una primera duración de tiempo, en el que la guía electrónica de programas comprende una entrada del primer programa; asignar un primer intervalo de tiempo dentro del primer programa para proporcionar el primer vídeo a los usuarios, en el que el primer intervalo de tiempo es más largo que la primera duración de tiempo; determinar, mediante el primer sistema, la duración actual del primer vídeo, basándose, por lo menos en parte, en la información de duración a la que se accede a través de una interfaz de programación de aplicaciones (API) asociada con el sistema de terceros; calcular, mediante el primer sistema, antes de o durante el primer período de tiempo, una diferencia de tiempo entre la duración actual del primer vídeo y el primer intervalo de tiempo; por lo menos en parte en respuesta a la determinación mediante el primer sistema de que el primer vídeo tiene una duración de tiempo más corta que el primer intervalo de tiempo: seleccionar, mediante el primer sistema, contenido suplementario basándose por lo menos en parte en la diferencia de tiempo determinada; y hacer que, por lo menos en parte, el contenido suplementario seleccionado en base por lo menos en parte a la diferencia de tiempo determinada sea transmitido en continuo a los terminales de usuario sobre una red de datos dentro del primer período de tiempo de modo que la temporización de la reproducción del primer programa corresponda a la planificación del primer programa en la guía electrónica de programas.
Un aspecto de la invención es un procedimiento implementado por ordenador para sincronizar contenido con una guía de programas, comprendiendo el procedimiento algunos o todos los siguientes actos: generar de forma opcional, mediante un primer sistema que comprende hardware informático configurado con instrucciones ejecutables específicas, una guía electrónica de programas que enumera canales y programas de canales; identificar, mediante el primer sistema, un primer elemento de contenido que se incluirá en un primer programa planificado para ser mostrado a los usuarios en un primer período de tiempo, el primer elemento de contenido alojado en un sistema remoto, en el que el primer elemento de contenido tiene una primera duración de tiempo, en el que la guía electrónica de programas comprende una entrada del primer programa; asignar un primer intervalo de tiempo dentro del primer programa para que el primer elemento de contenido se proporcione a los usuarios, en el que el primer intervalo de tiempo es más largo que la primera duración de tiempo; determinar, mediante el primer sistema, la duración actual del primer elemento de contenido, basándose por lo menos en parte en la información de duración a la que se accede a través de una interfaz de programación de aplicaciones (API) asociada con el sistema de terceros; determinar, mediante el primer sistema, una diferencia de tiempo entre la duración actual del primer elemento de contenido y el primer intervalo de tiempo; por lo menos en parte, en respuesta a la determinación mediante el primer sistema de que el primer elemento de contenido tiene una duración de tiempo más corta que el primer intervalo de tiempo: seleccionar, mediante el primer sistema, contenido suplementario basándose por lo menos en parte en la diferencia de tiempo determinada; y hacer que, por lo menos en parte, el contenido suplementario seleccionado basándose por lo menos en parte en la diferencia de tiempo determinada se transmita en continuo a los terminales de usuario sobre una red de datos dentro del primer período de tiempo de modo que la temporización de la reproducción del primer programa corresponda a la planificación del primer programa en la guía electrónica de programas.
Un aspecto de la invención es un sistema, que comprende parte o la totalidad de lo siguiente: una interfaz de red configurada para comunicar sobre una red; un sistema informático que comprende uno o varios dispositivos informáticos; y un sistema de almacenamiento informático que comprende un dispositivo de almacenamiento no transitorio, dicho sistema de almacenamiento informático teniendo almacenado en el mismo instrucciones de programa ejecutables que indican al sistema informático que realice por lo menos parte o la totalidad de lo siguiente: identificar un primer vídeo que se incluirá en un primer programa planificado para ser mostrado a los usuarios en un primer período de tiempo, el primer vídeo alojado en un sistema de terceros, el sistema de terceros bajo control independiente del sistema, en el que el primer vídeo tiene una primera duración de tiempo; asignar un primer intervalo de tiempo dentro del primer programa para que el primer vídeo se proporcione a los usuarios, en el que el primer intervalo de tiempo es más largo que la primera duración de tiempo; determinar la duración actual del primer vídeo, basándose por lo menos en parte en la información de duración a la que se accede a través de una interfaz de programación de aplicaciones (API) asociada con el sistema de terceros; calcular, antes de o durante el primer período de tiempo, una diferencia de tiempo entre la duración actual del primer vídeo y el primer intervalo de tiempo; por lo menos en parte en respuesta a la determinación de que el primer vídeo tiene una duración de tiempo más corta que el primer intervalo de tiempo: seleccionar contenido suplementario basándose por lo menos en parte en la diferencia de tiempo determinada; y hacer que, por lo menos en parte, el contenido suplementario seleccionado basándose por lo menos en parte en la diferencia de tiempo determinada sea transmitido en continuo a los terminales de usuario sobre una red de datos dentro del primer período de tiempo.
Un aspecto de la invención es un sistema de almacenamiento informático que comprende un dispositivo de almacenamiento no transitorio, dicho sistema de almacenamiento informático teniendo almacenadas en el mismo instrucciones de programa ejecutables que indican a un sistema informático que realice por lo menos parte o la totalidad de lo siguiente: identificar un primer vídeo para ser incluido en un primer programa planificado para ser mostrado a los usuarios en el primer período de tiempo, el primer vídeo alojado en un sistema de terceros, el sistema de terceros bajo control independiente del sistema, en el que el primer vídeo tiene una primera duración de tiempo; asignar un primer intervalo de tiempo dentro del primer programa para que el primer vídeo se proporcione a los usuarios, en el que el primer intervalo de tiempo es más largo que la primera duración de tiempo; determinar la duración actual del primer vídeo, basándose por lo menos en parte en la información de duración, a la que se accede de forma opcional a través de una interfaz de programación de aplicaciones (API) asociada con el sistema de terceros; calcular o determinar de otro modo, antes de o durante el primer período de tiempo, una diferencia de tiempo entre la duración actual del primer vídeo y el primer intervalo de tiempo; por lo menos en parte en respuesta a la determinación de que el primer vídeo tiene una duración de tiempo más corta que el primer intervalo de tiempo: seleccionar contenido suplementario basándose por lo menos en parte en la diferencia de tiempo determinada; y hacer que, por lo menos en parte, el contenido suplementario seleccionado en base por lo menos en parte a la diferencia de tiempo determinada sea transmitido en continuo a los terminales de usuario sobre una red de datos dentro del primer período de tiempo.
Un aspecto de la invención es un procedimiento implementado por ordenador, comprendiendo el procedimiento algunos o todos los actos siguientes: generar, mediante un primer sistema que comprende hardware informático configurado con instrucciones ejecutables específicas, una guía electrónica de programas que incluye por lo menos un primer programa planificado para que comience en un primer tiempo y termine en un segundo tiempo, un segundo programa después del primer programa, el segundo programa planificado para que comience en un tercer tiempo y finalice en un cuarto tiempo; identificar, mediante el primer sistema, un primer elemento de vídeo que se incluirá en un primer programa planificado para ser mostrado a los usuarios en un primer período de tiempo, en el que el primer elemento de vídeo tiene una primera duración de tiempo, en el que la guía electrónica de programas incluye una entrada para el primer programa; asignar un primer intervalo de tiempo dentro del primer programa para proporcionar el primer elemento de vídeo a los usuarios; determinar, mediante el primer sistema, la duración actual del primer elemento de vídeo; determinar, mediante el primer sistema, una diferencia de tiempo entre la duración actual del primer elemento de vídeo y el primer intervalo de tiempo; por lo menos en parte en respuesta a la determinación mediante el primer sistema de que el primer elemento de vídeo tiene una duración de tiempo mayor que el primer intervalo de tiempo: hacer que, por lo menos en parte, el segundo programa comience con un tiempo de retraso en un primer terminal de usuario, en el que el primer terminal de usuario había estado reproduciendo el primer programa, basándose el tiempo de retraso, por lo menos en parte, en la diferencia de tiempo entre la duración actual del primer elemento de vídeo y el primer intervalo de tiempo; hacer que, por lo menos en parte, el segundo programa comience en un tiempo no retrasado en un segundo terminal de usuario, en el que el segundo terminal de usuario no había estado reproduciendo el primer programa.
Un aspecto de la invención es un procedimiento implementado por ordenador para reproducir contenido de vídeo de transmisión en continuo, comprendiendo el procedimiento algunos o todos los actos siguientes: detectar, mediante un primer sistema que comprende hardware informático configurado con instrucciones ejecutables específicas, que un primer programa está planificado para que un terminal de usuario pueda acceder al mismo, en el que el primer programa comprende por lo menos: un primer elemento de vídeo configurado para ser transmitido en continuo desde una primera fuente y para ser visualizado usando un primer reproductor de vídeo, y un segundo elemento configurado para ser transmitido en continuo desde una segunda fuente y para ser visualizado usando un segundo reproductor de vídeo; acceder, mediante el primer sistema, a los metadatos para el primer elemento de vídeo, comprendiendo los metadatos una identificación del primer elemento de vídeo y del primer reproductor de vídeo; basándose por lo menos en parte en los metadatos para el primer vídeo, determinar, mediante el primer sistema, que el primer reproductor de vídeo se usará para reproducir el primer elemento de vídeo; instruir a un reproductor de contenido unificado que se está ejecutando en un terminal de usuario para que acceda al primer elemento de vídeo de la primera fuente y utilice el primer reproductor de vídeo para reproducir el primer elemento de vídeo, en el que el primer elemento de vídeo es transmitido en continuo desde la primera fuente, en el que el reproductor de contenido unificado comprende una interfaz de usuario (por ejemplo, que incluye por lo menos un control de rebobinado colocado en una primera ubicación y que tiene un primer aspecto, y un control de pausa situado en una segunda ubicación y que tiene un segundo aspecto); acceder, mediante el primer sistema, a los metadatos para el segundo elemento de vídeo, comprendiendo los metadatos una identificación del segundo elemento de vídeo y del segundo reproductor de vídeo; basándose por lo menos en parte en los metadatos para el segundo vídeo, determinar, mediante el primer sistema, que el segundo reproductor de vídeo se utilizará para reproducir el segundo elemento de vídeo; determinar la temporización para la reproducción del segundo elemento de vídeo; basándose por lo menos en parte en la temporización determinada para reproducir el segundo elemento de vídeo, instruyendo al reproductor de contenido unificado que se está ejecutando en el terminal de usuario que acceda al segundo elemento de vídeo de la segunda fuente y utilice el segundo reproductor de vídeo para reproducir el segundo elemento de vídeo, en el que el segundo elemento de vídeo es transmitido en continuo desde la segunda fuente, y en el que el aspecto de la interfaz de usuario del reproductor unificado no cambia con respecto al aspecto de la interfaz de usuario del reproductor unificado cuando se utiliza el primer reproductor de vídeo. De forma opcional, los metadatos para el primer elemento de vídeo comprenden un identificador que identifica la primera fuente y un identificador único correspondiente al primer elemento de contenido. De forma opcional, el primer reproductor de vídeo comprende un código de programa al que se accede mediante un navegador alojado en el terminal de usuario, por lo menos en parte desde la primera fuente. De forma opcional, el primer reproductor de vídeo comprende código de programa al que se accede mediante un navegador alojado en el terminal de usuario, por lo menos en parte desde el primer sistema. De forma opcional, el primer reproductor de vídeo comprende código de programa al que se accede mediante un navegador alojado en el terminal de usuario, por lo menos en parte desde el primer sistema y desde la primera fuente. De forma opcional, el primer reproductor de vídeo y el segundo reproductor de vídeo se presentan a través de un navegador o de una aplicación dedicada alojada en el terminal de usuario. De forma opcional, se usa un temporizador para determinar la temporización para reproducir el segundo elemento de vídeo. De forma opcional, el acto de determinar la temporización para la reproducción del segundo elemento de vídeo se basa, por lo menos en parte, en la detección de una indicación del primer reproductor de vídeo de que la reproducción del primer elemento de vídeo ha finalizado o está a punto de finalizar. De forma opcional, el reproductor de contenido unificado comprende un módulo de plataforma configurado para garantizar que se está utilizando un reproductor de vídeo apropiado para los elementos respectivos de contenido del contenido de vídeo. De forma opcional, el procedimiento comprende, además, utilizar una pluralidad de interfaces de programación de aplicaciones de puente entre nativos para una pluralidad respectiva de diferentes entornos nativos. De forma opcional, el reproductor de contenido unificado está configurado para proporcionar una envoltura común para una pluralidad de diferentes reproductores de vídeo. De forma opcional, el primer sistema comprende el terminal de usuario y/o un sistema remoto respecto del terminal de usuario.
Un aspecto de la invención es un sistema, que comprende parte o la totalidad de lo siguiente: un sistema informático que comprende uno o varios dispositivos informáticos; y un sistema de almacenamiento informático que comprende un dispositivo de almacenamiento no transitorio, dicho sistema de almacenamiento informático teniendo almacenado en el mismo instrucciones de programa ejecutables que indican al sistema informático que realice por lo menos parte o la totalidad de lo siguiente: detectar que un primer programa está planificado para ser accedido por un terminal de usuario, en el que el primer programa comprende por lo menos: un primer elemento de vídeo configurado para ser transmitido en continuo desde una primera fuente y para ser visualizado usando un primer reproductor de vídeo, y un segundo elemento configurado para ser transmitido en continuo desde una segunda fuente y para ser visualizado usando un segundo reproductor de vídeo; acceder a metadatos para el primer elemento de vídeo, comprendiendo los metadatos una identificación del primer elemento de vídeo y el primer reproductor de vídeo; basándose, por lo menos en parte, en los metadatos para el primer vídeo, determinar que el primer reproductor de vídeo se debe utilizar para reproducir el primer elemento de vídeo; instruir a un reproductor de contenido unificado que se está ejecutando en un terminal de usuario para que acceda al primer elemento de vídeo de la primera fuente y utilizar el primer reproductor de vídeo para reproducir el primer elemento de vídeo, en el que el primer elemento de vídeo se transmite en continuo desde la primera fuente, en el que el reproductor de contenido unificado comprende una interfaz de usuario que incluye por lo menos un control de rebobinado colocado en una primera ubicación y que tiene un primer aspecto, y un control de pausa situado en una segunda ubicación y que tiene un segundo aspecto; acceder a metadatos para el segundo elemento de vídeo, comprendiendo los metadatos una identificación del segundo elemento de vídeo y el segundo reproductor de vídeo; basándose por lo menos en parte en los metadatos para el segundo vídeo, determinar que el segundo reproductor de vídeo se debe utilizar para reproducir el segundo elemento de vídeo; determinar la temporización para la reproducción del segundo elemento de vídeo; basándose por lo menos en parte en la temporización determinada para la reproducción del segundo elemento de vídeo, instruir al reproductor de contenido unificado que se está ejecutando en el terminal de usuario para que acceda al segundo elemento de vídeo desde la segunda fuente y utilice el segundo reproductor de vídeo para reproducir el segundo elemento de vídeo, en el que el segundo elemento de vídeo se transmite en continuo desde la segunda fuente, y en el que el aspecto de la interfaz de usuario del reproductor unificado no cambia con respecto al aspecto de la interfaz de usuario del reproductor unificado cuando se utiliza el primer reproductor de vídeo.
Un aspecto de la invención es un sistema de almacenamiento informático que comprende un dispositivo de almacenamiento no transitorio, dicho sistema de almacenamiento informático teniendo almacenadas en el mismo instrucciones de programa ejecutables que indican a un sistema informático que realice por lo menos parte o la totalidad de lo siguiente: detectar que un primer programa está planificado para ser accedido por un terminal de usuario, en el que el primer programa consta de por lo menos: un primer elemento de vídeo configurado para ser transmitido en continuo desde una primera fuente y para ser visualizado con un primer reproductor de vídeo, y un segundo elemento configurado para ser transmitido en continuo desde una segunda fuente y para ser visualizado usando un segundo reproductor de vídeo; acceder a metadatos para el primer elemento de vídeo, comprendiendo los metadatos una identificación del primer elemento de vídeo y del primer reproductor de vídeo; basándose por lo menos en parte en los metadatos para el primer vídeo, determinar que el primer reproductor de vídeo se utilizará para reproducir el primer elemento de vídeo; instruir a un reproductor de contenido unificado que se está ejecutando en un terminal de usuario para que acceda al primer elemento de vídeo de la primera fuente y utilice el primer reproductor de vídeo para reproducir el primer elemento de vídeo, en el que el primer elemento de vídeo es transmitido en continuo desde la primera fuente, en el que el reproductor de contenido unificado comprende una interfaz de usuario que incluye por lo menos un control de rebobinado colocado en una primera ubicación y que tiene un primer aspecto, y un control de pausa situado en una segunda ubicación y que tiene un segundo aspecto; acceder a metadatos para el segundo elemento de vídeo, comprendiendo los metadatos una identificación del segundo elemento de vídeo y el segundo reproductor de vídeo; basándose por lo menos en parte en los metadatos para el segundo vídeo, determinar que el segundo reproductor de vídeo se debe utilizar para reproducir el segundo elemento de vídeo; determinar la temporización para la reproducción del segundo elemento de vídeo; basándose por lo menos en parte en la temporización determinada para la reproducción del segundo elemento de vídeo, instruir al reproductor de contenido unificado que se está ejecutando en el terminal de usuario para que acceda al segundo elemento de vídeo de la segunda fuente y utilice el segundo reproductor de vídeo para reproducir el segundo elemento de vídeo, en el que el segundo elemento de vídeo es transmitido en continuo desde la segunda fuente, y en el que el aspecto de la interfaz de usuario del reproductor unificado no cambia con respecto al aspecto de la interfaz de usuario del reproductor unificado cuando se utiliza el primer reproductor de vídeo.
Un aspecto de la invención es un procedimiento implementado por ordenador y un sistema para llevar a cabo el procedimiento, comprendiendo el procedimiento algunos o todos los actos siguientes: generar, mediante un primer sistema que comprende hardware informático configurado con instrucciones ejecutables específicas, una guía electrónica de programas que enumera canales y programas de canales, que incluye por lo menos un primer programa planificado para comenzar en un primer tiempo y finalizar en un segundo tiempo, un segundo programa después del primer programa, el segundo programa planificado para comenzar en un tercer tiempo y finalizar en un cuarto tiempo; identificar, mediante el primer sistema, un primer elemento de vídeo que se incluirá en un primer programa planificado para ser mostrado a los usuarios en un primer período de tiempo, el primer elemento de vídeo alojado en un sistema de terceros, el sistema de terceros bajo control independiente del primer sistema, en el que el primer elemento de vídeo tiene una primera duración de tiempo, en el que la guía electrónica de programas comprende una entrada del primer programa; asignar un primer intervalo de tiempo dentro del primer programa para que el primer elemento de vídeo sea proporcionado a los usuarios; determinar, mediante el primer sistema, la duración actual del primer elemento de vídeo, basándose por lo menos en parte en la información de la duración a la que se accede a través de una interfaz de programación de aplicaciones (API) asociada con el sistema de terceros; calcular o determinar de otra manera, mediante el primer sistema, una diferencia de tiempo entre la duración actual del primer elemento de vídeo y el primer intervalo de tiempo; por lo menos en parte en respuesta a la determinación mediante el primer sistema de que el primer elemento de vídeo tiene una duración de tiempo mayor que el primer intervalo de tiempo: hacer que, por lo menos en parte, el segundo programa comience con un tiempo de retraso en un primer terminal de usuario, en el que el primer terminal de usuario había estado reproduciendo el primer programa, basándose el tiempo de retraso, por lo menos en parte, en la diferencia de tiempo calculada entre la duración actual del primer elemento de vídeo y el primer intervalo de tiempo; hacer que, por lo menos en parte, el segundo programa comience con un tiempo sin retraso en un segundo terminal de usuario, en el que el segundo terminal de usuario no había estado reproduciendo el primer programa. De forma opcional, cuando el primer elemento de vídeo es identificado mediante el primer sistema, el primer elemento de vídeo comprende contenido principal y un primer anuncio, teniendo el primer anuncio una duración del primer anuncio, y cuando se determina la diferencia de tiempo entre la duración actual del primer elemento de vídeo y el primer intervalo de tiempo, el primer elemento de vídeo comprende el contenido principal y un segundo anuncio y no el primer anuncio, teniendo el segundo anuncio una duración de tiempo diferente de la duración del primer anuncio. De forma opcional, cuando el primer elemento de vídeo es identificado mediante el primer sistema, el primer elemento de vídeo comprende contenido principal, y cuando se determina la diferencia de tiempo entre la duración actual del primer elemento de vídeo y el primer intervalo de tiempo, el primer elemento de vídeo comprende el contenido principal y un anuncio de vídeo, en el que el anuncio de vídeo es transmitido en continuo desde un servidor de anuncios. De forma opcional, cuando el primer terminal de usuario muestra una primera ejemplificación de la guía electrónica de programas y el segundo terminal de usuario muestra una segunda ejemplificación de la guía electrónica de programas, el procedimiento comprende, además, hacer que, por lo menos en parte, la ejemplificación de la guía electrónica de programas que se muestra en el primer terminal de usuario se ajuste dinámicamente para reflejar el tiempo de retraso, sin realizar el correspondiente ajuste dinámico de la ejemplificación de la guía electrónica de programas que se muestra en el segundo terminal de usuario.
Un aspecto de la invención es un procedimiento implementado por ordenador y un sistema para llevar a cabo el procedimiento, comprendiendo el procedimiento algunos o todos los actos siguientes: generar, mediante un primer sistema que comprende hardware informático configurado con instrucciones ejecutables específicas, una guía electrónica de programas que enumera canales y programas de canales, que incluye por lo menos un primer programa planificado para comenzar en un primer tiempo y finalizar en un segundo tiempo, un segundo programa después del primer programa, el segundo programa planificado para comenzar en un tercer tiempo y finalizar en un cuarto tiempo; identificar, mediante el primer sistema, un primer elemento de vídeo que se incluirá en un primer programa planificado para ser mostrado a los usuarios en un primer período de tiempo, en el que el primer elemento de vídeo tiene una primera duración de tiempo, en el que la guía electrónica de programas comprende una entrada del primer programa; asignar un primer intervalo de tiempo dentro del primer programa para que el primer elemento de vídeo se proporcione a los usuarios; determinar, mediante el primer sistema, la duración actual del primer elemento de vídeo, basándose por lo menos en parte en los datos a los que se accede desde un primer terminal de usuario que reproduce el primer programa; por lo menos en parte, en respuesta a la determinación mediante el primer sistema de que el primer elemento de vídeo, tal como se reproduce mediante el primer terminal de usuario, tiene una duración de tiempo mayor que el primer intervalo de tiempo: hacer que, por lo menos en parte, el segundo programa comience en un tiempo con retraso en un primer terminal de usuario, en el que el primer terminal de usuario había estado reproduciendo el primer programa; hacer que, por lo menos en parte, el segundo programa comience en un tiempo sin retraso en un segundo terminal de usuario, en el que el segundo terminal de usuario no había estado reproduciendo el primer programa con un tiempo de reproducción extendido. La duración actual del tiempo del primer vídeo puede extenderse cuando es reproducido por primer terminal de usuario como resultado de retrasos en la memoria intermedia. De forma opcional, cuando el primer terminal de usuario muestra una primera ejemplificación de la guía electrónica de programas y el segundo terminal de usuario muestra una segunda ejemplificación de la guía electrónica de programas, el procedimiento comprende, además, hacer que, por lo menos en parte, la ejemplificación de la guía electrónica de programas que se muestra en el primer terminal de usuario se ajuste dinámicamente para reflejar el tiempo de retraso, sin realizar el correspondiente ajuste dinámico de la ejemplificación de la guía electrónica de programas que se muestra en el segundo terminal de usuario.
Un aspecto de la invención es un procedimiento implementado por ordenador y un sistema para llevar a cabo el procedimiento, comprendiendo el procedimiento algunos o todos los actos siguientes: mantener un almacenamiento de datos de reglas de aleatorización de acceso al canal y/o mantener un almacenamiento de datos de información del usuario, comprendiendo la información del usuario las preferencias del usuario proporcionadas de forma explícita y/o los datos del usuario a partir de los cuales se deducen una o varias preferencias del usuario; generar una guía de programas de una pluralidad de canales de contenido; detectar una activación de usuario de un control de aleatorización del canal; generar un orden de escaneo de canales basado por lo menos en parte en: la guía de programas; las reglas de aleatorización de acceso al canal; las preferencias del usuario proporcionadas de forma explícita; y/o las preferencias del usuario inferidas; escanear a través de por lo menos una parte de la pluralidad de canales basándose, por lo menos en parte, en el orden de escaneo de canales generado, y mostrar el contenido de un canal escaneado durante por lo menos un período de tiempo antes de pasar al siguiente canal escaneado. De forma opcional, los datos del usuario a partir de los cuales se deducen una o varias preferencias comprenden el historial de visualización del usuario y/o la navegación del usuario. De forma opcional, el procedimiento comprende, además, determinar qué canales se escanearán y/o qué canales no se escanearán basándose, por lo menos en parte, en los datos del usuario.
Un aspecto de la invención es un procedimiento implementado por ordenador y un sistema para llevar a cabo el procedimiento, comprendiendo el procedimiento algunos o todos los actos siguientes: mantener un almacenamiento de datos de reglas de aleatorización de acceso al canal; mantener un almacenamiento de datos de información de usuario, comprendiendo la información de usuario preferencias de usuario y datos de usuario proporcionados explícitamente a partir de los que se deducen una o varias preferencias del usuario; generar una guía de programas de una pluralidad de canales de contenido; detectar una activación de usuario de un control de aleatorización del canal; generar un orden de escaneo de canales basado por lo menos en parte en: la guía de programas; las reglas de aleatorización de acceso al canal; las preferencias del usuario proporcionadas de forma explícita; y las preferencias del usuario inferidas; escanear a través de por lo menos una parte de la pluralidad de canales basándose por lo menos en parte en el orden de escaneo de canales generado, y mostrar el contenido de un canal escaneado durante por lo menos un período de tiempo antes de pasar al siguiente canal escaneado.
Un aspecto de la invención es un procedimiento implementado por ordenador, comprendiendo el procedimiento algunos o todos los actos siguientes: acceder a una planificación del canal, incluyendo la planificación del canal una pluralidad de programas, que incluyen por lo menos un primer programa y un segundo programa, planificados en tiempos respectivos; antes de o durante el primer programa, acceder a metadatos para el segundo programa, el segundo programa planificado para un tiempo posterior al primer programa; basándose por lo menos en parte en los metadatos para el segundo programa, generar dinámicamente contenido intersticial, proporcionando el contenido intersticial información sobre el segundo programa; haciendo que el contenido intersticial se presente al usuario a través de un terminal de usuario durante o después del primer programa, y antes del segundo programa.
Un aspecto de la invención es un procedimiento implementado por ordenador, comprendiendo el procedimiento algunos o todos los actos siguientes: acceder a una planificación de programa para un primer programa, el primer programa compuesto por una pluralidad de elementos de contenido; antes de o durante un primer elemento de contenido de la pluralidad de elementos de contenido, acceder a metadatos para un elemento de contenido posterior de la pluralidad de elementos de contenido; basándose por lo menos en parte en los metadatos para el elemento de contenido posterior, generar dinámicamente contenido intersticial, proporcionando el contenido intersticial información sobre el elemento de contenido posterior; haciendo que el contenido intersticial se presente al usuario a través de un terminal de usuario durante o después del primer elemento de contenido, y antes del elemento de contenido posterior.
Si bien se puede hacer referencia a una guía de programas, la guía de programas no necesita mostrarse a un usuario para que el usuario vea o escuche programas o canales. Por ejemplo, el usuario puede acceder a un programa o canal mediante una instrucción de voz, un gesto, un mando a distancia o de otro modo.
BREVE DESCRIPCIÓN DE LOS DIBUJOS
Las figuras 1A a 1C ilustran un entorno de sistema de ejemplo y ciertos componentes del mismo.
Las figuras 2A a 2L ilustran interfaces de usuario de la guía de programas de ejemplo.
Las figuras 3A a 3E ilustran interfaces de usuario de la guía de configuración de ejemplo.
Las figuras 4A a 4G ilustran interfaces de usuario de la guía de configuración de ejemplo.
La figura 5A ilustra una interfaz de usuario de generación de programas de ejemplo.
La figura 5B ilustra una interfaz de usuario de la guía de programas de ejemplo que incluye un programa generado por el usuario.
La figura 6 ilustra una arquitectura del reproductor de contenido unificado de ejemplo.
Las figuras 7 a 13 ilustran procesos de ejemplo.
DESCRIPCIÓN DETALLADA
Ciertas realizaciones descritas en el presente documento superan algunas o todas las deficiencias observadas de los sitios convencionales para compartir vídeos. Ciertas realizaciones montan lógicamente el contenido de usuario y/o profesional (por ejemplo, contenido transmitido en continuo) de uno o varios sitios en canales, y proporcionan un sitio de contenido donde se proporcionan vídeos específicos para mostrar a los espectadores en momentos específicos, de acuerdo con una planificación de programas. De forma opcional, el contenido para un canal determinado, o un programa dentro de un canal, se transmite en continuo desde múltiples sitios de contenido de terceros a los terminales de usuario, sin pasar por el sistema del sitio de contenidos que organiza el contenido de terceros en canales y programas.
La figura 1 ilustra un sistema 102 de planificación de contenido de ejemplo en un entorno de ejemplo. Las figuras 1B a 1C ilustran componentes de ejemplo del sistema 102 de planificación de contenido. El sistema 102 de planificación de contenido puede alojar una guía de programas (que se describe con mayor detalle en el presente documento), información de planificación de programas, definiciones de canal, categorías de canal, información de la cuenta del usuario, información de esquemas de reproductores de vídeo para reproductores de vídeo o reproductores de otro contenido de diferentes sitios web, etc. El sistema 102 de planificación de contenido puede incluir uno o varios de los siguientes módulos de servicio, que se explican con mayor detalle en el presente documento: un módulo 150 de generación de canal, un módulo 152 de programación, un módulo 154 de sustitución de contenido, un módulo 156 de identificación de contenido suplementario, un módulo 158 de generación automática de programas, un módulo 160 de generación de guías de programas y/u otros módulos. Se comprenderá que las funciones de los módulos pueden ser realizadas por menos o más módulos.
El sistema 102 de planificación de contenido de ejemplo incluye una unidad 170 de procesamiento, una interfaz 172 de red, un dispositivo 173 de medio legible por ordenador no transitorio y una interfaz 174 de dispositivo de entrada/salida, todos los cuales pueden comunicarse entre sí por medio de un bus de comunicación. La interfaz 172 de red puede proporcionar al sistema 102 de planificación de contenido conectividad con una o varias redes (por ejemplo, la red 116) o sistemas informáticos. La unidad 170 de procesamiento puede así recibir información e instrucciones de otros dispositivos, sistemas o servicios informáticos, tales como terminales de usuario y servicios de alojamiento de contenido de terceros, a través de una red. La unidad 170 de procesamiento también puede comunicarse hacia y desde la memoria 176 y, además, proporcionar información de salida a través de la interfaz 174 del dispositivo de entrada/salida. La interfaz 174 del dispositivo de entrada/salida también puede aceptar entradas de varios dispositivos de entrada, tales como un teclado, un ratón, un bolígrafo digital, una pantalla táctil, etc.
La memoria 176 puede contener instrucciones de programa informático que la unidad 170 de procesamiento puede ejecutar para implementar una o varias realizaciones de la presente invención. La memoria 176 incluye, en general, RAM, ROM y/u otros medios de almacenamiento legibles por ordenador persistentes o no transitorios. La memoria 176 puede almacenar un sistema operativo 180 que proporciona instrucciones de programa informático para su uso por la unidad 170 de procesamiento en la administración y funcionamiento generales del sistema 102 de planificación de contenido. La memoria 176 puede incluir, además, otra información para implementar aspectos de la presente invención.
De forma opcional, la memoria 176 incluye un módulo 178 de interfaz. El módulo 178 de interfaz puede estar configurado para facilitar la generación de una o varias interfaces a través de las cuales un tercer usuario, utilizando un dispositivo informático compatible, puede enviar o recibir desde el sistema 102 de planificación de contenido, contenido, metadatos de contenido, preferencias, recomendaciones de contenido, datos de instrucciones o comunicarse de otra manera con el sistema 102 de planificación de contenido. Específicamente, el módulo 174 de interfaz puede estar configurado para facilitar las funciones de procesamiento descritas en el presente documento, que incluyen generar y proporcionar guías de programas, planificar la programación, generar recomendaciones, proporcionar herramientas de navegación de la guía de programas, proporcionar funcionalidad DVR, generar programas dinámicamente, permitir que un usuario genere un programa, proporcionar interfaces de usuario, etc. Las interfaces de usuario descritas en el presente documento pueden implementarse como una interfaz gráfica de usuario (GUI, graphical user interface), una interfaz de usuario basada en web, un programa informático, un programa o aplicación de teléfono inteligente o de tableta, una pantalla táctil, una interfaz de línea de comandos, una interfaz de gestos, de voz o de texto, etc., o cualquier combinación de los mismos. Un usuario puede hacer que un reproductor de contenido reproduzca un programa seleccionando un programa de una guía de programas. También se puede mostrar un programa sin que el usuario tenga que seleccionar un programa o canal y sin la visualización de una guía de programas. Además, la guía de programas no necesita ser mostrada a un usuario para que el usuario vea o escuche programas o canales. Por ejemplo, el usuario puede acceder a un programa o canal mediante un comando de voz (por ejemplo, reconocido por un sistema de comandos de voz), un gesto del cuerpo/mano o un gesto con el mando (por ejemplo, reconocido por un sistema de reconocimiento de gestos equipado con una cámara o un sistema de seguimiento del movimiento del mando), un mando a distancia o de otra manera.
Además, la memoria 176 puede incluir un módulo 182 de procesamiento de datos que puede ser ejecutado por la unidad 170 de procesamiento. De forma opcional, el módulo 182 de procesamiento de datos implementa aspectos de la presente invención. Por ejemplo, el módulo 182 de procesamiento de datos puede estar configurado para procesar consultas de usuarios, instrucciones, datos y contenido de los almacenamientos de datos 162, 164, etc.
El sistema 102 de planificación de contenido puede comunicarse con una variedad de sistemas 104, 106, 108 de alojamiento de contenido de terceros (en el que los sistemas de terceros no son operados por la misma entidad que opera el sistema 102 de planificación de contenido), desde el cual el contenido se puede transmitir en continuo. De forma opcional, un programador de contenido (a veces denominado curador) define un programa y/o un canal. Por ejemplo, el programador de contenido puede definir un canal como "gatos". El programador de contenido puede definir un programa para el canal de "gatos" que sea "gatos que juegan con perros", con una duración de tiempo de 30 minutos, que se proporcionará a los usuarios en un día/hora específicos (o en días/horas recurrentes). El programador de contenido puede buscar, identificar y seleccionar contenido apropiado para el programa (por ejemplo, contenido de vídeo, contenido de música, contenido de imágenes fijas, transmisiones sociales en continuo, mensajes de texto, etc.) de uno o varios sitios de contenido, tal como vídeos, música, imágenes, medios sociales, blogs (por ejemplo, microblogs) y/u otros sitios de alojamiento de terceros que pueden alojar videoclips, medios de música, imágenes fijas, gráficos, medios sociales, mensajes de blog/microblog (por ejemplo, mensajes de texto y/o de audio-vídeo), etc., de uno o varios usuarios. El programador de contenido puede definir un orden para que se presenten los clips y/u otra forma de contenido seleccionados cuando el programa es visualizado o escuchado por los usuarios. Por ejemplo, el sistema 102 de planificación de contenido puede grabar información de secuencia de clips especificada por un programador o el sistema para indicar el orden en que los clips seleccionados se reproducirán como parte de un programa. El sistema 102 puede asociar metadatos con un clip determinado en un programa, tal como un punto/tiempo de inicio y un punto/tiempo de finalización para cada clip. Por lo tanto, el sistema 102 puede hacer que los clips de un programa determinado se secuencien para proporcionar al usuario una experiencia de visualización sin interrupciones. De forma opcional, el programador puede indicar dónde se pueden insertar anuncios entre los clips. Por ejemplo, el programador puede especificar que se puede insertar un anuncio entre el cuarto y el quinto clip, y el noveno y el décimo clip. Luego, durante la reproducción, se pueden seleccionar e insertar uno o varios anuncios en los puntos designados entre los clips.
De forma opcional, se proporciona una capa de mediación para determinar dinámicamente la colocación de la publicidad en programas compuestos por vídeos cortos u otro contenido. La capa de mediación puede incluir reglas definidas (por ejemplo, reglas definidas por el programador) que especifican cuándo debe mostrarse un anuncio (por ejemplo, dentro de un bloque de tiempo específico dentro de un programa, basándose en qué cantidad de un programa en particular ha visualizado un usuario, en base a la materia de un determinado elemento de contenido (por ejemplo, según se determina a partir de los metadatos asociados), en base a lo que ocurre o se muestra en el contenido, entre los clips especificados, etc.).
De forma opcional, un solo clip u otro contenido de transmisión en continuo que está siendo visualizado por un espectador puede pausarse automáticamente durante la reproducción en un punto o tiempo designado (o aleatoriamente), y un anuncio (por ejemplo, de forma opcional de una fuente diferente a la del clip, como por ejemplo, un servidor de publicidad) puede ser seleccionado (por ejemplo, por el servidor de publicidad), transmitirse en continuo y reproducirse para el usuario. Cuando el anuncio ha terminado de reproducirse, se puede reanudar la reproducción del clip. Por lo tanto, un anuncio se puede reproducir de forma opcional como un anuncio de cuña con respecto a un clip determinado.
Un módulo de programación puede mantener un registro de la suma de las duraciones (en tiempo) de los videoclips y/o de otro contenido seleccionado por el programador de contenido para un programa, y mostrar el registro al programador de contenido. El módulo de programación puede proporcionar una alerta visual y/o audible al usuario cuando el registro es igual a la duración de tiempo definida del programa, y puede proporcionar una notificación diferente cuando el registro es mayor que la duración de tiempo definida del programa. Si la duración total de los clips y/o de otro contenido seleccionado excede la duración definida del programa, el módulo de programación puede recortar de forma opcional el último clip del programa o una parte de cada clip y/o de otro contenido del programa para hacer que la duración total del programa sea aproximadamente igual a la duración definida del programa. El sistema de planificación de contenido registra los localizadores de los clips seleccionados (u otro contenido, tal como contenido de imágenes, transmisiones sociales en continuo, blog (por ejemplo, microblogs), mensajes de texto, etc.), o un localizador de una lista de reproducción de los clips o de otro contenido seleccionados, el orden de los clips y/u otro contenido, y el o los días/horas en que se presentará el programa de vídeo a los usuarios, y a continuación hace que el programa (con los clips en el orden definido) sea presentado en consecuencia, en los días/horas planificados y hace que una guía de programas incluya una entrada para el programa en los días/horas especificados con la duración especificada.
De forma opcional, el sistema 102 puede realizar automáticamente, por lo menos, una parte de las selecciones de contenido para un canal o programa, de forma opcional utilizando, por ejemplo, un módulo de generación de canales o un módulo de generación automática de programas. Por ejemplo, el sistema 102 puede buscar y localizar contenido de vídeo usando términos de búsqueda (por ejemplo, especificados por un programador de contenido) correspondientes a varias categorías/temas. A modo de ilustración, si el sistema está buscando definir un canal de vídeos y/u otro contenido relacionado con gatos, el sistema puede realizar una búsqueda de vídeos de gatos. El sistema puede emitir la solicitud de búsqueda utilizando el motor de búsqueda de uno o varios sitios de alojamiento de contenido de terceros (por ejemplo, enviando la solicitud de búsqueda y los términos de búsqueda utilizando una interfaz de programación de aplicaciones asociada con los sitios de alojamiento de contenido). Los sitios de alojamiento de contenido pueden usar etiquetas (por ejemplo, asignadas por el usuario que publicó el vídeo, asignadas por otros usuarios, asignadas por un operador de los sitios de alojamiento de vídeos, etc.) asociadas con el contenido de vídeo para identificar los vídeos correspondientes a la solicitud de búsqueda. A modo de ejemplo adicional, si se indica al sistema que incluya entradas de microblog como parte del canal de gatos, el sistema 102 puede buscar entradas de microblog (por ejemplo, tuits de TWITTER®) que incluyan texto o etiquetas relacionadas con gatos (por ejemplo, "#gatogracioso”).
El sistema 102 puede usar otros criterios al seleccionar entre vídeos y/u otro contenido para el canal gatos o para un programa específico. Por ejemplo, el sistema puede emitir una consulta de búsqueda de "gatos" y, de forma opcional, filtrar los resultados en base a uno o varios criterios. De forma opcional, el sistema puede buscar vídeos y/u otro contenido de gatos de una duración específica o en un intervalo de duraciones (por ejemplo, 5 minutos, entre 4 minutos y 6 minutos, etc.). También se pueden usar otros criterios para determinar qué vídeos y/u otro contenido seleccionar e incluir en un programa determinado para un canal determinado. Por ejemplo, el sistema puede acceder al número de visualizaciones del sitio de alojamiento de vídeos de terceros y/o a las calificaciones de los usuarios proporcionadas por los usuarios del sitio de alojamiento de vídeos de terceros para determinar qué vídeos seleccionar.
A modo de ilustración, el sistema puede programarse para seleccionar solo aquellos vídeos que tienen más de un número umbral de indicaciones positivas (por ejemplo, más de 500 indicaciones positivas (por ejemplo, votos "visto bueno")) y/o más de un porcentaje especificado de indicaciones de publicación positivas (por ejemplo, el 75 % de los usuarios, que proporcionan una indicación de si les gusta o no el vídeo, indican que les gusta el vídeo) o una proporción específica de indicaciones positivas frente a indicaciones negativas (por ejemplo, una proporción de, por lo menos, 3/1 de indicaciones positivas frente a indicaciones negativas). Además de o en su lugar, el sistema puede acceder y/o analizar otros tipos de indicaciones. Por ejemplo, las indicaciones (por ejemplo, presencia social, calificación social, número de seguidores, número de vídeos publicados, número agregado de visualizaciones para todos los vídeos publicados por el autor para vídeos publicados en uno o varios sitios, tamaño y/o tipo de audiencia, otras actividades del autor, etc.) pueden relacionarse con el autor/fuente de un elemento de contenido en general. Por ejemplo, se puede establecer un umbral con respecto al número de seguidores de un autor, calificación social, calificación de influencia, número de amigos (en un sitio de redes sociales), etc. Se puede acceder a tales indicaciones desde el sitio de alojamiento de vídeos de terceros en el que el contenido está alojado y/o de otros sitios y fuentes (por ejemplo, sitios de redes sociales, sitios de puntuación de influencia, sitios de microblog, etc.).
A modo de ilustración adicional, en este ejemplo, el sistema puede seleccionar vídeos para el canal gatos que tienen una etiqueta y/o título de "gato", que se han visto por lo menos 600 veces y/o que tienen por lo menos un índice de aprobación del 75 %. El sistema 102 puede además de, o en su lugar, seleccionar los 50 (u otro número) vídeos de gatos más vistos o los 50 (u otro número) vídeos más votados para el canal. El sistema 102 u otro programador de contenido puede además de, o en su lugar, seleccionar vídeos de gatos de los 50 (u otro número) autores mejor clasificados en base al número de seguidores que tengan y/o su puntuación de influencia. El sistema 102 puede montar un canal y un programa basándose en los vídeos identificados de uno o varios sitios de terceros.
A modo de ejemplo adicional, el sistema puede acceder a la cantidad de seguidores que tiene un blogger (por ejemplo, un microblogger) y/o a la cantidad de veces que una publicación de blog determinada ha sido vuelta a publicar por otros para determinar qué publicaciones de blog seleccionar para un programa. Otros factores de ejemplo que se pueden tener en cuenta al seleccionar el contenido pueden incluir la cantidad de respuestas que se recibieron en respuesta a una publicación de contenido, la cantidad de "me gusta" que recibió una publicación, la cantidad de sitios de redes sociales diferentes a los que se reenvió una publicación, una calificación de compromiso o influencia de un usuario que publica (que puede basarse, por lo menos en parte, en mediciones de compromiso, tales como la proporción de reacciones generadas por el contenido publicado por el usuario con respecto al número de publicaciones de contenido, y/o dónde se puede generar la calificación por parte del sistema 102 y/o accederse desde uno o varios servicios de calificación de influencia, como KLOUT®, KRED®, PEERINDEX®, etc.), etc.
El sistema 102 puede usar el módulo de identificación de contenido suplementario u otra herramienta para revisar periódicamente los sitios web de alojamiento de vídeos para asegurar que los vídeos seleccionados para un programa determinado sigan disponibles para ser transmitidos en continuo a la pantalla del usuario. Si el sistema 102 determina que ciertos vídeos que ya se habían incluido en el programa planificado ya no están disponibles, el sistema puede encontrar vídeos alternativos de duración (por ejemplo, en base a una etiqueta de duración u otra indicación de duración) y materia (por ejemplo, porque el vídeo alternativo había sido previamente designado manualmente como un vídeo alternativo del programa específico, basándose en una etiqueta de temática u otra indicación) similares para sustituir los vídeos que faltan, tal como se explica con mayor detalle en el presente documento. De manera similar, el sistema 102 puede revisar periódicamente otros sitios web de alojamiento de contenido para garantizar que los elementos de contenido seleccionados (por ejemplo, publicaciones de microblogs, publicaciones en páginas de redes sociales, etc.) para un programa determinado siguen estando disponibles para proporcionarse al terminal de usuario. Si el sistema 102 determina que algunos otros elementos de contenido que ya se han incluido en el programa planificado dejan de estar disponibles, el sistema puede encontrar contenido alternativo de duración (por ejemplo, basándose en una etiqueta de duración u otra indicación de duración), tipo y/o materia similares a sustituir el contenido que falta.
El sistema 102 también puede comunicarse con una variedad de terminales de usuario sobre una red 116 (por ejemplo, a través de Internet). El sistema puede proporcionar a los terminales de usuario 110, 112, 114 acceso a la guía de programas (por ejemplo, como una aplicación web a través de un navegador web y/o a través de una aplicación dedicada, tal como una aplicación de teléfono alojada en un terminal de usuario) y habilitar los terminales de usuario para que accedan a los programas transmitidos en continuo directamente desde los sistemas 104, 106, 108 de alojamiento de contenido y/o a través del sistema 102, de acuerdo con la temporización de la planificación de la guía de programas. El sistema 102 también puede proporcionar una funcionalidad de grabadora de vídeo digital (DVR, digital video recorder) simulada como se describe en otra parte del presente documento. El sistema 102 también puede alojar interfaces de usuario de administrador y programas asociados. Un dispositivo móvil 118 puede tener una aplicación instalada en el mismo que permite que el dispositivo móvil actúe como un mando a distancia y permita al usuario navegar por la guía de programas en un terminal de usuario a través de entradas en el dispositivo móvil 118.
El sistema 102 puede incluir almacenamientos 162, 164 de datos que almacenan contenido para ser transmitido en continuo a los usuarios (por ejemplo, contenido de reserva/alternativo como se describe en el presente documento, contenido de canal estándar, contenido de publicidad/promoción, etc.), información de ubicación para el contenido que se debe transmitir en continuo a los usuarios (por ejemplo, los URL del contenido de vídeo en sitios de alojamiento de terceros 104, 106, 108, los URL del contenido de música, contenido de imágenes, contenido social, microblogs, etc., o cualquier combinación de los mismos en sitios de alojamiento de contenido locales o de terceros), horarios de los programas, información de cuentas de usuario (por ejemplo, preferencias de canal y de contenido del usuario (por ejemplo, géneros, programas, materias, contenidos y/o canales que le gustan y/o no le gustan proporcionados por el usuario a través de una o varias interfaces), especificaciones de usuario de los canales que se deben bloquear, instrucciones de recordatorios del usuario, marcadores del usuario, historial de visualización del usuario (por ejemplo, qué canales y programas ha visto el usuario, con qué frecuencia mira el usuario un programa o canal determinados, durante cuánto tiempo mira un usuario un programa o canal determinado, etc.), reglas y/u otra información.
A modo de ejemplo, la información de la cuenta del usuario (por ejemplo, las preferencias de canal y de contenido del usuario proporcionadas de forma explícita por el usuario, las preferencias de canal y de contenido del usuario según se determinan a partir del historial de visualización de contenido del usuario, etc.), los comportamientos del usuario (por ejemplo, cuánto tiempo mira el usuario contenido por día o semana, cuántas veces, en un período de tiempo específico, el usuario cambia de canal, con qué frecuencia, durante un período de tiempo específico, el usuario prueba un nuevo canal o espectáculo (un canal o espectáculo que el usuario no ha visto anteriormente), etc.), el contenido promocionado (por ejemplo, el contenido patrocinado por un anunciante u otro tercero) y/o los datos de terceros pueden usarse para generar recomendaciones de contenido para el usuario y/o para organizar cómo se presenta una guía de programas al usuario. De forma opcional, el módulo 160 de generación de la guía de programas puede utilizarse para generar y/o personalizar las guías de programas. Por ejemplo, algunos o todos los datos anteriores pueden usarse de forma opcional para determinar: el orden de los canales en la guía electrónica de programas (por ejemplo, qué canales se presentan en primer, segundo, tercer lugar, etc.); qué canales, si los hay, se deben excluir de la guía de programas (por ejemplo, los canales que el sistema determina que son de bajo interés para el usuario); qué canales se deben resaltar (por ejemplo, a través de color, animación, interfaces emergentes o de otro modo, etc.), qué tipo de información se debe incluir en la guía de programas, etc. Por lo tanto, se puede generar automáticamente una guía de programas y personalizarse para un usuario determinado.
De forma opcional, se puede proporcionar un motor de inteligencia artificial que aprende las preferencias e intereses del usuario (por ejemplo, basándose en la información de la cuenta del usuario y el comportamiento de visualización y/o navegación) y recomienda otro contenido (por ejemplo, otros programas y canales) a través de texto, gráficos y/o una pista de voz generada por ordenador sincronizada con los movimientos faciales y de los labios de un presentador generado por ordenador (que puede aparecer como un ser humano o que puede aparecer como una figura de un dibujo animado, un animal o de otra manera). El presentador generado por ordenador puede estar configurado para actuar como presentador de canal o de programa.
Los sistemas 104, 106, 108 de alojamiento de contenido pueden permitir a los usuarios subir o publicar de otro modo contenido de medios (por ejemplo, contenido grabado y/o de transmisión en continuo en directo), tal como vídeos, contenido de medios sociales u otro contenido, y proporcionar títulos y/o otras etiquetas a los contenidos de medios (por ejemplo, etiquetas descriptivas, de materia). Los vídeos u otro contenido pueden asociarse con metadatos, tal como la duración de los vídeos u otro contenido y/o la duración del anuncio transmitido en continuo como un anuncio anterior o posterior al vídeo). Los usuarios y/o los sistemas de alojamiento pueden asignar una etiqueta de categorización al contenido de medios (por ejemplo, humor, gatos, espectáculos de televisión con licencia, ciencia, cine y entretenimiento, juegos, etc.), y pueden registrar y publicar información de calificación del espectador, y realizar un seguimiento y publicar el número de visualizaciones. El sistema 102 puede acceder y utilizar parte o la totalidad de esta información (por ejemplo, utilizando una interfaz de programación de aplicaciones (API)), de manera similar a lo explicado en el presente documento.
La figura 2A ilustra una guía de programas interactiva de ejemplo para una pluralidad de canales y períodos de tiempo y un área de visualización para ver un programa que se está reproduciendo actualmente para un canal seleccionado por el usuario. Se debe comprender que la guía de programas puede tener menos funciones o características adicionales y puede tener un aspecto y controles diferentes. Se puede acceder a la guía de programas, mostrarla e interactuar con ella con el uso de un navegador (por ejemplo, tal como una aplicación web codificada con un lenguaje de programación soportado por el navegador, como JavaScript), con el uso de una aplicación dedicada (por ejemplo, una aplicación de dispositivo móvil (por ejemplo, una aplicación de teléfono o una aplicación de tableta), una aplicación de consola de juegos, una aplicación de ordenador personal, una aplicación de televisión inteligente, una aplicación de dispositivo de transmisión en continuo, etc.), o de otro tipo. De forma opcional, la funcionalidad de la guía de programas puede ser proporcionada por un sistema que el usuario puede conectar al dispositivo de reproducción del usuario. Por ejemplo, el sistema puede tener la forma de un adaptador o una llave que el usuario puede conectar a un puerto de dispositivo de reproducción (por ejemplo, un puerto HDMI) o conectar de forma inalámbrica al dispositivo de reproducción. En este ejemplo, la guía de programas tiene la forma de una parrilla, aunque se pueden usar otras disposiciones y formatos.
En este ejemplo, en el lado izquierdo de la guía de programas (el eje vertical), se proporcionan los números de canal (aunque se pueden usar otras convenciones de nomenclatura de canales, como títulos, letras, colores, etc.). En el eje horizontal, se enumeran los períodos de tiempo. Los títulos de los programas se proporcionan, con una indicación (por ejemplo, una indicación gráfica y/o tiempos de inicio/finalización numéricos) sobre cuándo comienza y termina un programa determinado. Por lo tanto, los programas enumerados por la guía de programas son eventos programados/planificados, habitualmente con una duración específica, dentro de una línea de tiempo del canal. El usuario puede desplazarse por los canales en el lado izquierdo y la interfaz de usuario presentará información adicional con respecto a los canales y/o con respecto a los programas y episodios de programas recurrentes. El usuario puede desplazarse hacia adelante y hacia atrás a lo largo de la línea de tiempo del programa haciendo clic con el ratón sobre la cabecera de la línea de tiempo o de otro modo. El área de visualización (y el programa) se puede mostrar al mismo tiempo que la guía de programas, o se puede cerrar el área de visualización para proporcionar un área más grande para la visualización de la guía de programas. De manera similar, la guía de programas puede cerrarse o superponerse para proporcionar un área más grande para mostrar el área de visualización (por ejemplo, mediante la activación de un control de "pantalla completa" proporcionado por la interfaz de usuario).
Dentro de la guía de programas, hay enlaces individuales por canal a los que el navegador del usuario accede cuando se cambia de canal. Por ejemplo, el enlace para el canal "Top 40" puede tener la forma de http://pluto.tv/#!channels/Top%2040&_=_. Un canal determinado puede tener “listas de reproducción” de contenido asociadas, que son una serie de clips organizados en programas/episodios planificados y a los que se puede acceder mediante el navegador del usuario. Por lo tanto, una lista de reproducción puede tener, de forma opcional, la forma de una lista de clips (por ejemplo, compilados por programadores humanos de contenidos o de forma automática por el sistema), que comparten una temática, mensaje o materia similar, y que están organizados en un programa con una duración específica.
El área de visualización muestra el programa que se está reproduciendo actualmente para un canal seleccionado por el usuario. De forma opcional, se muestra información sobre el programa junto con el programa. Parte de la información puede obtenerse de los metadatos del clip que se está reproduciendo actualmente y parte de la información puede obtenerse del nombre del canal y del nombre del programa. Por ejemplo, la interfaz de usuario del área de visualización puede mostrar el número del canal, el nombre del canal, el nombre del programa, el nombre del clip que se está reproduciendo actualmente y/u otra información correspondiente. Se comprenderá que un usuario no tiene que seleccionar un programa específico para ver el programa. El usuario puede seleccionar un canal y los programas para ese canal se reproducirán de forma continua en el terminal del usuario de acuerdo con la planificación hasta que el usuario navegue a otro canal, pause un programa, cierre la aplicación de la guía de programas, etc. La guía de programas puede destacar el canal y/o el programa que se están reproduciendo actualmente en la lista de programas (por ejemplo, usando color, negrita, animación o de otro modo).
De forma opcional, se proporciona un control de "todos los canales". El usuario puede activar el control "todos los canales" y, en respuesta, la interfaz de usuario mostrará una lista de todos los canales activos actuales (aunque es posible que el usuario deba desplazarse por la lista de canales para ver todos los canales activos). El usuario también puede seleccionar un control de categorías y, en respuesta, la interfaz de usuario mostrará agrupaciones de canales, donde los canales son agrupados según la temática/categoría (por ejemplo, 100 a 200 infantil; 300 a 400 deportes; 500 a 600 bajo demanda; 700 a 800 pago por visión, 900 a 1000 canales generados por el usuario, etc.), y se proporcionan los nombres y/o números de canales para cada canal. Una interfaz de usuario de categorías de canal de ejemplo se ilustra en la figura 2B. Las diversas categorías pueden de manera opcional indicarse visualmente mediante rectángulos para cada categoría separados, espaciados, codificados por colores, con un nombre de categoría como cabecera y con una lista de canales para cada categoría.
El usuario también puede activar un control que, cuando se detecta, hace que la interfaz de usuario muestre canales adicionales o menos canales en la parrilla o muestre solo los canales que el usuario había indicado previamente como canales favoritos o preferidos del usuario.
De forma opcional, como se indicó anteriormente, además de mostrar los programas planificados, la misma interfaz de usuario de la guía de programas también puede enumerar de forma opcional programas bajo demanda (por ejemplo, contenido bajo demanda gratuito, películas de pago por visión, música, espectáculos de televisión u otro contenido que es parte de un paquete de suscripción, etc.), donde un usuario puede hacer clic en una entrada de programa bajo demanda en cualquier momento y hacer que el programa se transmita en continuo al usuario. Las entradas de contenido bajo demanda se pueden agrupar, de forma opcional, para que se enumeren como canales adyacentes (por ejemplo, los canales 500 a 600 pueden estar dedicados a canales bajo demanda). Las entradas agrupadas de contenido bajo demanda pueden mostrarse por encima o por debajo de los canales de programación planificados, o entre un conjunto superior y un conjunto inferior de canales de programación planificados.
Si hay una tarifa asociada con la visualización de un elemento de contenido bajo demanda (por ejemplo, el contenido es contenido de pago por visión o si puede alquilarse durante un período de tiempo específico), se puede acceder de forma opcional a la información de la tarifa asociada desde un almacenamiento de datos y proporcionarse para su visualización dentro o en asociación con la entrada de bajo demanda. Si el usuario hace clic en un elemento del contenido basado en tarifas, se puede solicitar al usuario que introduzca información de pago o que acepte que la información de pago proporcionada anteriormente puede usarse para cobrar la tarifa. Al usuario se le puede entonces cobrar la tarifa y puede ver el contenido basado en la tarifa. De forma opcional, la agrupación de los canales bajo demanda puede mostrarse como una sola entrada, y se puede proporcionar un control de expansión que, si es activado por el usuario, hace que se muestre cada entrada de canal bajo demanda. Por lo tanto, de forma opcional, la misma guía de programas puede mostrar entradas y acceso tanto para canales bajo demanda como lineales, planificados.
De forma opcional, se proporciona un control de aleatorización (por ejemplo, un botón o una entrada de menú), que cuando es activado por un usuario, hace que el sistema genere sustancialmente en tiempo real un programa y/o un canal de contenido no planificado y/o contenido no seleccionado específicamente por el usuario (por ejemplo, cuando el programa o el canal no es simplemente una lista de reproducción definida por el usuario). Sin embargo, de forma opcional, el contenido no se selecciona realmente aleatoriamente, sino que se puede seleccionar en base a uno o varios criterios. De forma opcional, parte o todo el contenido es seleccionado aleatoriamente y/o seleccionado a mano por un operador. Por ejemplo, el sistema puede acceder a la información de la cuenta del usuario (por ejemplo, las preferencias de contenido, el comportamiento de visualización y/o el historial de visualización de un usuario) para su uso en la selección, sustancialmente en tiempo real, de uno o varios elementos de contenido que se mostrarán al usuario como programa o canal. Por ejemplo, si la información de la cuenta del usuario indica que al usuario le gustan las meteduras de pata en béisbol y en monopatín, pero que no está interesado en las meteduras de pata en fútbol, el aleatorizador puede seleccionar entre una o varias fuentes de contenido de vídeo de meteduras de pata en béisbol y de monopatín, y generar un programa para el usuario a partir de contenido de vídeo de meteduras de pata de béisbol y de monopatín, mientras que excluye de programa contenido de vídeo de meteduras de pata de fútbol.
De forma opcional, se proporciona un modo de escaneo inteligente de canales que determina un orden de prioridad para saltar a los canales, en respuesta a un usuario que activa un control de escaneo basado por lo menos en parte en un conjunto o conjuntos procesados de datos. A modo de ilustración, se puede proporcionar un control de escaneo, que cuando se activa, hace que un reproductor recorra los canales, presentando el contenido de cada canal por el que se pasa durante un período de tiempo (por ejemplo, 1 segundo, 3 segundos, 5 segundos u otro período de tiempo, o hasta el final del elemento de contenido actual (por ejemplo, un videoclip) o el final del programa actual, que el usuario puede configurar de forma opcional) antes de saltar al siguiente canal. Si al usuario le gusta el contenido que proporciona un canal, el usuario puede activar el control de escaneo nuevamente o un control de reproducción para detener el escaneo y permitir que se presente el contenido del canal actual. El modo de escaneo puede configurarse para escanear a través de cada canal disponible o para escanear solo un subconjunto de canales disponibles.
El orden del escaneo puede basarse en el orden de los canales en la guía de programas, o el orden del escaneo se puede determinar dinámicamente. Por ejemplo, la secuencia de escaneo puede basarse en el contenido que el usuario está viendo actualmente, el historial de visualización del usuario, las preferencias del usuario y otra información de la cuenta del usuario (por ejemplo, géneros, programas, materias, contenidos y/o canales que le gustan y/o no le gustan, especificaciones de usuario de los canales que se deben bloquear, instrucciones de recordatorio del usuario, marcadores de usuario, etc.), etc.
Por ejemplo, dependiendo de la configuración del modo de escaneo, si el usuario está viendo actualmente un canal de deportes al activar el control de escaneo, el modo de escaneo puede escanear solo a través de otros canales de deportes. A modo de ejemplo adicional, dependiendo de la configuración del modo de escaneo, si el usuario está viendo actualmente un canal de deportes al activar el control de escaneo, el modo de escaneo puede escanear primero a través de otros canales de deportes, y luego escanear a través de canales que no sean de deportes.
De forma opcional, se proporciona una interfaz de usuario a través de la cual el usuario puede especificar una o varias secuencias de escaneo específicas, que pueden estar asociadas con respectivos controles de escaneo. La interfaz de usuario puede incluir un campo a través del cual el usuario puede introducir un nombre de secuencia de escaneo, que luego puede presentarse en asociación con los controles de escaneo respectivos. Así, por ejemplo, un usuario puede definir una secuencia de escaneo de canales de deportes, una secuencia de escaneo de canales de comedia, una secuencia de escaneo de canales de música, una secuencia de escaneo de programas de telerrealidad, etc. Se puede presentar un menú de controles de escaneo respectivos mediante el cual el usuario puede seleccionar la secuencia de escaneo deseada. En respuesta a la selección del usuario, el reproductor de contenido escaneará la secuencia de canales seleccionada.
De forma opcional, se proporciona un control de recomendación, que cuando es activado por el usuario, hace que el sistema genere y/o muestre recomendaciones de programas y/o canales. Las recomendaciones pueden basarse, por lo menos en parte, en uno o varios de los siguientes: información de la cuenta del usuario (por ejemplo, géneros, programas, materia, contenido y/o canales que le gustan y/o que no le gustan, especificaciones del usuario de los canales que deben bloquearse, instrucciones de recordatorio del usuario, marcadores de usuario, etc.), historial de visualización del usuario, comportamiento de navegación del usuario, etc.
Tal como se ilustra adicionalmente en la figura 2A, se proporciona, de forma opcional, un control de conversación que permite a un usuario iniciar una conversación (por ejemplo, una conversación de texto) con otros. De forma opcional, se proporciona una interfaz de usuario de conversación (por ejemplo, en respuesta a la activación por parte del usuario del control de conversación) que muestra nombres y/o imágenes de algunos de los amigos del usuario, como se ilustra en la figura 2C. Se puede acceder a los nombres o imágenes de los amigos del usuario desde un sitio de redes sociales o pueden ser proporcionados directamente por el usuario (por ejemplo, a través de una interfaz "añadir a un amigo"). La interfaz de usuario de conversación puede indicar qué amigos del usuario están en línea y qué amigos del usuario están viendo actualmente el mismo programa que el usuario. La figura 2D ilustra una sesión de conversación que puede tener lugar mientras varios conversadores están viendo un programa (por ejemplo, un programa planificado en un canal, de modo que la sesión de conversación está sincronizada con el episodio). De forma opcional, la interfaz de usuario puede acceder al contenido de vídeo y de audio desde una cámara web y un micrófono para permitir a los usuarios conversar a través de un vídeo y/o audioconferencia. La cámara web también se puede colocar y utilizar para permitir que los amigos de un usuario vean al usuario que mira un programa determinado.
El usuario puede invitar a otros a ver un programa actual o futuro a través de la interfaz de usuario de conversación u, de forma opcional, a través de una interfaz de usuario de invitación directa. Por ejemplo, el usuario puede activar un control de invitación y se enviará una invitación a un amigo (u otro usuario) especificado por el usuario. La invitación puede identificar el título del programa, el canal y/o la fecha/hora del programa. De forma opcional, la invitación puede incluir un texto de plantilla de invitación preexistente y un texto dinámico que identifique el programa y el canal que el usuario está viendo, tal como "Estoy viendo 'Gatos cenando' en el Canal 302. Por favor, míralo conmigo" o "Estaré mirando 'Gatos cenando' en el Canal 302 el viernes 26 de diciembre. Por favor, míralo conmigo” (el texto subrayado indica el texto dinámico). El texto dinámico puede determinarse detectando qué programa está viendo el usuario y determinando en qué canal se muestra. El texto dinámico se puede introducir entonces en la invitación. La invitación puede ser enviada en tiempo real. De forma opcional, la interfaz de usuario de conversación también puede proporcionar acceso a una sala de conversaciones pública, como se ilustra en la figura 2E.
Se pueden proporcionar controles para un vídeo digital real o simulado u otra grabadora de contenido (DVR) para su visualización en un terminal de usuario en asociación con un reproductor de vídeo o de otro contenido. De forma opcional, la DVR puede ser un módulo alojado por el sistema 102 o alojado por el terminal del usuario e implementado en parte usando software en comunicación con el software que proporciona la guía de programas. Un conjunto de controles de DVR de ejemplo se ilustra en las figuras 2C y 2J. Tal como se describirá, de forma opcional, la DVR se puede usar para "grabar" un programa, ver un programa grabado (por ejemplo, de una biblioteca específica para un usuario o de una biblioteca compartida), pausar y rebobinar un programa en vivo, compartir un programa que se está viendo actualmente y/o compartir marcadores. En este ejemplo, se proporciona un control de pausa/reproducción, un control de rebobinado, un control de avance rápido y un control de desplazamiento. Por ejemplo, el usuario puede indicar, a través de un control de grabación proporcionado por la interfaz de usuario de la guía de programas, que se grabe un espectáculo para su posterior reproducción. Una interfaz de usuario de DVR también puede proporcionar una lista/biblioteca de programas grabados (que pueden ser programas grabados virtualmente), desde las cuales el usuario puede seleccionar para reproducción. La función de DVR puede permitir al usuario rebobinar o avanzar rápidamente a través de un programa grabado o en reproducción actualmente usando los controles de rebobinado y avance rápido correspondientes.
De forma opcional, no se utiliza una DVR real. Por el contrario, la interfaz simula la funcionalidad de una DVR. Así, por ejemplo, aunque el conjunto de control de la DVR permite al usuario hacer una pausa, rebobinar y avanzar rápidamente a través de un programa, no se almacena una copia del programa en el terminal del usuario o en el sistema de planificación de contenido. En lugar de esto, el conjunto de control de la DVR está controlando la reproducción de los medios que se transmiten en continuo desde fuentes de contenido de terceros. Así, por ejemplo, si un usuario proporciona una instrucción de "grabar" mientras mira el programa, no se graba ningún contenido real en respuesta. En cambio, se puede almacenar un marcador (por ejemplo, en el terminal de usuario o en el sistema de planificación de contenido) que indica en qué punto del programa el usuario activó la grabación del programa. Cuando el usuario accede posteriormente al programa "grabado", el sistema accede al marcador almacenado, determina en qué momento el usuario activó el marcador y provoca la reproducción del clip correspondiente (y, por lo tanto, del programa que incluía el clip), al que se accede desde el sitio de contenido de terceros, para comenzar en la ubicación marcada. Por lo tanto, de manera ventajosa, el espacio de almacenamiento en el terminal de usuario o en la planificación de contenido no se desperdicia almacenando contenido del sitio de contenido de terceros.
De forma opcional, el usuario puede asociar varios marcadores con un programa, donde cada marcador se asocia con un momento/punto diferente en el programa. La guía de programas puede incluir un control de listado, que cuando es activado por el usuario, hace que se genere un listado de los marcadores/grabaciones y se muestre al usuario. El listado puede mostrar parte o la totalidad de lo siguiente: un cuadro del programa correspondiente a la ubicación del marcador, el nombre del programa, el canal del programa y la fecha/hora en las que el usuario creó el marcador. El usuario puede seleccionar entonces un determinado marcador o "grabación" para su reproducción y, a continuación, el programa correspondiente se reproducirá desde el punto marcado.
Los marcadores y la biblioteca de un usuario pueden estar asociados con la cuenta del usuario y, de forma opcional, puede no ser accesible para otros usuarios. De forma opcional, el usuario puede seleccionar compartir algunos o todos los marcadores o la biblioteca de programas del usuario con uno o varios usuarios. Por ejemplo, el usuario puede compartir marcadores para un programa en particular, un conjunto o conjuntos de programas, un canal o conjunto de canales. Se puede notificar al destinatario o destinatarios de los marcadores (o biblioteca) que el usuario está compartiendo los marcadores (o la biblioteca) con el destinatario y puede ver una lista de marcadores generada similar. De forma opcional, se puede incluir un marcador (o el acceso a un marcador a través de un enlace o de otra manera) en una invitación del usuario (tal como las invitaciones que se explican en otros puntos del presente documento) a uno o varios usuarios para ver el programa (por ejemplo, comenzando en el lugar marcado). Por lo tanto, el sistema permite al usuario participar en la visualización del programa a partir de una ubicación marcada, con otros usuarios remotos con los que el usuario ha compartido el marcador. De forma opcional, la biblioteca y/o los marcadores pueden compartirse a través de una variedad de diferentes tipos de plataformas (por ejemplo, ordenadores de tableta, teléfonos inteligentes, ordenadores de sobremesa, televisores en red, etc.) o de solo uno o varios tipos de plataformas seleccionadas por el usuario y/o el sistema.
Además, la DVR (la DVR virtual o no virtual) se puede usar para navegar a través de un programa que está viendo el usuario de acuerdo con su visualización planificada. Es decir, la DVR permite al usuario rebobinar, pausar y avanzar rápidamente a través de un programa "en directo". De forma opcional, la DVR evita que el usuario avance rápidamente a través de un programa más allá de su punto "en directo" actual. De forma opcional, la DVR puede en cambio permitir al usuario avanzar rápidamente a través de un programa más allá de su punto "en directo" actual. Por supuesto, si el programa es un programa en directo real (por ejemplo, un evento deportivo en directo), se impide que el usuario avance rápidamente a través del programa más allá del punto en directo actual del programa.
Debido a que un programa determinado puede estar compuesto por múltiples clips transmitidos en continuo desde diferentes fuentes, que son lógica y visualmente unidos entre sí posteriormente (para proporcionar una experiencia de visualización sin interrupciones a un espectador), el rebobinado o el avance rápido a través de un programa determinado pueden hacer que se atraviesen los límites de los clips. Debido a que ciertos clips pueden provenir de diferentes fuentes, el sistema determina si la instrucción de rebobinar (o avanzar rápido) hará que se atraviese el límite de un clip, y si es así, determinará qué otro clip debe transmitirse en continuo al reproductor de vídeo del usuario en base a la cantidad de rebobinado o avance rápido. El sistema hará entonces que el clip apropiado de la fuente apropiada sea transmitido en continuo al reproductor de vídeo del usuario desde el punto apropiado en el clip. Se comprenderá que un usuario puede rebobinar o avanzar rápidamente a través de un programa utilizando controles de rebobinado y avance rápido dedicados, un control de desplazamiento o de otro modo. A continuación se describe una interfaz de usuario de DVR de ejemplo con respecto a las figuras 2J y 2K.
De forma opcional, se puede proporcionar un control (por ejemplo, un botón) de añadir a la biblioteca en páginas de terceros (por ejemplo, páginas de sitios web) o mediante un complemento del navegador que permite a un usuario añadir un vídeo de la página de terceros a la biblioteca individual del usuario (por ejemplo, la biblioteca de la DVR del usuario para acceder a través de la DVR o de otro modo). Por ejemplo, cuando el usuario activa el control de añadir a la biblioteca, el código asociado con el control de añadir a la biblioteca detecta la activación y transmite la información correspondiente del localizador de vídeo (o información del localizador para otro contenido, tal como contenido de imágenes, retransmisiones sociales en continuo, microblogs, mensajes de texto, etc.), a la biblioteca del usuario (que puede estar alojada en el terminal del usuario y/o en el sistema). Por ejemplo, la información del localizador puede comprender un URL y/o un código interno de terceros que apunta específicamente al vídeo (u otro contenido) por separado de la página en su totalidad, de modo que cuando el usuario accede posteriormente al vídeo, solo el vídeo, y no la página circundante, se muestra en el reproductor de vídeo del usuario. Así pues, por ejemplo, si el usuario se encuentra con un vídeo en un sitio web de un canal de noticias, pero no tiene tiempo para ver el vídeo, el usuario puede "guardar" el vídeo en la biblioteca del usuario para su posterior reproducción activando el control de añadir a la biblioteca. De forma opcional, el vídeo se puede añadir a una lista de reproducción o canal público o privado específico, como un canal definido por el usuario, de vídeos que el usuario ha guardado pero aún no ha visto.
Si el usuario hace clic en un programa enumerado en la guía de programas que aún no ha comenzado, se presenta un control de recordatorio (por ejemplo, en una ventana emergente o de otro modo), del que se ilustra un ejemplo en la figura 2F (el control "notifícame"). Si el usuario activa el control de recordatorio, se presenta la interfaz de usuario de recordatorio ilustrada en la figura 2G. El usuario puede proporcionar una instrucción para que se transmita un recordatorio en la cantidad de tiempo preestablecida por el usuario o en una cantidad especificada por el usuario antes del comienzo del programa. De forma opcional, el usuario puede especificar, a través de una especificación de la cuenta de usuario, a través de un control en la ventana emergente, a través de una selección de menú o de otro modo, cómo se proporcionará el recordatorio.
Por ejemplo, el usuario puede especificar que el recordatorio se proporcionará a través de una alerta audible o visual en el terminal del usuario, a través de un mensaje SMS/MMS transmitido a un dispositivo móvil del usuario, a través de un correo electrónico, a través de una llamada telefónica automatizada, a través de un entrada en el calendario del usuario (que hará que el calendario proporcione un recordatorio audible y/o visual) y/o de otro modo. A modo de ilustración, el usuario puede especificar que el recordatorio se proporcionará a la hora de inicio del programa, 1 minuto antes de la hora de inicio del programa, 15 minutos antes de la hora de inicio del programa, 1 hora antes de la hora de inicio del programa u otra cantidad de tiempo antes del inicio del programa. El sistema o la aplicación almacenarán las instrucciones de recordatorio y proporcionará recordatorios al usuario en consecuencia. Tal como se ilustra en la figura 2G, la interfaz de usuario de recordatorio también puede incluir una interfaz a través de la cual el usuario puede invitar a otra persona a ver el próximo programa al mismo tiempo. En el ejemplo ilustrado en la figura 2G, se proporciona un campo a través del cual el usuario puede indicar (por ejemplo, introduciendo una dirección de correo electrónico o una dirección de SMS del invitado) a quién se debe proporcionar la invitación. A continuación, al invitado se le proporcionará un recordatorio casi al mismo tiempo que el usuario recibe el recordatorio (por ejemplo, por correo electrónico, SMS o de otro modo).
De forma opcional, se puede navegar por la interfaz de usuario de la guía de programas mediante un mando a distancia. Por ejemplo, el mando a distancia puede tener la forma de un dispositivo móvil, tal como un teléfono móvil con pantalla táctil o una tableta táctil, que tiene una aplicación de mando a distancia (u otra aplicación que incluye un módulo de mando a distancia, tal como una aplicación de guía de programas que incluye un módulo de mando a distancia) descargado e instalado en el mismo. El mando a distancia puede estar configurado para comunicarse directamente con la aplicación de interfaz de usuario alojada en el terminal del usuario a través de un protocolo de comunicación inalámbrica local, como Bluetooth, o mediante una red inalámbrica de área local, como una red Wi-Fi o de otro modo. De forma opcional, para permitir que el mando a distancia se sincronice con la guía de programas presentada en un navegador en el terminal de usuario, el usuario selecciona un control de sincronización presentado a través de la aplicación de mando a distancia (por ejemplo, la aplicación del teléfono). A continuación, la aplicación solicita al usuario que introduzca el código de sincronización remota generado por la aplicación web ejecutada por el navegador del usuario, tal como se ilustra en la figura 2H. Una vez que el usuario introduce el código en un campo presentado por la aplicación, la aplicación se convierte en un mando a distancia para la aplicación web. Por ejemplo, la aplicación puede presentar una versión de la guía de programas formateada para el anfitrión de la aplicación de mando a distancia (por ejemplo, un teléfono inteligente o la pantalla de una tableta), tal como se ilustra en la figura 2I. Cuando el usuario selecciona un canal o programa determinado de la guía de programas proporcionada a través del mando a distancia, ese mismo canal o programa se seleccionará en la aplicación web en el terminal del usuario. Por lo tanto, las entradas de usuario en el mando a distancia pueden replicarse funcionalmente en el terminal de usuario. De manera similar y opcional, cuando el usuario selecciona un canal o programa determinado a través de la aplicación web, ese mismo canal o programa se seleccionará en el mando a distancia.
Las figuras 2J y 2K ilustran aún más la interfaz de usuario de la DVR de ejemplo, donde el usuario ha arrastrado el cursor hacia atrás en el control de desplazamiento para rebobinar el programa actual, y se muestra la posición actual de rebobinado del cursor del control de desplazamiento (por ejemplo, en términos de la hora del día en que esa parte se reprodujo originalmente). Se proporciona un control en directo, que cuando se activa, hace que la DVR devuelva a un programa "en directo" a la posición "en directo" actual (el punto actual en el programa que se está reproduciendo de acuerdo con la planificación de la guía de programas).
De forma opcional, se proporciona un control parental a través del cual el usuario puede evitar que se presenten canales y/o programas que tengan una calificación no aceptable (por ejemplo, una calificación por encima de G o PG, u otra que no sea una clasificación PG) a menos que se introduzca una entrada de anulación (por ejemplo, un código PIN). Un usuario administrador (por ejemplo, un progenitor) puede especificar un código de anulación a través de una interfaz de usuario accesible a través de la guía de programas (véase, por ejemplo, el ejemplo ilustrado en la figura 2L). El sistema grabará el código de anulación especificado por el usuario. Si alguien intenta acceder, a través de la cuenta del usuario, a un programa que excede la calificación permitida, la aplicación o el sistema detectan dicho acceso y, en respuesta, la interfaz de usuario proporciona una notificación visual y/o audible de que la calificación del programa excede el umbral del control parental e indica al usuario que introduzca el código de anulación. Si el usuario introduce el código de anulación correcto, según lo verifica el sistema o la aplicación, a continuación, el programa se mostrará a través de la interfaz de usuario. Si el usuario no introduce el código de anulación correcto, el programa no se mostrará.
A continuación se explicarán interfaces de usuario de configuración de ejemplo que permiten a un programador de contenido programar canales y programas. La figura 3A ilustra una interfaz de usuario de ejemplo que incluye un campo de búsqueda a través del cual el usuario puede introducir consultas de búsqueda para buscar canales o clips. Las consultas de búsqueda pueden encaminarse a uno o varios sitios de alojamiento de contenido y/o a un repositorio o índice de contenido mantenido por el sistema de planificación de contenido. Los resultados de la búsqueda pueden ser presentados, a continuación, al usuario. Los resultados de la búsqueda pueden agregarse si incluyen resultados de más de una fuente. El operador puede añadir nuevos canales a una lista de canales activando un control de "nuevo canal", y puede añadir un nuevo videoclip u otro contenido a un programa activando un control de "nuevo clip".
De forma opcional, el índice de contenido puede estar disponible para terceros (por ejemplo, sobre una red) a través de una interfaz de programación de aplicaciones (API). Las terceras partes pueden acceder y utilizar el índice para identificar y localizar contenido de una o varias fuentes que cumplan una o varias condiciones de filtro especificadas por las terceras partes (donde una condición de filtro puede estar relacionada con los metadatos de contenido). Por ejemplo, el índice de contenido puede incluir localizadores de contenido (por ejemplo, los URL para contenido de Internet), identificadores de contenido únicos y/o metadatos extraídos y opcionalmente normalizados (por ejemplo, en un formato de datos estándar interoperable) de una o varias fuentes de contenido (por ejemplo, sitios de alojamiento de vídeo, música, imágenes, medios sociales, microblogs y/u otros, o almacenamientos de datos). A modo de ejemplo adicional, los metadatos de contenido pueden incluir información de duración. A modo de otro ejemplo adicional, los metadatos de contenido pueden identificar personas destacadas asociadas con un elemento de contenido (por ejemplo, nombres de escritores, actores, directores, productores, artistas, intérpretes, etc., en asociación con sus respectivos títulos/funciones de trabajo), título del contenido, materia/tema del contenido, clasificación del contenido (por ejemplo, vídeo, música, blog, etc.), instrumentos tocados (por ejemplo, para el contenido de música), otros metadatos descritos en el presente documento, etc. Los metadatos pueden haberse obtenido a través de la fuente de contenido, a través de un análisis del contenido (por ejemplo, procesando el contenido para identificar actores, música, materia, etc.) y/o de otras bases de datos (por ejemplo, otras bases de datos que almacenan y proporcionan acceso a los metadatos de contenido).
Así pues, por ejemplo, un tercero puede especificar a través de una interfaz la duración, la materia y la categoría para el contenido deseado, y un motor de búsqueda localizará y devolverá, a través de la API, los resultados de la búsqueda que identifican el contenido correspondiente y/o algunos o todos los metadatos asociados. Las terceras partes pueden utilizar los metadatos y el contenido identificado para construir sus propias guías electrónicas de programas, sus propios programas y/o canales, o pueden usar el contenido y los metadatos identificados para otros fines.
La figura 3B ilustra un ejemplo de una interfaz de usuario que permite a un programador editar la programación de contenido. Por ejemplo, la interfaz de usuario permite que un programador añada canales a una lista de canales (por ejemplo, activando un control de "nuevo canal") o elimine canales de una lista de canales activando un control de eliminar asociado con un canal determinado. Las modificaciones son almacenadas y reflejadas por el sistema en la lista de canales y la planificación de programas. Los cambios reflejados en la lista de canales son presentados por el sistema al programador.
La figura 3C1 ilustra una interfaz de usuario de ejemplo que presenta listas de programas para un canal seleccionado ("Top 40" en este ejemplo) generados por el sistema. El sistema clasifica, organiza y presenta los programas como grupos basados, por lo menos en parte, en el estado del programa, como "En emisión", lo que significa que el programa está planificado para ser emitido, "En curso", lo que significa que el programa todavía se está editando y aún no está completo, "Completado", lo que significa que el programa está listo (según las pautas del programador) y está listo para ser planificado en la herramienta de programas, y "Archivado", lo que significa que los programas se han emitido o montado pero no se han emitido, pero no está actualmente planificado que se emitan. Las fechas y horas en las que se han emitido o se emitirán y las duraciones del programa para cada programa también pueden proporcionarse para su visualización. Se proporcionan controles de eliminación correspondientes para eliminar un programa determinado. Se proporciona un control "añadir" para permitir que el programador duplique un programa existente y luego lo manipule/edite en un nuevo programa. Cuando el sistema detecta que el usuario ha activado el control "añadir", el sistema realiza una copia del programa correspondiente (o de los datos utilizados para montar los clips en el programa). El usuario puede entonces activar un control de "editar" proporcionado por la interfaz de usuario a través del cual el usuario puede editar los detalles del programa, incluidos el nombre, la descripción y/o el estado publicado. La figura 3C2 muestra una interfaz de usuario similar a la de la figura 3C1. En este ejemplo, el sistema organiza la lista de tal modo que los programas que están en curso están agrupados y los programas que están en emisión están agrupados. En este ejemplo, el título del programa, la fecha/hora de emisión y la duración pueden aparecer en la lista. Se proporcionan controles para añadir, editar y eliminar, y se pueden usar como se explicó anteriormente en relación con la figura 3C1.
La figura 3D ilustra una interfaz de usuario de ejemplo que presenta una lista de clips, incluido el nombre del clip, la fuente o el proveedor del clip, el autor (creador del contenido que subió el clip), un localizador (por ejemplo, un URL u otro enlace) para el clip y el tiempo de ejecución del clip. Cierta información, como el nombre de los clips y la duración del clip, puede obtenerse a partir de los metadatos asociados con los clips. Se proporcionan controles para eliminar un clip determinado y para obtener información adicional sobre el clip. El programador puede indicar al sistema que filtre u ordene la lista de clips. Por ejemplo, el usuario puede indicar al sistema que filtre la lista para mostrar solo los clips publicados o no publicados. Se proporciona un control de mezcla que, cuando está activado, indica al sistema que reorganice el orden de reproducción del clip (por ejemplo, aleatoriamente o de otra manera). La indicación "en curso" denota que el programa correspondiente aún no está completo y permite al curador/programador organizar los programas incompletos que están en curso. Se proporciona un campo para recibir consultas de búsqueda para buscar clips adicionales. Las consultas de búsqueda pueden encaminarse a uno o varios sitios de alojamiento de contenido y/o un repositorio o índice de contenido mantenido por el sistema de planificación de contenido. Los resultados de la búsqueda que identifican los clips coincidentes se pueden presentar, a continuación, al usuario. Los resultados de la búsqueda pueden agregarse si incluyen resultados de más de una fuente.
Haciendo referencia de nuevo al ejemplo ilustrado en la figura 3D, se proporciona un control de importación. El control de importación permite al programador importar un clip o importar una lista de clips (o enlaces/localizador de los mismos, como un URL u otro localizador) al programa de una vez. Un usuario puede introducir uno o varios localizadores de clips (por ejemplo, un URL) en un campo correspondiente, y el sistema importará el clip o los clips correspondientes.
La figura 3E ilustra una interfaz de usuario del planificador de programas de ejemplo para un canal. El programador puede indicar a la interfaz de usuario del planificador de programas que muestre la planificación para una semana o día seleccionado y, en respuesta, la interfaz de usuario del planificador de programas mostrará la planificación correspondiente. En este ejemplo, la planificación de una semana se organiza y se muestra en un formato de parrilla, donde la hora del día aparece en el eje Y, y el día aparece en el eje X. Los programas planificados para cada período de tiempo de cada día se muestran en la parrilla, donde una entrada de programa determinada incluye el período de tiempo en el que se mostrará el programa, el nombre del programa y la semana en la que se mostrará el programa. En este ejemplo, la planificación aún no se ha publicado para que el público usuario general pueda acceder a la misma y verla. El programador puede activar el control "publicar" y el sistema publicará la guía de programas correspondiente y se hará accesible para el público usuario general. Una lista de los nombres de programas/episodios únicos incluidos en la parrilla se enumeran en una tabla a la izquierda, incluida la duración del programa. Por lo tanto, la interfaz de usuario permite al programador determinar rápidamente cuántos programas únicos están planificados para la semana o el día mostrados sin tener que identificar y contar manualmente los programas únicos. La interfaz de usuario, de forma opcional, permite al programador arrastrar y soltar manualmente los programas completados desde la navegación de la izquierda a la planificación (por ejemplo, la planificación semanal), lo que proporciona un mecanismo opcional para anular una planificación automática de programas.
A continuación se tratarán interfaces de usuario de programador de contenido de ejemplo. La figura 4A ilustra una interfaz de usuario de ejemplo a través de la cual el programador puede introducir localizadores para importar uno o varios clips (o localizadores para otro contenido, incluyendo, de forma opcional, contenido generado en tiempo real, como un microblog de transmisión en continuo). Se deberá comprender que el término tiempo real incluye sustancialmente tiempo real (por ejemplo, en menos de 0,5 segundos, en menos de 1 segundo, en menos de 2 segundos, etc.) a menos que el contexto indique lo contrario. La figura 4B ilustra un informe generado por el sistema que indica qué localizadores introducidos a través de la interfaz de usuario de la figura 4A no son utilizables (por ejemplo, no son integrables por el sistema en la guía de programas). La lista de localizadores de clips "incorrectos" puede incluir, para cada clip correspondiente, parte o la totalidad de lo siguiente: una miniatura del clip, el título del clip, una descripción del clip, el número de visualizaciones del clip, la duración del clip y la fecha en la que el clip se publicó, además de algunos o todos los metadatos asociados con el clip original. Se proporciona un control a través del cual el operador puede eliminar los localizadores/clips "incorrectos" (o localizadores incorrectos para otro contenido). La figura 4C ilustra una interfaz de usuario de asignación de clips de ejemplo a través de la cual el programador puede asignar un clip determinado a una categoría, canal, programa o lista de reproducción asociados. El sistema almacenará, a continuación, la asignación.
La figura 4D ilustra una interfaz de tarea/notificación de ejemplo. La interfaz puede proporcionar mensajes del sistema (por ejemplo, tiempos de activación/desactivación del sistema, horarios de mantenimiento, etc.), otras notificaciones y una lista de tareas incompletas asignadas al programador, según el registro del sistema. La figura 4E ilustra una interfaz de usuario de notificaciones de ejemplo. La notificación puede identificar un correspondiente canal, nombre del programa, número del episodio, estado/problema (por ejemplo, enlace roto) y fecha del estado. Si, por ejemplo, hay un enlace roto identificado, el programador puede hacer clic en la entrada correspondiente y el sistema mostrará la lista de reproducción correspondiente, a través de la cual el usuario puede reparar/sustituir el enlace roto.
La figura 4F ilustra interfaces de usuario de ejemplo a través de las cuales un programador puede definir un programa y puede crear un nuevo episodio dentro de una serie de programas y puede ver las últimas fechas de emisión de los episodios. La interfaz de usuario de información de programas permite al programador introducir, editar y/o ver información tal como "título", "descripción del programa", "categoría", "géneros" y/o "proveedor". El programador puede instruir al sistema para que guarde la información activando un control de guardar. El programador también puede navegar a una interfaz de usuario de información de series. La interfaz de usuario de información de series permite al programador introducir, editar y/o ver información tal como "título de la serie", "título de los episodios", "duración", número de temporada y número de episodio, última fecha de transmisión/emisión del episodio y fecha de estreno (la fecha en la que se emitió/transmitió por primera vez el episodio). El programador puede seleccionar un episodio determinado (por ejemplo, al hacer clic en una entrada de episodio) y el sistema abrirá la interfaz de usuario de información de programas.
La figura 4G ilustra una interfaz de usuario de ejemplo de una herramienta de planificación que permite a un programador programar un canal. Una interfaz de "seleccionar canal" permite al programador seleccionar (por ejemplo, a través de un menú o en los resultados de la búsqueda) un canal a programar. Una vez que se selecciona el canal, el sistema puede rellenar algunos otros campos con la información de programación relevante (recuperada de la memoria) para el canal seleccionado. Se proporcionan campos a través de los cuales el programador puede introducir los términos de búsqueda, seleccionar/introducir metadatos, seleccionar/introducir una categoría y/o seleccionar/introducir un género. El sistema identificará los programas correspondientes (que incluyen, de forma opcional, el título y la duración del programa) de entre los cuales el programador puede seleccionar añadir al canal seleccionado.
Por ejemplo, el programador puede arrastrar un identificador de programa determinado a una interfaz de usuario de calendario (que enumera los días y la hora para especificar fechas y horas de emisión) y soltar el identificador de programa en un mes, semana, día y hora deseados para el canal seleccionado. La interfaz de usuario del calendario de ejemplo incluye controles de navegación que permiten al usuario navegar a un mes, semana y/o año deseado. Si el programa identificado es una serie con varios episodios, de forma opcional, arrastrar y soltar el nombre del programa hará que el episodio último/más reciente se añada al calendario en la fecha/hora especificada. De forma opcional, se enumeran múltiples o todos los episodios para el programa seleccionado (de forma opcional, incluido el título, el número, la versión y la última fecha de emisión del episodio) en una interfaz de usuario de episodio y el programador puede arrastrar y soltar cualquier episodio que desee añadir al calendario. El sistema puede rastrear, actualizar y mostrar la información del estado del calendario, tal como la fecha/hora en las que se modificó por última vez el calendario, quién modificó por última vez el calendario, la fecha/hora de la última sincronización (con un calendario en vivo para la visualización del consumidor) y quién la realizó, el estado del calendario (por ejemplo, borrador, finalizado, etc.), etc. El sistema puede sincronizar el calendario actualizado con el calendario en vivo en respuesta a la detección de un comando de sincronización de un programador autorizado.
Se debe comprender que los programas que pueden ser añadidos por un programador de contenido a un canal o planificación no están limitados a programas pregrabados. La herramienta de programación se puede utilizar para seleccionar y añadir un próximo programa en directo (por ejemplo, un concierto, un evento deportivo, un espectáculo de premios, una entrevista, etc.) a una planificación para un canal. Por ejemplo, el programa en directo puede ser transmitido en continuo desde un sitio de contenido de terceros. La herramienta de programación puede inspeccionar y verificar la programación para asegurarse de que el programador no planificó el evento en directo para que se reproduzca en una fecha/hora anterior al acontecimiento del evento en directo. Si la herramienta de programación determina que el programador ha intentado planificar un evento en directo para que se reproduzca antes del acontecimiento del evento en directo (por ejemplo, según se determine comparando los metadatos de día/hora de la planificación a los que se accede desde el sitio de contenido de terceros con el calendario de programación), la herramienta de programación puede notificar al programador el error y, de forma opcional, impedir que el programador planifique el programa en directo en una fecha/hora tan prematura. Por lo tanto, de forma opcional, un canal determinado puede incluir programas/clips (u otro contenido, tal como contenido de imágenes, retransmisiones sociales en continuo, blogs, mensajes de texto, etc.) transmitidos en continuo, pregrabados y en directo. La adición de un evento en directo transmitido en continuo a un canal puede realizarse de forma opcional sin interrupciones, de una manera similar a la del contenido grabado, no en directo.
Una interfaz de usuario de programación automática corresponde a una función de programación automática. El programador puede definir ciertos criterios para la programación automática de programas al introducir o seleccionar, a través de los campos respectivos, una fecha de finalización, una duración (por ejemplo, en días, semanas o meses) y el número de apariciones. La función de programación automática toma una selección (bloques de programación individuales o múltiples) y recibe la fecha, la duración o el número de apariciones en las que se programa automáticamente la selección en el futuro. De forma opcional, para utilizar la función de programación automática, el diseño de programación (por ejemplo, día o días de la semana, ciclo de actualización (diario, semanal, bimestral, mensual)) tiene que estar predefinido al nivel del programa. La función de programación automática programará automáticamente los programas/episodios de acuerdo con la definición del programador, reduciendo así el esfuerzo y el tiempo necesarios para realizar un proceso de programación repetitivo.
Una interfaz de usuario de selección de duplicados corresponde a una función de selección de duplicados. El programador puede definir ciertos criterios para la programación de programas al introducir o seleccionar, a través de los campos respectivos, una fecha de inicio, una definición de repetición (por ejemplo, repetir todos los lunes, martes, miércoles, jueves, viernes, sábados y/o domingos), la duración (por ejemplo, en días, semanas o meses) y el número de apariciones. La función de selección de duplicados toma una selección (bloques de programación individuales o múltiples) y recibe la definición en la que se programa automáticamente la selección en el futuro. La selección de duplicados se puede usar cuando el diseño de programación no está predefinido a nivel del programa. La función de selección de duplicados programará automáticamente el programa/episodios de acuerdo con la definición del programador, reduciendo de este modo el esfuerzo y el tiempo necesarios para realizar un proceso de programación repetitivo.
Una interfaz de usuario de verificación de la planificación corresponde a una función de verificación de la planificación. La función de verificación de la planificación está configurada para detectar errores (por ejemplo, espacio no utilizado (por ejemplo, un intervalo de tiempo en la planificación donde no se designa ningún contenido para su reproducción), la planificación de un evento en directo que se reproducirá en un momento anterior al acontecimiento del evento en directo, clips (u otro contenido) eliminados o invalidados, espacio publicitario y promocional disponible insuficiente (en términos de tiempo), metadatos incompletos (por ejemplo, miniaturas, títulos, descripciones, información sobre la duración, etc. faltantes), etc.) y para informar de los errores al programador antes de que el programador sincronice su calendario de programación con un calendario en vivo para que lo vean los consumidores. El informe de la función de verificación de la planificación puede incluir una lista de errores de programación que tienen que corregirse y errores de programación que pueden ignorarse en la función de programación automática. El programador puede definir fechas de inicio y finalización de la verificación de la planificación a través de la interfaz de usuario de verificación de la planificación.
De forma opcional, a los consumidores también se les puede proporcionar acceso a algunas o todas las características de la herramienta de planificación de canales para permitir que los usuarios puedan programar sus propios canales y compartir sus canales con otros usuarios. De forma opcional, uno o varios canales pueden realizarse conjuntamente por múltiples usuarios. Por lo tanto, se pueden proporcionar a una población más amplia herramientas de curado para permitir que los usuarios independientes generen canales.
Por ejemplo, las herramientas de curado pueden permitir a un usuario independiente crear una experiencia lineal y planificada, fuera del contenido bajo demanda. Por ejemplo, se puede proporcionar una biblioteca de contenido diferente a través de la cual el usuario puede montar un programa o canal. A modo de ilustración, el contenido bajo demanda se puede clasificar en temas o materias (por ejemplo, comedia retro, clips de realidad, etc.). El usuario independiente puede seleccionar una o varias categorías de contenido de la biblioteca y seleccionar uno o varios elementos de contenido de las categorías de contenido para crear un programa o un conjunto de programas. De forma opcional, el usuario independiente también puede incluir contenido de otras fuentes. El usuario independiente puede definir un canal utilizando los programas (por ejemplo, cuando los programas están planificados para mostrarse en horarios específicos o según una planificación específica), y el canal puede ponerse a disposición de los usuarios en general (por ejemplo, a través de una guía electrónica de programas proporcionada a otros usuarios que incluye una entrada para el canal o programa generado por el usuario) o solo para los usuarios identificados por el usuario independiente que creó el canal o que tienen una relación de red social específica con el usuario independiente.
La figura 5A ilustra una interfaz de usuario de generación de programas de ejemplo que guía a un usuario (por ejemplo, un usuario independiente que no es un programador de contenido profesional) a través de un proceso de generación de programas. La interfaz de usuario de ejemplo ilustrada tiene campos y controles específicos para el montaje de un programa de vídeo musical para un canal de música para facilitar aún más el proceso de generación de programas para un programa de vídeo musical. También se pueden proporcionar otras interfaces de usuario específicas por tipo de programa (por ejemplo, una interfaz de usuario de definición de programas de "Top 10 list (Los 10 principales)", una interfaz de usuario de definición de programas de cocina, etc.).
En el ejemplo ilustrado en la figura 5A, se proporciona un campo de nombre de canal a través del cual el usuario puede introducir un nombre para el canal del usuario. Se proporciona un campo de nombre de lista de reproducción (donde una lista de reproducción puede corresponder a un programa) a través del cual el usuario puede introducir un nombre para la lista de reproducción de vídeos musicales actual que se está definiendo. Se proporciona una interfaz de "añadir vídeos musicales" a través de la cual el usuario puede especificar o seleccionar un vídeo musical para añadirlo a la lista de reproducción. Por ejemplo, el usuario puede introducir una canción, artista o nombre de álbum, y un motor de búsqueda del sistema localizará y presentará una lista de vídeos musicales que coincidan con controles de reproducción asociados que permitirán al usuario ver y reproducir los vídeos musicales. A continuación, el usuario puede seleccionar uno o varios de los vídeos musicales coincidentes para añadirlos a la lista de reproducción. De forma opcional, la interfaz de "añadir vídeos musicales" puede estar configurada para recibir un localizador (por ejemplo, un URL) para un vídeo musical que se añadirá a la lista de reproducción.
Un campo de lista de reproducción muestra los vídeos musicales incluidos actualmente en la lista de reproducción, incluido el nombre del vídeo/canción musical, el sello discográfico asociado, el tiempo de reproducción y el orden de reproducción (1, 2, 3, etc.). Se puede proporcionar un control de reproducción con las respectivas entradas de la lista de reproducción, que cuando se active hará que se reproduzca el vídeo musical correspondiente. Se puede proporcionar un control de eliminación en asociación con una entrada determinada de la lista de reproducción que el usuario puede activar para eliminar la entrada de la lista de reproducción de la lista de reproducción. El tiempo de ejecución actual de la lista de reproducción se puede calcular y mostrar. El tiempo de ejecución de la lista de reproducción puede volverse a calcular y mostrarse cuando se hacen adiciones o eliminaciones en la lista de reproducción. Se puede proporcionar un control que permita al usuario seleccionar una carátula para una entrada de la lista de reproducción determinada y/o para el canal en su totalidad. Las definiciones de listas de reproducción del usuario son recibidas y almacenadas por el sistema.
De forma opcional, se puede proporcionar una interfaz de usuario que permite al usuario introducir contenido generado por el usuario (por ejemplo, videoclips) entre contenido no generado por el usuario (por ejemplo, entre contenido de vídeo de los sitios de alojamiento de vídeos de terceros). Por ejemplo, el contenido generado por el usuario (por ejemplo, cuando el usuario graba un vídeo del usuario que actúa como un presentador de programa o de canal) puede usarse para presentar el siguiente elemento de contenido no generado por el usuario. A modo de ilustración, si el usuario está definiendo un programa de la "Top 10 list" que analiza 10 elementos de contenido de vídeo, la interfaz de usuario puede primero pedirle al usuario que grabe (por ejemplo, utilizando una grabadora de vídeo incluida en el terminal de usuario) una introducción general al programa. La interfaz de usuario puede solicitar, a continuación, al usuario que grabe una introducción al vídeo clasificado con el número 10. La interfaz de usuario puede entonces solicitar al usuario que grabe una introducción al vídeo clasificado con el número 9, luego el 8, luego el 7 y así sucesivamente. Por lo tanto, la interfaz de usuario proporciona una plantilla que guía al usuario a través del proceso de creación de programas y canales. El proceso puede montar un canal utilizando una pluralidad de programas generados por el usuario.
La figura 5B ilustra una interfaz de usuario de guía de programas de ejemplo que incluye una entrada para un programa generado por el usuario creado utilizando la interfaz de usuario ilustrada en la figura 5A. La lista de reproducción generada por el usuario se incluye en la guía de canal ("Audra Gold Channel"), y algunas o todas las carátulas de álbum pueden mostrarse en un momento determinado, donde se destaca la carátula del álbum del vídeo musical que se está reproduciendo actualmente (por ejemplo, a través de un marco, color, tamaño o de otra manera). Se pueden proporcionar controles que permitan al espectador omitir un vídeo musical o navegar de otra manera a través de la lista de reproducción. De forma opcional, la lista de reproducción se puede reproducir bajo demanda, en lugar de en horarios específicamente programados.
Tal como se indicó anteriormente, el grupo de programas para un canal determinado puede ser seleccionado manualmente por un operador o ser seleccionado automáticamente por un módulo 150 de generación de canales. Por ejemplo, un operador puede especificar un tema para un canal. El operador puede asignar una o varias etiquetas a un canal, donde las etiquetas corresponden al tema del canal. A modo de ilustración, si el tema del canal va a ser gatos, el operador puede asignar las etiquetas "gato", "felino" y "gatito" al canal. El operador puede especificar otras etiquetas para un programa/episodio específico deseado en un momento específico. Un programa determinado puede estar compuesto por múltiples clips (por ejemplo, vídeos cortos y/u otro contenido, tal como contenido de imágenes, transmisiones sociales en continuo, microblogs, mensajes de texto, etc.) de una o varias fuentes (por ejemplo, los sitios de alojamiento de vídeos que se mencionaron anteriormente, transmisiones de redes sociales en continuo, microblogs, etc.). El operador también puede especificar las duraciones de tiempo de los programas y el día y/o la hora en que se mostrará el programa correspondiente. De forma opcional, el operador puede especificar una duración de tiempo deseada, con un tiempo mínimo o máximo aceptable para el programa y/o para los clips (y/u otro contenido) incluidos en el programa. El operador también puede especificar (por ejemplo, proporcionando un URL) una o varias fuentes para el contenido de vídeo.
Por ejemplo, el operador puede querer un programa sobre trucos de gatos para una presentación a las 6:00 p. m. El operador puede especificar etiquetas de programa "trucos para gatos", "trucos", "gato nadador", "escalada", etc. El operador puede especificar, además, que el programa tiene una duración de 30 minutos y cada clip que se incluirá en el programa debe ser preferentemente de 2 minutos, pero no más corto que 1 minuto y no más largo que 3 minutos y que el programa se debe mostrar a las 6:00 p. m. A continuación, el módulo puede buscar, en el vídeo especificado u otras fuentes de contenido, vídeos u otro contenido con etiquetas que correspondientes a una o varias de las etiquetas especificadas por el usuario, que son preferentemente una duración de 2 minutos, no menos de 1 minuto y no más de 3 minutos, donde la duración total de los vídeos es de 30 minutos. El operador puede especificar, de forma opcional, umbrales para el número de visualizaciones y las calificaciones de los espectadores que deben tener los clips (u otro contenido), como se explica de manera similar en otro punto del presente documento. El operador puede especificar de manera similar múltiples programas para un día o días determinados y el módulo de generación de canales localizará los clips correspondientes.
El módulo 150 de generación de canales planificará, a continuación, los clips encontrados (u otro contenido) para encaminarlos a los usuarios que hayan elegido ver los programas o canales correspondientes a través de la interfaz de usuario de la guía de programas. De forma opcional, el programa resultante montado por el módulo 150 de generación de canales puede ser presentado por un sistema a un operador (por ejemplo, un programador de contenido) para garantizar que el programa y los clips (u otro contenido) montados para el programa sean adecuados. El operador puede cambiar el orden de los clips (y/u otro contenido) y puede eliminar clips y añadir clips u otro contenido (por ejemplo, al que se accede desde una base de datos de clips u otro contenido del sistema y/o navegando manualmente a una o varias fuentes de vídeo u fuentes de otro contenido para identificar y seleccionar clips u otro contenido).
Tal como se analizó anteriormente de manera similar, el contenido descrito en el presente documento puede tener forma de contenido de vídeo, contenido de música, contenido de imágenes fijas, transmisiones sociales en continuo, mensajes de texto, etc., o cualquier combinación de los mismos. Así, por ejemplo, un programador (o un usuario final que programa su propio canal) puede componer un programa (por ejemplo, un episodio) o un canal para incluir una mezcla de videoclips, microblogs con transmisiones con continuo y transmisiones en continuo de redes sociales. A modo de ilustración, un programador puede componer un programa de canal para incluir un videoclip de 3 minutos de una mascota haciendo trucos, seguido de una transmisión en continuo de 30 segundos de una red social asociada con el canal (que puede incluir publicaciones de usuarios sustancialmente en tiempo real relacionadas con el videoclip), seguido de una transmisión en continuo de 15 segundos de un microblog de una primera persona especifica (que puede incluir publicaciones sustancialmente en tiempo real de la primera persona relacionada con el videoclip), seguido de un clip de 2 minutos de una mascota haciendo trucos, seguido de otra transmisión en continuo de 30 segundos de la red social asociada al canal, seguido por una transmisión en continuo de 15 segundos de un microblog de una segunda persona específica, seguido por 2 minutos de una espectáculo canino en directo, y así sucesivamente. Por lo tanto, un programa y/o canal pueden integrar diferentes tipos de contenido/medios (incluyendo contenido en directo y grabado) desde diferentes tipos de fuentes.
Tal como se explicó anteriormente de manera similar, los programas y/o canales pueden ser generados automáticamente, y programas y/o canales. Además, se puede proporcionar una programación en tiempo real de los canales conducida socialmente. A modo de ilustración, se puede tener en cuenta entradas de espectador al generar un programa o canal, en tiempo real. Por ejemplo, se puede proporcionar una encuesta a los usuarios (por ejemplo, a través de la guía de programas, un mensaje emergente, un mensaje de texto o de otra manera) durante un clip, programa, anuncio o transición de contenido, preguntando a los espectadores qué les gustaría ver a continuación. Cuando la encuesta es para un canal existente, la encuesta puede incluir opciones relacionadas con la materia del canal o programa. A modo de ilustración, si el canal es para trucos de perros, la encuesta puede preguntar si quieren ver un clip de un vídeo de un perro realizando un truco de recuperación, un truco de salto o un truco de captura. Basándose por lo menos en parte en los votos, se puede seleccionar el contenido correspondiente (opcionalmente en tiempo real) y luego el contenido seleccionado puede mostrarse a continuación y/o en un momento posterior.
De forma opcional, el contenido (por ejemplo, un videoclip, una imagen, etc.) para un canal o programa, y/o el tema de un canal o programa, puede seleccionarse o generarse basándose, por lo menos en parte, en la aportación de fuentes de redes sociales. Por ejemplo, se pueden identificar los temas de moda en uno o varios sitios de redes sociales, tales como los sitios de microblogs, sitios de publicación de imágenes, etc. Las modas se pueden identificar a través de metadatos (por ejemplo, palabras clave, frases clave, etiquetas, descripciones de temas, etc.) asociados con los datos de las redes sociales o a partir de un análisis del propio contenido. Por ejemplo, se pueden determinar la velocidad de las publicaciones (por ejemplo, la cantidad de publicaciones por minuto) y la aceleración de las publicaciones (por ejemplo, la tasa de aumento o disminución de las publicaciones durante un período de tiempo, tal como la última hora) con respecto a un tema en particular y utilizarse en la selección de un elemento de contenido para un programa, se puede utilizar para seleccionar un título o un canal.
Se pueden definir reglas que especifiquen qué datos de la red social, en términos de contenido, fuente y/o período de tiempo, se utilizarán para determinar qué contenido seleccionar. Por ejemplo, una regla puede especificar que los videoclips de una o varias fuentes específicas que tienen metadatos correspondientes a las 10 etiquetas principales de Twitter en las últimas 24 horas se seleccionarán para un programa. A modo de ejemplo adicional, se puede definir una regla que especifique que los 20 videoclips más populares (en términos de visualizaciones en los últimos 7 días) de un sitio web de alojamiento de vídeo específico, que tienen la frase "truco de gato" en el título, se deben identificar y que los 5 primeros de esos 20 videoclips que tienen la mayor cantidad de visualizaciones en las últimas 24 horas se seleccionarán para formar un programa.
De forma opcional, se puede utilizar un proceso automatizado de selección y/o generación de transiciones/intersticios entre clips o programas. Por ejemplo, un intersticio puede tener forma de contenido de texto, vídeo y/o audio que se puede presentar durante (por ejemplo, como una superposición parcial) y/o después de que se muestre un elemento determinado de contenido principal (donde el contenido principal puede ser un clip programado, tal como un clip de un truco de gato para un programa de trucos de gatos). El intersticio se puede usar para ayudar a vincular o unir clips en un programa, o para vincular o unir programas en un canal. El intersticio puede proporcionar información sobre un próximo clip o programa. El intersticio se puede seleccionar, de forma opcional, en base, por lo menos en parte, a las características de un espectador (por ejemplo, las preferencias del usuario, la información del perfil del usuario, etc.). Se pueden definir reglas para seleccionar un intersticio.
Un intersticio puede incluir contenido estático (por ejemplo, texto estático) y/o contenido dinámico (por ejemplo, texto seleccionado dinámicamente). A modo de ilustración, el texto estático puede incluir la frase "Próximamente" seguida de un texto dinámico que incluye el título o la materia del próximo contenido ("los vídeos de gatos más divertidos de la semana"), obtenido opcionalmente de los metadatos asociados con el próximo contenido.
A modo de ejemplo adicional, se puede seleccionar contenido intersticial que corresponda a los intereses del usuario. A modo de ilustración, si se determina que el próximo programa no es de interés para el espectador (por ejemplo, comparando la información de preferencias del espectador que indica los intereses del espectador en la materia con metadatos del próximo programa que indican la materia del siguiente programa), pero un programa que se mostrará en dos horas es de gran interés para el espectador, el sistema puede seleccionar un intersticio que comente el programa que se mostrará en dos horas en lugar del programa siguiente.
De forma opcional, como se explicó anteriormente, el sistema puede configurarse para generar, utilizando inteligencia artificial, un presentador de canal o de programa generado por ordenador. Por ejemplo, las características del presentador se pueden seleccionar en base, por lo menos en parte, a la información de la cuenta del usuario, la información de preferencias del usuario (por ejemplo, preferencias del usuario proporcionadas expresamente y/o inferidas) y/o a metadatos asociados con el presentador del programa. El presentador generado por ordenador se puede usar para entregar contenido intersticial, cuyos ejemplos se analizaron anteriormente. Otro desafío que se presenta al crear canales y programas para clips de diferentes fuentes de vídeo (por ejemplo, sitios web de vídeo) y/o para otro contenido es que las diferentes fuentes de vídeo pueden proporcionar reproductores de vídeo personalizados para vídeos alojados por una fuente determinada. Por ejemplo, el reproductor de vídeo de cada fuente puede tener un reproductor de vídeo con un aspecto diferente, con controles comunes colocados en diferentes posiciones y teniendo algunos reproductores de vídeo diferentes conjuntos de controles que otros reproductores de vídeo. Convencionalmente, tal disparidad de interfaces de usuario de reproductor y funcionalidad no suponen un gran problema para los usuarios, ya que los usuarios normalmente acceden a vídeos de una única fuente durante una sesión de visualización determinada.
Sin embargo, cuando los usuarios están viendo, a través de un solo sitio, varios vídeos como parte de un canal, esperan tener una experiencia de visualización unificada, y sería confuso y desconcertante que se les presente un reproductor diferente para cada programa/vídeo. Para abordar este problema, ciertas realizaciones proporcionan un meta-reproductor que integra otros reproductores de vídeo en una única experiencia y proporciona una interfaz común de reproductor de vídeo. Por ejemplo, mientras el usuario está viendo un canal, el meta-reproductor puede hacer que un programa determinado se presente en un área de presentación de vídeo. Cuando se inicia el siguiente programa también se presenta en la misma área de presentación de vídeo, aunque los reproductores nativos pueden presentar los vídeos en áreas de presentación ubicadas de manera diferente. Además, el meta-reproductor coloca un conjunto común de controles de reproductor de vídeo en las mismas ubicaciones y con el mismo aspecto, aunque los reproductores nativos puedan tener diferentes ubicaciones de control y diferentes aspectos de control. A modo de ejemplo, los controles comunes se pueden definir para incluir parte o la totalidad de lo siguientes: rebobinar, avanzar rápido, reproducir, pausar, grabar, navegar al siguiente clip (u otro contenido), dar un “me gusta”, compartir (lo que permite a un usuario indicar que una notificación sobre el programa, que de forma opcional incluye un enlace al programa, se envíe a un destinatario designado), etc. De forma opcional, si un reproductor de una fuente determinada incluye un control que no está incluido en el conjunto de controles comunes, ese control no común se excluye de la presentación al usuario a través del meta-reproductor. De forma opcional, en cambio, si un reproductor de una fuente determinada incluye un control que no está incluido en el conjunto de controles comunes, ese control no común se presenta al usuario a través del meta-reproductor en un área reservada para la visualización de controles no comunes.
En ciertas realizaciones, el sistema determina qué reproductor se necesita para reproducir un videoclip determinado (por ejemplo, basándose en la fuente del clip/el URL del clip) y luego utiliza un programa (por ejemplo, implementado utilizando un guión ("script") interpretado del lado del cliente, tal como JavaScript) para invocar el reproductor apropiado, envuelto en la interfaz del meta-reproductor.
El reproductor de vídeo puede configurarse para mostrar programas de dos o más canales a la vez en las ventanas respectivas. Por ejemplo, las ventanas pueden estar configuradas como ventanas de imagen en imagen, como ventanas yuxtapuestas o como ventanas que el usuario puede arrastrar y soltar en las ubicaciones deseadas.
Por lo tanto, ciertas realizaciones proporcionan, de forma opcional, un cambio sin interrupciones de fuentes de vídeo y reproductores de una manera transparente para el usuario para así proporcionar al usuario una experiencia unificada cuando ve contenido de diferentes fuentes (por ejemplo, dentro de un programa o un canal).
La figura 6 ilustra una arquitectura de ejemplo que utiliza un reproductor unificado 600 que proporciona una envoltura común para una pluralidad de reproductores 610a a 610n de contenido de terceros. En este ejemplo, se proporcionan varias API 602a a 602n de puente entre nativos para diversos entornos nativos (por ejemplo, IOS®, ANDROID®, Web, CHROMECAST®, etc., que pueden estar alojados en dispositivos móviles, tales como tabletas, teléfonos, ordenadores portátiles, etc., y/o en dispositivos no móviles, tales como televisores en red, ordenadores de sobremesa, consolas de juegos, etc., y que pueden utilizar diferentes lenguajes de programación) para comunicarse con un módulo de reproductor unificado (por ejemplo, una aplicación de reproductor de contenido HTML o HTML híbrido). El reproductor unificado 600 puede incluir varias API 604 (implementadas de forma opcional en JavaScript) para funciones comunes del reproductor, tal como, a modo de ejemplo, parte o la totalidad de lo siguiente: reproducir, pausar, avanzar, avanzar rápido, rebobinar, rebobinar rápido, buscar, cargar, etc. Las API 604 de función de reproductor pueden a su vez comunicarse con las API 606a a 606n de control de reproductor (implementadas de forma opcional en JavaScript) para varios reproductores de contenido 610a a 610n (por ejemplo, reproductores de vídeo).
Los reproductores 610a a 610n de contenido pueden incluir reproductores de contenido Chromeless que brindan a los desarrolladores externos acceso a los controles estándar de los reproductores y permiten que los desarrolladores externos proporcionen sus propios aspectos gráficos personalizados y/o funciones adicionales. Se pueden configurar diferentes reproductores de contenido para reproducir diferentes tipos de formatos de contenido (por ejemplo, MPEG, MKV, AVI, FLV, etc.). De forma opcional, los anuncios, análisis, marcas de agua, etc. del presentador del vídeo original se conservan con la transmisión en continuo del contenido.
Una determinada API de controlador del reproductor encamina los comandos recibidos de un usuario a través del entorno nativo al reproductor de contenido activo actualmente. Un módulo 608 de plataforma garantiza que el reproductor de contenido adecuado se esté utilizando para el contenido (por ejemplo, el videoclip) que se está reproduciendo actualmente. A modo de ilustración, un programa determinado puede incluir cuatro videoclips, cada uno de los cuales utiliza un reproductor de contenido diferente. Cuando se reproduce el programa, el módulo 610a a 610n de plataforma hace que un primer reproductor de contenido reproduzca un primer elemento de contenido, que un segundo reproductor de contenido reproduzca un segundo elemento de contenido, etc. Sin embargo, para el usuario, aparece como si se estuviera utilizando el mismo reproductor de contenido, con los mismos controles en las mismas posiciones, para reproducir cada uno de los cuatro videoclips.
La figura 13 ilustra un proceso de ejemplo que utiliza un reproductor de contenido unificado, que puede ejecutarse utilizando un sistema de planificación de contenido u otro sistema informático. Si bien la siguiente descripción puede referirse a un primer y a un segundo elemento de contenido y a un primer reproductor de contenido y un segundo reproductor de contenido, puede haber más de dos elementos de contenido y dos reproductores de contenido. En el bloque 1302, una guía electrónica de programas se presenta a un usuario y el usuario selecciona un programa para reproducir (o el usuario está viendo un programa que se reproduce como resultado de una selección previa de un canal del cual el programa es parte). Se detecta la selección del programa (o canal) del usuario. El programa en este ejemplo está compuesto por múltiples elementos de contenido (por ejemplo, videoclips) de diferentes fuentes, donde por lo menos un elemento de contenido se transmitirá en continuo desde una primera fuente y se reproducirá utilizando un primer reproductor de contenido (por ejemplo, un primer reproductor de vídeo), por lo menos un elemento de contenido se transmitirá en continuo desde una segunda fuente y se reproducirá utilizando un segundo reproductor de contenido (por ejemplo, un segundo reproductor de vídeo).
En el bloque 1304, se accede a los metadatos asociados con el primer elemento de contenido. De forma opcional, se puede acceder a los metadatos desde un almacenamiento de datos local (por ejemplo, el almacenamiento de datos de contenido local del sistema 102 de planificación de contenido). De forma opcional, se accede a los metadatos de la primera fuente del elemento de contenido. Los metadatos asociados con el primer elemento de contenido pueden incluir algunos o todos los datos siguientes: una identificación de qué reproductor de contenido se utilizará para reproducir el primer elemento de contenido, un identificador que identifica la primera fuente y/o un identificador de elemento de contenido (por ejemplo, un código alfanumérico u otro único) que identifica el primer elemento de contenido.
En el bloque 1306, el proceso determina, por lo menos en parte, a partir de los metadatos qué reproductor de contenido se utilizará para reproducir el primer elemento de contenido. En el bloque 1308, el proceso instruye a un reproductor de contenido unificado en un terminal de usuario que acceda al primer reproductor de contenido y utilice el primer reproductor de contenido para reproducir el primer elemento de contenido de la primera fuente de contenido. Por ejemplo, las instrucciones pueden incluir el identificador del primer reproductor de contenido, el identificador de la primera fuente y/o el identificador del primer elemento de contenido. De forma opcional, las instrucciones pueden incluir un URL correspondiente al primer elemento de contenido. El primer reproductor de contenido puede presentarse a través de un navegador de usuario y puede generarse utilizando un código (por ejemplo, JavaScript) del sistema de planificación de contenido, de la primera fuente de contenido y/o de otra fuente. El primer reproductor de contenido puede estar configurado de modo que el aspecto se ajuste a un aspecto de reproductor de contenido uniforme estandarizado (por ejemplo, con los controles en una ubicación determinada y con un aspecto determinado, que puede ser diferente al del primer reproductor de contenido en su forma nativa).
En el bloque 1310, se determina si es hora de que el reproductor unificado reproduzca el siguiente elemento de contenido (el segundo elemento de contenido en este ejemplo). Por ejemplo, la determinación puede basarse en un temporizador o un activador (por ejemplo, metadatos asociados con el programa) que indican que es (o está a punto de ser) el momento en que se debe reproducir el segundo elemento de contenido. Si es hora de que se reproduzca el segundo elemento de contenido, en el bloque 1312 se accede a los metadatos asociados con el segundo elemento de contenido (aunque se puede acceder a los metadatos anteriormente, tal como al comienzo del programa). De forma opcional, se puede acceder a los metadatos desde un almacenamiento de datos local (por ejemplo, el almacenamiento de datos de contenido local del sistema 102 de planificación de contenido). De forma opcional, se accede a los metadatos desde la segunda fuente del elemento de contenido. Los metadatos asociados con el segundo elemento de contenido pueden incluir algunos o todos los siguientes datos: una identificación de qué reproductor de contenido se utilizará para reproducir el segundo elemento de contenido, un identificador que identifica la segunda fuente y/o un identificador de elemento de contenido (por ejemplo, un código alfanumérico u otro código único) que identifica el segundo elemento de contenido.
En el bloque 1314, el proceso determina, por lo menos en parte, a partir de los metadatos qué reproductor de contenido se utilizará para reproducir el segundo elemento de contenido. En el bloque 1316, el proceso instruye a un reproductor de contenido unificado en un terminal de usuario para que acceda al segundo reproductor de contenido y utilice el segundo reproductor de contenido para reproducir el segundo elemento de contenido de la segunda fuente de contenido. Por ejemplo, las instrucciones pueden incluir el identificador del segundo reproductor de contenido, el identificador de la segunda fuente y/o el identificador del segundo elemento de contenido. De forma opcional, las instrucciones incluyen un URL correspondiente al segundo elemento de contenido. El segundo reproductor de contenido puede presentarse a través de un navegador de usuario y puede generarse utilizando un código (por ejemplo, JavaScript) del sistema de planificación de contenido, la segunda fuente de contenido y/u otra fuente. El segundo reproductor de contenido puede estar configurado de modo que el aspecto se ajuste a un aspecto de reproductor de contenido uniforme estandarizado (por ejemplo, con los controles en una ubicación determinada y con un aspecto determinado, que puede ser diferente al del segundo reproductor de contenido en su forma nativa), de modo que el segundo reproductor de contenido y el primer reproductor de contenido parecen iguales para el usuario y el cambio de los reproductores de contenido es transparente para el usuario (por ejemplo, el usuario no sabe que se están utilizando diferentes reproductores de contenido para reproducir contenido de diferentes fuentes). El proceso puede repetirse a continuación para el siguiente elemento de contenido, y así sucesivamente.
Se debe comprender que el reproductor de contenido unificado puede realizar otras actividades durante la reproducción de un elemento de contenido. Por ejemplo, el reproductor de contenido unificado puede informar (por ejemplo, al sistema de planificación de contenido u a otro sistema) de la posición de reproducción actual del elemento de contenido que se está reproduciendo, de los retrasos en el memoria intermedia y/o de otra información.
Otro desafío planteado por el proceso de composición de un programa utilizando uno o varios clips de fuentes de alojamiento de contenido de terceros sobre las que el operador del sistema no tiene control, es que un clip determinado puede ser eliminado en cualquier momento (por ejemplo, por el sitio de alojamiento de terceros, por el usuario que lo publicó o de otra manera). Por ejemplo, una fuente de alojamiento de contenido puede eliminar un videoclip debido a una supuesta violación de los derechos de autor, debido a quejas de espectadores con respecto al videoclip o por otras razones. Por lo tanto, cuando un clip está planificado para ser mostrado a los usuarios como parte de un programa, es posible que el clip ya no esté disponible y se pueda producir una condición de error o que haya un espacio vacío dentro del programa correspondiente (o si el programa se compone de un solo clip, todo el programa puede estar "vacío").
Para abordar este problema, de forma opcional ciertas realizaciones identifican contenido de reserva (por ejemplo, contenido de vídeo u otro contenido) para sustituir contenido de vídeo eliminado u otro no disponible que se había incluido en un programa. En una realización de ejemplo, antes de que un programa determinado se planifique para emisión, el sistema puede determinar si el clip todavía está o no disponible. Por ejemplo, el sistema puede emitir una consulta al sitio de alojamiento a través de una API con respecto a la disponibilidad del clip y el sistema de alojamiento proporcionará, a continuación, una respuesta recibida por el sistema, indicando la respuesta si el clip todavía está o no disponible (o puede no proporcionar ninguna respuesta, lo que puede indicar que el clip ya no está disponible). A modo de ilustración, el sistema se puede planificar para realizar la verificación de disponibilidad 30 minutos antes de que se emita el programa, 12 horas antes de que se emita el programa, un día antes de que se emita el programa u otro período de tiempo antes de que se emita el programa.
Si el sistema determina que el clip no está disponible, el sistema puede identificar un clip sustituto de un repositorio de clips o de una o varias fuentes diferentes (incluyendo, de forma opcional, un repositorio de clips almacenados y mantenidos por el sistema de planificación de contenido). A modo de ejemplo, un repositorio de clips sustitutos (u otro contenido) puede haberse identificado ya de forma manual o automática para el programa específico (por ejemplo, un repositorio de programas dedicado). Luego, el sistema puede seleccionar el clip sustituto (u otro contenido) del repositorio de programas basándose, por lo menos en parte, en la similitud con la duración (en el tiempo) del clip que ya no está disponible. Por ejemplo, si el clip actualmente no disponible tiene una duración de 2 minutos, el sistema puede identificar un clip del repositorio que tenga una duración de 2 minutos o menos. A modo de ejemplo adicional, el sistema puede identificar un clip de entre 1 minuto y 45 segundos y 2 minutos y 15 segundos de duración.
Por lo tanto, de forma opcional, el sistema puede seleccionar contenido sustituto que sea más largo que el período de tiempo del contenido no disponible y puede truncar el contenido sobrante correspondiente al tiempo que excede al del contenido no disponible. De forma opcional, si el sistema selecciona contenido sustituto que es más largo que el contenido no disponible, el sistema puede eliminar otro contenido del programa para compensar (por ejemplo, el sistema puede eliminar el contenido promocional/publicitario incluido anteriormente para otros programas). De forma opcional, el sistema en cambio puede seleccionar contenido sustituto que no sea más largo que el período de tiempo del contenido no disponible.
De forma opcional, en lugar de utilizar un repositorio de programas dedicado de clips de reserva sustitutos, el sistema puede buscar y seleccionar clips sustitutos de un repositorio más amplio (por ejemplo, un repositorio específico para un canal determinado) o de sitios de alojamiento de contenido de terceros. Por ejemplo, el sistema puede seleccionar el clip sustituto en base a su similitud (por ejemplo, según se determine comparando etiquetas) con el clip que no está disponible actualmente y a la duración del clip. A modo de ilustración, si el clip no disponible actualmente tiene una etiqueta de "trucos de gato" y tiene una duración de 5 minutos, el sistema puede identificar un clip sustituto que también tenga la etiqueta "trucos de gato" o un sinónimo funcional de "trucos de gato" (por ejemplo, "acrobacias de gato") y que sea de unos 5 minutos de duración.
De forma opcional, en lugar de usar un clip sustituto para reemplazar un videoclip, se puede especificar contenido en directo (u otro tipo de contenido), como una transmisión en continuo de un microblog o una red social.
De forma opcional, el clip no disponible actualmente se puede sustituir utilizando dos o más clips (u otro contenido, que puede incluir contenido en directo y/o contenido grabado) que combinados tengan aproximadamente la misma duración que el clip actualmente no disponible. Se puede usar un algoritmo de empaquetado para seleccionar varios clips (u otro contenido) para reemplazar un clip determinado que actualmente no está disponible. El sistema puede seleccionar una combinación de contenido sustituto, donde cada elemento de contenido de la combinación es más corto que el contenido no disponible, pero la duración combinada de la combinación es más larga que el período de tiempo del contenido no disponible. El sistema puede truncar el contenido sobrante de uno de los elementos de la combinación de contenido sustituto (por ejemplo, el último elemento de contenido) correspondiente al tiempo que excede al del contenido no disponible. De forma opcional, el sistema puede en cambio seleccionar una combinación de contenido que tenga una duración que no sea mayor que el período de tiempo del contenido no disponible. De forma opcional, si la duración es más corta que el período de tiempo del contenido no disponible, se puede seleccionar y utilizar contenido de relleno para completar el período de tiempo.
Otro desafío que se plantea al componer un programa utilizando uno o varios clips (u otro contenido) de fuentes sobre las cuales el operador del sistema no tiene control, es que un clip determinado puede en realidad variar su duración. Por ejemplo, un clip determinado puede incluir un anuncio de vídeo de inicio (o posterior) cuando se identifica y selecciona inicialmente para un programa determinado, por lo que el clip (incluido el anuncio) tendrá una primera duración. El clip de inicio puede ser seleccionado dinámicamente por un servidor de publicidad en el momento en que se solicita el clip. Por lo tanto, se pueden seleccionar diferentes anuncios de diferentes duraciones en función de cuándo se solicita el clip y/o en función de la ubicación del solicitante. Por lo tanto, el clip determinado puede incluir un anuncio de vídeo diferente de una duración diferente a la del anuncio de vídeo que se transmitió en continuo como un anuncio de inicio cuando se seleccionó originalmente el clip (o el clip, cuando se seleccionó originalmente, puede no haber incluido ningún anuncio de vídeo de inicio) y, por lo tanto, la duración total del clip (incluyendo el anuncio de inicio) puede cambiar.
Para abordar este problema y garantizar que la duración de los clips se sincronice con la hora de finalización del programa planificada, ciertas realizaciones planifican un tiempo para un clip/elemento de contenido determinado (o para el programa en el que se va a incluir el clip determinado) más largo que la duración real del clip cuando se seleccionó inicialmente para el programa. La duración planificada seleccionada puede configurarse para adaptarse al aumento potencial máximo previsto de la duración del clip. Por ejemplo, los anuncios iniciales habituales suelen ser de 1 minuto o menos, por lo que el sistema puede planificar un minuto adicional para el clip o puede planificar 2 minutos adicionales para garantizar mejor que el tiempo total del clip (incluido el anuncio inicial, posterior u otro anuncio) no excederá el tiempo planificado para el clip.
A continuación, cuando el clip está a punto de ser reproducido (por ejemplo, dentro de 1 segundo, en 15 segundos, en 30 segundos) o se reproduce como parte del programa, el sistema puede examinar el clip (por ejemplo, los metadatos del clip que indican la duración del anuncio y/o la duración del clip) para determinar la duración total actual del clip (incluido el anuncio del servidor de publicidad) del clip que está a punto de ser reproducido. Por ejemplo, el sistema puede usar una API para acceder a la duración del clip sin el anuncio del sistema de alojamiento de contenido. Si la duración total del clip es más corta que la cantidad de tiempo planificada para el clip (o para varios clips en un programa determinado), el sistema puede seleccionar otro contenido para completar la duración. El contenido de relleno se puede seleccionar en base a su duración y, de forma opcional, en base a su relevancia para el programa. Si el sistema determina que el clip es más corto que el tiempo asignado, el sistema puede identificar el contenido de relleno, que puede ser en forma de uno o varios videoclips o imágenes fijas/estáticas.
De forma opcional, el sistema puede seleccionar contenido de relleno que sea más largo que el período de tiempo que tiene que completarse, y truncará el contenido sobrante correspondiente al tiempo que excede el período que tiene que completarse. De forma opcional, si el sistema selecciona contenido de relleno que es más largo que el período de tiempo que se tiene que completar, el sistema puede eliminar otro contenido del programa para compensar (por ejemplo, el sistema puede eliminar contenido promocional/publicitario incluido previamente para otros programas). El contenido de relleno puede corresponder a la materia del programa, puede ser contenido promocional para otros programas o puede ser contenido publicitario para uno o varios productos o servicios. De forma opcional, el contenido de relleno se puede recuperar de un repositorio de clips mantenido por el sistema o de una o varias fuentes diversas. A modo de ejemplo, un repositorio de clips de relleno puede haber sido identificado manual o automáticamente para el programa específico (por ejemplo, un repositorio de programas dedicado). A continuación, el sistema puede seleccionar el clip de relleno del repositorio de programas basándose, por lo menos en parte, en la similitud con la duración (en tiempo) del tiempo por completar del clip.
De forma opcional, los usuarios pueden recibir ciertos canales y acceder a estos de forma gratuita. De forma opcional, ciertos canales pueden ser canales de suscripción de pago, donde el sistema impedirá el acceso a los canales a aquellos usuarios que el sistema determina que no se han suscrito a esos canales. De forma opcional, se pueden proporcionar paquetes de suscripción combinada donde los programas y/o los canales se agrupan por materia (por ejemplo, cualquier programa disponible relacionado con un equipo deportivo específico), temática (por ejemplo, viajes, música, etc.), evento (un concierto en directo, un evento deportivo, etc.), etc., y los usuarios pueden suscribirse a uno o varios paquetes. De forma opcional, ciertos programas/canales pueden ser de pago por visión, donde el sistema le informa al usuario de que tiene que pagar una tarifa para acceder a un programa determinado o para acceder a un canal durante un período de tiempo específico.
De forma opcional, el sistema puede acceder (por ejemplo, a través de una API) a información de programación de otras emisoras (por ejemplo, emisoras por cable y/o por aire que también proporcionan contenido a ordenadores, dispositivos móviles, etc. o que de otro modo proporcionan acceso a su contenido), y puede añadir la información de programación (por ejemplo, nombre del programa, fecha/hora de emisión, etc.) a la guía de programación explicada anteriormente. Por lo tanto, la guía de programas puede proporcionar una guía de programas integrada que incluya información para múltiples emisoras (por ejemplo, fuentes de contenido de vídeo en línea, emisoras por aire, emisoras por cable, etc.). De forma opcional, la guía de programas permite al usuario seleccionar y visualizar los canales y el contenido de dichas emisoras. De forma opcional, se proporciona una interfaz de usuario a través de la cual el usuario puede proporcionar información de inicio de sesión para la cuenta o cuentas del usuario con la otra emisora o emisoras que requieren o solicitan dicha información de inicio de sesión para acceder a su contenido. A continuación, el sistema puede utilizar dicha información de inicio de sesión del usuario (por ejemplo, identificador de usuario, contraseña, etc.), para verificar que el usuario está autorizado para acceder a dicho contenido de la emisora y/o el sistema reenvía la información de inicio de sesión a la emisora para su verificación y autorización.
De forma opcional, uno o varios canales pueden estar integrados y transmitirse en continuo a uno o varios sitios de terceros (por ejemplo, sitios web). Por ejemplo, un blog sobre música hip-hop puede integrar un canal de música hip-hop para ser visualizado por su público. De forma opcional, en el canal pueden presentar enlaces al sitio alojado por el sistema. De forma opcional, una empresa puede utilizar el sistema para generar un canal o programa para una marca de la empresa. Por ejemplo, si la empresa fabrica o vende calzado deportivo, el sistema se puede utilizar para generar programas y/o canales de contenido relacionado con el calzado o que representan el calzado con la marca de la empresa. El contenido para el programa del canal puede ser seleccionado manualmente por la empresa o el contenido puede ser identificado y/o montado automáticamente en un programa o canal, tal como se describe de manera similar en otra parte del presente documento. Se puede acceder al canal de la empresa a través de un sitio web de la empresa, un sitio web alojado por el sistema y/o un sitio web de alojamiento de contenido de terceros. De forma opcional, un canal o programa determinado puede estar sindicado a través de una pluralidad de plataformas y puntos de distribución (por ejemplo, a otras plataformas lineales, a descodificadores por cable o satélite, etc.). Por ejemplo, se puede proporcionar una interfaz (por ejemplo, proporcionada a través de un kit de desarrollador de software) que permita a un editor crear un canal (por ejemplo, tal como se ha explicado en otro punto del presente documento) y especificar cómo y dónde se debe emitir el canal (por ejemplo, de manera inalámbrica, sobre internet, por cable, etc.).
De forma opcional, el contenido puede utilizar transmisión en continuo de multidifusión IP y/o inalámbrica (por ejemplo, para reducir el uso de ancho de banda de la red), donde múltiples destinos pueden acceder a una transmisión en continuo determinada, en lugar de usar solo la transmisión en continuo de unidifusión de uno a uno. Por ejemplo, en la transmisión en continuo de multidifusión, una transmisión de multidifusión puede transmitir paquetes IP a un grupo de terminales de destino en una red. Un nodo de destino (por ejemplo, un terminal de usuario) puede enviar al sistema un mensaje de unión cuando se une a una transmisión en continuo de multidifusión y puede enviar mensajes de salida cuando sale de una transmisión en continuo de multidifusión. Por ejemplo, cuando un usuario está viendo un primer canal y a continuación cambia al segundo canal, el nodo de destino puede transmitir un mensaje de abandonar para salir del primer canal, y el nodo de destino puede transmitir un mensaje de unión para unirse al segundo canal. Utilizando transmisión de multidifusión, un sistema puede enviar una vez un paquete de datos (por ejemplo, datos de contenido) para que los reciban varios nodos de destino. El direccionamiento de multidifusión puede utilizar una variedad de diferentes protocolos de capa de transporte, tales como multidifusión general pragmática (PGM, Pragmatic General Multicast) o el Protocolo de datagramas de usuario (UDP, User Datagram Protocol).
De forma opcional, el operador (u otra entidad) del sistema de planificación de contenido puede publicar anuncios en sitios de contenido de terceros. Por ejemplo, el operador del sistema de planificación de contenido puede comprar palabras clave correspondientes al contenido, tal como un vídeo (por ejemplo, un vídeo musical de un artista popular). A continuación, cuando un usuario de un sitio de contenido de terceros realiza una búsqueda utilizando los términos de búsqueda que corresponden a las palabras clave, un anuncio (que puede incluir un enlace, texto, una imagen/cuadro) para el vídeo se puede identificar y mostrar al usuario en el terminal del usuario. Cuando el usuario hace clic en el anuncio/enlace del vídeo, el vídeo se puede reproducir para el usuario. De forma opcional, el vídeo se reproduce a través del sitio alojado por el sistema de planificación de contenido. De forma opcional, el vídeo se reproduce a través de un sitio de contenido de terceros. El sistema de planificación de contenido puede identificar un canal que determina puede gustar al usuario basándose, por lo menos en parte, en la selección del vídeo por parte del usuario (por ejemplo, mediante la identificación de un tema, materia, etc. similares utilizando/comparando metadatos asociados con los canales y el vídeo). Por ejemplo, antes de que el usuario seleccione el vídeo, se puede realizar, de forma opcional, una asociación del vídeo con un canal, de modo que una vez que el usuario selecciona el vídeo, el sistema ya "sabe" qué canal seleccionar. El sistema de planificación de contenido puede detectar o determinar cuándo el vídeo ha terminado de reproducirse para el usuario y hacer a continuación que el usuario reciba vídeos del canal seleccionado (por ejemplo, de acuerdo con la planificación del canal). Por ejemplo, el programa que se está reproduciendo actualmente para el canal seleccionado puede transmitirse en continuo al terminal del usuario para mostrarse al usuario. El canal puede ser identificado para el usuario por nombre, número de canal y/o de otra manera.
De forma opcional, un programador puede asignar puntos de inserción de anuncios en diferentes puntos dentro de una lista de reproducción, tales como antes o después de un clip determinado en una lista de reproducción. Por lo tanto, en lugar de especificar el tiempo de inserción de un anuncio, los puntos de inserción están asociados con el inicio y/o el final de los clips dentro de una lista de reproducción, tal como una lista de reproducción de clips que forma un programa. Los anuncios pueden incluir anuncios lineales (anuncios que aparecen antes, después o durante una interrupción en el contenido del vídeo (a veces denominados del comienzo, de la finalización, o cuñas)) y/o anuncios no lineales (anuncios que aparecen junto con el contenido del vídeo (por ejemplo, superposiciones que cubren parte del vídeo mientras este se reproduce)). Los anuncios pueden ser suministrados por un servidor de anuncios.
De forma opcional, un operador puede especificar un número máximo de minutos y/o una cantidad de anuncios que se pueden añadir a una lista de reproducción. Por ejemplo, si el programa está planificado para tener una duración de 30 minutos (incluidos los anuncios), y la lista de reproducción correspondiente incluye 22 minutos de contenido, entonces solo se asignan 8 minutos del tiempo del programa a los anuncios. Cuando el programador añade un punto de inserción de anuncios, el programador puede especificar la duración (en tiempo) del anuncio que se insertará. La herramienta de programación puede calcular la duración del programa actual (incluido el programa base y las inserciones de anuncios actuales) y, de manera opcional, mostrar continuamente el tiempo total al programador. El sistema puede comparar el tiempo total actual frente al tiempo planificado del programa. De forma opcional, si el programador intenta añadir un punto de inserción de anuncios con una duración de tiempo asociada que haría que la duración total del programa supere la duración planificada, se puede generar un aviso de error y presentarse al programador y, de forma opcional, la herramienta de programación impedirá la adición del punto de inserción de anuncios.
A continuación se describirán procesos de ejemplo haciendo referencia a las figuras. Los procesos pueden realizarse mediante, o utilizando los sistemas descritos en el presente documento o mediante, o con, otros sistemas. Se debe comprender que no es necesario realizar todos los procesos siguientes, ni es necesario que se realicen todos los estados del proceso.
La figura 7 ilustra un proceso de ejemplo que identifica si un elemento de contenido previamente planificado, tal como un clip planificado como parte de un programa compuesto por múltiples clips, está actualmente disponible. El proceso puede realizarse de forma opcional usando el módulo de sustitución de contenido descrito anteriormente. En el bloque 700, se determina si el proceso debe evaluar la disponibilidad de uno o varios elementos de contenido (por ejemplo, videoclips, etc.) que previamente se habían planificado para ser incluidos en el programa. Por ejemplo, se puede definir una regla que establezca que la evaluación de la disponibilidad se realizará durante un período de tiempo específico antes de cuando está planificada la presentación del programa, o un período de tiempo específico antes de que cuando está planificada la presentación del elemento de contenido. De forma opcional, además o su lugar de lo anterior, la regla puede especificar un día y/o una hora específicos en los que se realizará la evaluación de disponibilidad.
En el bloque 702, se accede a una definición de programa para el programa planificado en un primer período de tiempo desde un almacenamiento de datos de definiciones de programa. Por ejemplo, la definición del programa puede indicar qué elementos de contenido están incluidos en el programa y el orden de visualización de los elementos de contenido, las duraciones de los elementos de contenido, la hora de inicio de un determinado elemento de contenido en relación con el comienzo del programa (por ejemplo, el elemento de contenido 3 comienza 5 minutos después de comenzar el programa) y puede incluir localizadores (por ejemplo, los URL) para los elementos de contenido. La definición del programa puede haber sido establecida días, semanas, meses u otro período de tiempo antes de la próxima presentación del programa. En el bloque 704, por lo menos en parte en respuesta a la determinación de que se realizará la evaluación de la disponibilidad, se determina para un elemento de contenido determinado si el elemento de contenido todavía está disponible. Por ejemplo, tal como se analiza de manera similar en otra parte del presente documento, se puede emitir una consulta al sitio de alojamiento a través de una API con respecto a la disponibilidad del elemento de contenido, y la respuesta, si la hay, se recibirá del sistema de alojamiento, indicando la respuesta si el clip sigue o no estando disponible (o el sistema de alojamiento puede no proporcionar ninguna respuesta, lo que puede indicar que el elemento de contenido ya no está disponible).
Si el proceso determina que el elemento de contenido está disponible, en el bloque 706, el proceso permite que el contenido se transmita en continuo según lo planificado durante el primer período de tiempo.
Si el proceso determina que el elemento de contenido ya no está disponible, en el bloque 708, el proceso puede identificar un elemento de contenido sustituto de un repositorio de elementos de contenido, o de otra u otras fuentes (incluyendo, de forma opcional, un repositorio de elementos de contenido almacenado y mantenido por el proceso de planificación de contenido) que tiene una o varias propiedades similares especificadas (por ejemplo, materia, duración, fuente, creador, fecha de publicación, popularidad, etc.). A modo de ejemplo, un repositorio de elementos de contenido sustitutos (u otro contenido) puede anteriormente haber sido identificado manualmente o automáticamente para el programa específico (por ejemplo, un repositorio de programas dedicado). A continuación, el proceso puede seleccionar el elemento de contenido sustituto (u otro contenido) del repositorio de programas basándose, por lo menos en parte, en la similitud con la duración (en tiempo) del elemento de contenido que ya no está disponible. De forma opcional, además de o en lugar de usar un repositorio de programas dedicados de elementos de contenido de reserva sustitutos, el proceso puede buscar y seleccionar elementos de contenido sustitutos de un repositorio más amplio (por ejemplo, un repositorio específico para un canal determinado) o de sitios de alojamiento de contenido de terceros.
De manera similar, tal como se expone en otra parte del presente documento, de forma opcional, el proceso puede seleccionar contenido sustituto que sea más largo que el período de tiempo del contenido no disponible, y puede truncar o editar el contenido sobrante correspondiente al tiempo que excede al del contenido no disponible. De forma opcional, si el proceso selecciona contenido sustituto que es más largo que el contenido no disponible, el proceso puede eliminar otro contenido del programa para compensar (por ejemplo, el proceso puede eliminar el contenido promocional/publicitario incluido anteriormente para otros programas). De forma opcional, en cambio, el proceso puede seleccionar contenido sustituto que no sea más largo que el período de tiempo del contenido no disponible. De forma opcional, el elemento de contenido no disponible actualmente se puede sustituir utilizando dos o más elementos de contenido que combinados tengan aproximadamente la misma duración que el elemento de contenido no disponible actualmente. De forma opcional, en lugar de usar un elemento de contenido sustituto para reemplazar un elemento de contenido grabado, se puede especificar contenido en directo (u otro tipo de contenido), como un microblog o una retransmisión en continuo de una red social.
En el bloque 710, el proceso permite que el elemento o elementos de contenido sustituto en directo y/o grabado se transmitan en continuo a un terminal de usuario en lugar del elemento de contenido original durante el primer período de tiempo.
Haciendo referencia a continuación a la figura 8, se analizará un proceso de ejemplo para determinar si se necesita contenido suplementario para un programa. El proceso puede realizarse, de forma opcional, utilizando el módulo de identificación de contenido suplementario explicado anteriormente. En el bloque 802, se accede a una definición de programa para un programa planificado en un primer período de tiempo. Por ejemplo, la definición del programa puede indicar los elementos de contenido que se incluyen en el programa y el orden de los elementos de contenido para su visualización, las duraciones de los elementos de contenido, la hora de inicio de un determinado elemento de contenido en relación con el comienzo del programa y puede incluir localizadores para los elementos de contenido. Algunos o todos los elementos de contenido pueden estar alojados en sitios de alojamiento de terceros. Por ejemplo, los elementos de contenido pueden incluir un primer elemento de contenido (por ejemplo, un videoclip u otro contenido) alojado por un servidor de sitios de terceros, donde el primer elemento de contenido tiene una primera duración de tiempo, donde la primera duración de tiempo puede incluir el tiempo asignado para un anuncio (por ejemplo, un anuncio de vídeo de 30 segundos), así como para el contenido principal, no publicitario. La definición del programa y las duraciones de tiempo del elemento de contenido pueden haberse establecido días, semanas, meses u otro período de tiempo antes de la próxima presentación del programa. En el bloque 804, se asigna un primer intervalo de tiempo para el primer elemento de contenido alojado por el servidor de sitios de terceros, donde el primer intervalo de tiempo es más largo que la primera duración de tiempo del primer elemento.
En el bloque 806, se determina la duración actual del primer elemento de contenido. La duración actual puede ser la duración total actual del elemento de contenido (por ejemplo, incluyendo un anuncio que se suministrará o se está suministrando actualmente desde un servidor de publicidad, donde el anuncio actual puede ser un anuncio diferente y tener una duración de tiempo diferente a la primera duración de tiempo asignada previamente). Por ejemplo, se puede definir una regla que indique que la evaluación de la duración se realizará un período de tiempo específico antes de cuando está planificado se presente el programa, o un período de tiempo específico antes de cuando está planificado se presente el primer elemento de contenido (por ejemplo, dentro de 1 segundo, dentro de 15 segundos, dentro de 30 segundos, 1 día u otro período de tiempo antes de la próxima presentación del primer elemento de contenido). De forma opcional, además o en lugar de lo anterior, la regla puede especificar un día y/o una hora específicos en los que se realizará la evaluación de la duración.
El proceso puede examinar el primer elemento de contenido (por ejemplo, los metadatos del elemento de contenido que indican la duración del anuncio y/o la duración del elemento de contenido) para determinar la duración total actual del elemento de contenido (incluido el anuncio desde el servidor de publicidad). Por ejemplo, el proceso puede usar, de forma opcional, una API para acceder a la duración del elemento de contenido sin el anuncio del sistema de alojamiento de contenido.
En el bloque 806, se determina si la duración total actual del elemento de contenido es más corta que el primer intervalo de tiempo asignado para el primer elemento de contenido. Si la duración total del elemento de contenido es más corta que el primer intervalo de tiempo asignado para el primer elemento de contenido (o para múltiples elementos de contenido en un programa determinado), en el bloque 808, el proceso puede identificar y seleccionar otro contenido para completar el tiempo (por ejemplo, el tiempo = el primer intervalo de tiempo - la duración total actual del elemento de contenido). El contenido suplementario de relleno se puede seleccionar en base a su duración y, de forma opcional, en base a su relevancia para el programa y/o en base a otros criterios (por ejemplo, materia, fuente, creador, fecha de publicación, popularidad, etc.). Si el proceso determina que el elemento de contenido es más corto que el primer intervalo de tiempo asignado, el proceso puede identificar contenido de relleno, que puede ser en forma de uno o varios elementos de contenido de vídeo u otros elementos de contenido (por ejemplo, imágenes fijas, transmisiones en continuo de blogs, etc.).
De forma opcional, el proceso puede seleccionar un contenido suplementario de relleno que sea más largo que el período de tiempo que se tiene que completar, y truncará o editará el contenido sobrante correspondiente al tiempo que exceda el período que se tiene que completar. De forma opcional, si el proceso selecciona contenido de relleno que es más largo que el período de tiempo que se tiene que completar, el proceso puede eliminar otro contenido del programa para compensarlo (por ejemplo, el proceso puede eliminar el contenido promocional/publicitario incluido anteriormente para otros programas). El contenido de relleno puede corresponder a la materia del programa, puede ser contenido promocional para otros programas o puede ser contenido publicitario para uno o varios productos o servicios. De forma opcional, el contenido de relleno se puede recuperar de un repositorio de elementos de contenido mantenido por el proceso o procedente de una o varias fuentes diversas. A modo de ejemplo, un repositorio de elementos de contenido de relleno puede haber sido identificado manual o automáticamente para el programa específico (por ejemplo, un repositorio de programas dedicado). A continuación, el proceso puede seleccionar el elemento de contenido de relleno del repositorio de programas en base, por lo menos en parte, a la similitud con la duración (en el tiempo) del tiempo por completar del elemento de contenido.
En el bloque 812, el contenido suplementario de relleno se transmite en continuo durante el programa.
Tal como se indicó anteriormente, la duración de un elemento de contenido determinado (por ejemplo, un videoclip) en un programa puede variar por una variedad de razones, tal como un cambio en la duración de tiempo de un anuncio (por ejemplo, un anuncio de vídeo). En el ejemplo anterior, la duración de tiempo total del contenido de un elemento de contenido (por ejemplo, incluido un elemento de contenido principal y un anuncio) disminuyó desde que el elemento de contenido se planificó originalmente como parte de un programa. Sin embargo, también es posible que la duración de tiempo total del contenido de un elemento de contenido (por ejemplo, que incluya un elemento de contenido principal y un anuncio) pueda aumentar desde que el elemento de contenido se planificó originalmente como parte de un programa. Este aumento de tiempo también puede deberse a retrasos de almacenamiento en memoria intermedia del contenido, en un terminal de usuario o en otro lugar. Los retrasos de almacenamiento en memoria intermedia pueden ser notificados al sistema por el reproductor de contenido (que puede ser un reproductor de contenido de terceros utilizado por el reproductor de contenido unificado que se ejecuta en el terminal del usuario) y/o el sistema puede inferir un retraso a partir de la información del estado de reproducción del reproductor de contenido. Por ejemplo, el reproductor de contenido puede informar de la posición actual en el tiempo y/o por cuadro de la reproducción del contenido, y el sistema puede comparar la posición actual del informe con la posición planificada para determinar si hay un retraso de reproducción en el terminal del usuario.
Así, por ejemplo, si un programa estaba planificado para ejecutarse durante 30 minutos, pero en el tiempo de visualización planificado, la duración de tiempo total del contenido de un elemento de contenido incluido en el programa es 30 segundos más que lo planificado originalmente (o si hubiera 30 segundos de retraso de almacenamiento en memoria intermedia), el tiempo total para el programa ahora será de 30 minutos y 30 segundos. Para abordar este desafío técnico, una técnica de ejemplo es truncar el final del programa (por ejemplo, los últimos 30 segundos) para garantizar que el siguiente programa comience según lo planificado. Sin embargo, esto puede proporcionar una experiencia de visualización desagradable para el usuario, ya que se puede cortar una parte clave del programa.
Otra técnica, mencionada algunas veces en el presente documento como un proceso de ajuste del desfase de tiempo, que se puede usar de forma opcional, es permitir que el primer programa se muestre al usuario sin truncamiento, incluso si el primer programa supera su tiempo planificado (según lo planificado en la guía electrónica de programas), y retrasar la reproducción del siguiente programa adyacente, de modo que el siguiente programa adyacente no se inicie hasta 30 segundos (u otro período de retraso) después de su hora de inicio planificada. Por ejemplo, el retraso se puede determinar calculando la diferencia de tiempo entre una cantidad de tiempo asignada originalmente para un elemento de contenido determinado y el tiempo de reproducción real. De forma opcional, la guía electrónica de programas puede ajustarse dinámicamente para reflejar el tiempo extendido del primer programa y/o el inicio y/o la finalización retrasados del siguiente programa (y, de forma opcional, de los programas subsiguientes adicionales). De forma opcional, la guía electrónica de programas no se ajusta para reflejar el tiempo extendido del primer programa y/o el inicio y/o la finalización retrasados del siguiente programa. Tal como se explica en el presente documento, los diversos elementos de contenido incluidos en un programa pueden opcionalmente transmitirse en continuo al terminal de usuario desde varias fuentes de contenido para su reproducción a través de un reproductor de contenido.
De forma opcional, en la situación en la que el usuario puede experimentar un desfase de tiempo (por ejemplo, como resultado de un anuncio que dura más tiempo que su tiempo asignado o como resultado de retrasos de almacenamiento en memoria intermedia), el proceso de ajuste del desfase de tiempo puede optar por no reproducir o inhibir la reproducción de uno o varios anuncios próximos para permitir que el programa o el canal que está viendo el usuario se ‘ponga al día’ con la línea de tiempo no desplazada en el tiempo, "en directo", planificada originalmente.
La técnica anterior se puede realizar dinámicamente espectador por espectador. Por lo tanto, si un primer usuario está viendo el primer programa (con el tiempo extendido), entonces el tiempo de inicio del siguiente programa adyacente se puede retrasar, como se explicó anteriormente. Sin embargo, si un segundo usuario no está viendo el primer programa (o había estado viendo el primer programa pero sin retrasos, como podría deberse al almacenamiento en memoria intermedia en el primer terminal del usuario), pero entonces comienza a ver el siguiente programa adyacente (por ejemplo, al seleccionar el siguiente programa adyacente a través de la guía electrónica de programas), el siguiente programa adyacente comenzará a reproducirse para el segundo usuario a través de un reproductor de contenido a la hora planificada originalmente.
Por lo tanto, dos usuarios diferentes que miran el mismo programa planificado en el tiempo pueden en realidad verlos con un desfase de tiempo que comprende una desviación de tiempo relativa (por ejemplo, 30 segundos de diferencia en este ejemplo), donde la desviación de tiempo relativa puede estar basada en cambios en la duración del programa de uno o varios programas que están siendo vistos por un usuario que no están siendo vistos por otro usuario o por un retraso en la reproducción (por ejemplo, un retraso de almacenamiento en memoria intermedia) que podría afectar a un usuario pero no a otro usuario. Además, de forma opcional, la guía electrónica de programas del primer usuario se ajusta dinámicamente para tener en cuenta la duración extendida del primer programa, mientras que la guía electrónica de programas del segundo usuario no se ajusta dinámicamente.
Tal como se ha explicado de modo similar anteriormente, los cambios en la duración de tiempo de un determinado elemento de contenido se pueden determinar a partir de los metadatos a los que se accede a través de una API desde la fuente de contenido. De forma opcional, se puede acceder al almacenamiento en memoria intermedia de contenido u otros datos desde un terminal de usuario para determinar si una visualización de un elemento de contenido determinado se está retrasando como resultado del almacenamiento en memoria intermedia o de otros retrasos.
Haciendo referencia, a continuación, a la figura 9, se analiza un proceso de ejemplo para generar dinámicamente una guía de programas personalizada. El proceso se puede realizar, de forma opcional, utilizando el módulo de generación de guías de programas que se analizó anteriormente. En el bloque 902, se accede a las preferencias del usuario proporcionadas de forma explícita. Por ejemplo, las preferencias del usuario proporcionadas de forma explícita pueden ser accedidas desde la información de la cuenta del usuario que almacena géneros, programas, materia, contenido y/o canales que le gustan y/o que no le gustan, especificaciones del usuario de los canales que deben bloquearse, instrucciones de recordatorios del usuario, marcadores del usuario, etc., previamente proporcionados por el usuario.
En el bloque 904, se puede acceder al comportamiento de visualización del usuario (por ejemplo, durante cuánto tiempo un usuario mira un contenido por día o por semana, cuántas veces en un período de tiempo específico cambia de canal el usuario, con qué frecuencia durante un período de tiempo específico el usuario prueba un nuevo canal o espectáculo (un canal o espectáculo que el usuario no haya visto anteriormente, etc.)) y al historial de visualización. En el bloque 906, se pueden determinar o acceder a las preferencias del usuario inferidas. Por ejemplo, se puede deducir lo que le gusta y/ lo que no le gusta al usuario a partir del historial de visualización del usuario, la navegación y el comportamiento de visualización del usuario, etc. A modo de ilustración, se puede inferir que los canales más vistos del usuario en un período de tiempo pasado específico (por ejemplo, los últimos 30 días) son los canales que más prefiere el usuario. Por otro lado, si un usuario cambia frecuentemente a un canal específico durante cortos períodos de tiempo (por ejemplo, un canal de noticias deportivas), el proceso puede inferir que, aunque el usuario no pase un período de tiempo largo viendo el canal, el canal sigue siendo un canal muy preferido.
En el bloque 910, se genera una guía de programas personalizada, generada dinámicamente, basada por lo menos en parte en las preferencias del usuario proporcionadas de forma explícita y/o las preferencias del usuario inferidas. Por ejemplo, las preferencias del usuario proporcionadas de forma explícita y/o las preferencias del usuario inferidas se pueden usar para determinar el orden de los canales en la guía electrónica de programas (por ejemplo, qué canales se presentan primero, segundo, tercero, etc.); qué canales, si los hay, se deben excluir de la guía de programas (por ejemplo, los canales que el sistema determina son de bajo interés para el usuario); qué canales se deben resaltar (por ejemplo, a través de color, animación, interfaces emergentes o de otro tipo, etc.), qué tipo de información se debe incluir en la guía de programas, etc. A continuación, la guía de programas personalizada, generada dinámicamente puede ser proporcionada para ser mostrada a un terminal de usuario.
Haciendo referencia, a continuación, a la figura 10 se analizará un proceso de ejemplo para montar automáticamente un programa a partir de múltiples elementos de contenido. El proceso puede realizarse de forma opcional utilizando el módulo de generación automática de programas que se describió anteriormente. En el bloque 1002, se proporciona una interfaz de usuario a través de la cual un programador (donde el programador programa espectáculos y puede no estar familiarizado con los lenguajes de programación del software) puede especificar criterios y reglas para seleccionar elementos de contenido para un programa. Por ejemplo, la interfaz de usuario puede permitir que un programador especifique un nombre para el programa, palabras clave asociadas con la materia del programa, una duración del programa, una duración máxima del elemento de contenido, una duración mínima del elemento de contenido, el tipo de contenido deseado (por ejemplo, videoclips grabados, imágenes fijas, publicaciones en medios sociales, transmisiones en continuo de blogs, etc.), fuentes de contenido (por ejemplo, sitios de alojamiento de contenido), umbrales de popularidad de los elementos de contenido, umbrales de popularidad de los autores de los elementos de contenido, calificaciones de influencia social (por ejemplo, puntuaciones o clasificaciones), etc.
En el bloque 1004, el proceso identifica contenido que satisface los criterios especificados y garantiza que la duración total de los elementos de contenido montados, de forma opcional incluyendo publicidad, no exceda la duración del programa especificada al mantener un total acumulado del contenido de elementos que se está añadiendo al programa. Por ejemplo, el proceso puede acceder, a través de varias API de alojamiento de contenido, a metadatos asociados para determinar si se cumplen los criterios antes de seleccionar un elemento de contenido determinado para incluirlo en el programa. Por ejemplo, como parte del proceso de determinar si un determinado elemento de contenido coincide con palabras clave incluidas en los criterios, el proceso puede comparar palabras clave especificadas por el programador con etiquetas asociadas con el contenido del elemento para determinar si existe una coincidencia.
En el bloque 1006, el proceso monta el programa, incluyendo los elementos de contenido seleccionados, y programa los elementos de contenido para que aparezcan en un orden específico. El programa se puede incluir a continuación de forma opcional en una guía de programas, y los usuarios pueden acceder al programa y visualizarlo a través de sus terminales de usuario.
Haciendo referencia, a continuación, a la figura 11, se describe un proceso de ejemplo para generar dinámicamente un programa o canal. El proceso puede realizarse de forma opcional utilizando el módulo de generación automática de programas que se analizó anteriormente. El proceso se puede realizar sustancialmente en tiempo real. El contenido generado puede incluir contenido no planificado y/o contenido no seleccionado específicamente por el usuario (por ejemplo, cuando el programa o el canal no es simplemente una lista de reproducción definida por el usuario). En el bloque 1102, el proceso detecta la activación por parte de un usuario de un control de generación dinámica de programas (a veces denominado en el presente documento un control aleatorio) presentado a través de una interfaz de usuario de un terminal de usuario.
En el bloque 1104, el proceso accede a reglas de generación dinámica de programas (aleatorización) de la memoria. Por ejemplo, las reglas de aleatorización pueden incluir uno o varios de los siguientes: no incluir más de un número específico de elementos de contenido del mismo autor, no incluir más de un número específico de elementos de contenido de la misma fuente, no incluir elementos de contenido más largos que una primera duración especificada, no incluir elementos de contenido más cortos que una segunda duración especificada, el programa generado dinámicamente deberá tener una primera duración especificada, solo incluir contenido que cumpla un umbral de popularidad especificado, solo incluir contenido de autores que cumpla un umbral de popularidad específica, solo incluir contenido de autores que cumpla un umbral de calificación de influencia social específico, etc.
En el bloque 1106, el proceso accede a información de la cuenta del usuario (por ejemplo, preferencias del usuario proporcionadas de forma explícita (por ejemplo, incluyendo lo que le gusta y/o lo que no le gusta), preferencias del usuario inferidas (por ejemplo, incluyendo lo que le gusta y/o lo que no le gusta), especificaciones de usuario de los canales a bloquear, instrucciones de recordatorios del usuario, marcadores de usuario, historial de visualización del usuario, navegación y comportamiento de visualización del usuario, etc.). El proceso selecciona uno o varios elementos de contenido basándose, por lo menos en parte, en la información de la cuenta del usuario y/o en las reglas de generación dinámica de programas. En el bloque 1108, el proceso genera dinámicamente un programa utilizando el contenido seleccionado y hace que el contenido sea transmitido en continuo al terminal de usuario. Haciendo referencia a continuación a la figura 12, se describe un proceso de ejemplo para avance o rebobinado rápido a través de un programa compuesto por elementos de contenido de múltiples fuentes de contenido (por ejemplo, sitios de alojamiento de vídeos, etc.). El proceso puede realizarse, de forma opcional, utilizando el módulo de reproductor unificado descrito anteriormente.
En el bloque 1202, se está transmitiendo en continuo a un terminal de usuario un programa que consta de múltiples elementos de contenido de múltiples fuentes (por ejemplo, de una pluralidad de servidores de alojamiento de contenido operados por diferentes entidades). Por ejemplo, el programa puede incluir un primer elemento de contenido de una primera fuente y un segundo elemento de contenido de una segunda fuente. El usuario emite una instrucción de navegación de contenido activando un control de navegación de contenido, tal como un control de avance rápido o un control de rebobinado. En el bloque 1204, se determina si la ejecución de la instrucción de navegación hará que se cruce un límite de contenido. Por ejemplo, el proceso puede determinar si una operación de avance rápido, iniciada mientras el primer elemento de contenido se está transmitiendo en continuo desde una primera fuente, excederá la duración del primer elemento de contenido. Si la operación de avance rápido, iniciado mientras el primer elemento de contenido se estaba transmitiendo en continuo desde una primera fuente, excede la duración del primer elemento de contenido, entonces, en el bloque 1206, el proceso de avance rápido continúa a través del primer elemento de contenido desde la primera fuente (por ejemplo, estando presentes los cuadros seleccionados del primer elemento de contenido durante el proceso de avance rápido), y en el bloque 1208, el proceso de avance rápido continúa a través de por lo menos una parte del segundo elemento de contenido de la segunda fuente (por ejemplo, estando presentes los cuadros seleccionados del segundo elemento de contenido durante el proceso de avance rápido).
Dependiendo de la realización, ciertos actos, eventos o funciones de cualquiera de los procesos o algoritmos descritos en el presente documento se pueden realizar en una secuencia diferente, se pueden añadir, fusionar u omitir por completo (por ejemplo, no todas las operaciones o eventos descritos son necesarios para poner en práctica el algoritmo). Además, en ciertas realizaciones, las operaciones o los eventos se pueden realizar de manera concurrente, por ejemplo, a través de procesamiento con múltiples subprocesos, procesamiento de interrupciones, o múltiples procesadores o núcleos de procesadores o en otras arquitecturas paralelas, en lugar de en forma secuencial.
Los diversos bloques, módulos, rutinas y etapas de algoritmos lógicos, ilustrativos y descritos en relación con las realizaciones dadas a conocer en el presente documento pueden implementarse como hardware electrónico, software informático o combinaciones de ambos. Para ilustrar claramente esta capacidad de intercambio de hardware y software, varios componentes, bloques, módulos y etapas ilustrativos se han descrito anteriormente, en general, en términos de su funcionalidad. Si dicha funcionalidad se implementa como hardware o software depende de la aplicación particular y las restricciones de diseño impuestas en el sistema en general. La funcionalidad descrita puede implementarse de diferentes maneras para cada aplicación particular, pero tales decisiones de implementación no deben interpretarse como una desviación del alcance de la divulgación.
Además, los diversos bloques y módulos lógicos ilustrativos descritos en relación con las realizaciones dadas a conocer en el presente documento pueden ser implementados o realizados por una máquina, tal como un dispositivo procesador de propósito general, un procesador de señales digitales (DSP, digital signal processor), un circuito integrado de aplicación específica (ASIC, application specific integrated circuit), una matriz de puertas programables in situ (FPGA, field programmable gate array) u otro dispositivo lógico programable, lógica de transistores o puertas discretas, componentes de hardware discretos o cualquier combinación de los mismos diseñada para realizar las funciones descritas en el presente documento. Un dispositivo procesador de propósito general puede ser un microprocesador, pero, como alternativa, el dispositivo procesador puede ser un controlador, un microcontrolador o una máquina de estados, combinaciones de los mismos o similares. Un dispositivo procesador puede incluir circuitos eléctricos configurados para procesar instrucciones ejecutables por ordenador. En otra realización, un dispositivo procesador incluye una FpGa u otro dispositivo programable que realiza operaciones lógicas sin procesar instrucciones ejecutables por ordenador. Un dispositivo procesador también puede implementarse como una combinación de dispositivos informáticos, por ejemplo, una combinación de un DSP y un microprocesador, una pluralidad de microprocesadores, uno o varios microprocesadores junto con un núcleo DSP o cualquier otra configuración similar. Aunque se describe en el presente documento principalmente con respecto a la tecnología digital, un dispositivo procesador también puede incluir principalmente componentes analógicos. Un entorno informático puede incluir cualquier tipo de sistema informático, que incluye, entre otros, un sistema informático basado en un microprocesador, un ordenador central, un procesador de señales digitales, un dispositivo informático portátil, un controlador de dispositivo o un motor computacional dentro de un aparato, por nombrar algunos.
Los elementos de un procedimiento, proceso, rutina o algoritmo descritos en relación con las realizaciones dadas a conocer en el presente documento pueden realizarse directamente en hardware, en un módulo de software ejecutado por un dispositivo procesador o en una combinación de los dos. Un módulo de software puede residir en memoria RAM, memoria flash, memoria ROM, memoria EPROM, memoria EEPROM, registros, un disco duro, un disco extraíble, un CD-ROM o en cualquier otra forma de medio de almacenamiento no transitorio legible por ordenador. Se puede acoplar un medio de almacenamiento a modo de ejemplo al dispositivo procesador, de manera que el dispositivo procesador pueda leer información dese el medio de almacenamiento y escribir información en el mismo. Como alternativa, el medio de almacenamiento puede ser integral al dispositivo procesador. El dispositivo procesador y el medio de almacenamiento pueden residir en un ASIC. El ASIC puede residir en un terminal de usuario. Como alternativa, el dispositivo procesador y el medio de almacenamiento pueden residir como componentes discretos en un terminal de usuario.
El lenguaje condicional utilizado en el presente documento, como, entre otros, "puede", "podría", "por ejemplo" y similares, a menos que se especifique lo contrario, o se entienda de otro modo en el contexto tal como se usa, en general, pretende transmitir que ciertas realizaciones incluyen, mientras que otras realizaciones no incluyen, ciertas características, elementos y/o etapas. Por lo tanto, dicho lenguaje condicional no pretende, en general, implicar que las características, elementos y/o etapas son en modo alguno necesarias para una o varias realizaciones o que una o varias realizaciones necesariamente incluyan lógica para decidir, con o sin otra entrada o solicitud, si estas características, elementos y/o etapas se deben incluir o deben realizarse en cualquier realización particular. Los términos "que comprende", "que incluye", "que tiene" y similares son sinónimos y se usan inclusivamente, de manera abierta, y no excluyen elementos, características, actos, operaciones, etc. adicionales. Además, el término "o" se usa en su sentido inclusivo (y no en su sentido exclusivo) de modo que cuando se usa, por ejemplo, para conectar una lista de elementos, el término "o" significa uno, algunos o todos los elementos de la lista.
El lenguaje disyuntivo, como la frase "por lo menos uno de X, Y, Z", a menos que se indique específicamente lo contrario, se debe entender de otro modo con el contexto como se usa en general para presentar que un elemento, término, etc., puede ser X, Y, o Z, o cualquier combinación de los mismos (por ejemplo, X, Y y/o Z). Por lo tanto, dicho lenguaje disyuntivo no pretende implicar, en general, y no debería implicar que ciertas realizaciones requieren por lo menos uno de X, por lo menos uno de Y, o por lo menos uno de Z esté presente.
Si bien la expresión "clic" puede usarse con respecto a un usuario que selecciona un control, una selección de menú o similar, se pueden usar otras entradas del usuario, tal como comandos de voz, entradas de texto, gestos, etc. A modo de ejemplo, las entradas de usuario se pueden proporcionar a través de una interfaz, tal como a través de campos de texto, en los que un usuario introduce texto y/o mediante una selección de menú (por ejemplo, un menú desplegable, una lista u otra disposición a través de la cual el usuario puede seleccionar mediante una casilla de verificación o realizar de otro modo una selección o selecciones, un grupo de iconos seleccionables individualmente, etc.). Cuando el usuario proporciona una entrada o activa un control, un sistema informático correspondiente puede realizar la operación correspondiente. Algunos o todos los datos, entradas e instrucciones proporcionados por un usuario pueden almacenarse de forma opcional en un almacenamiento de datos del sistema (por ejemplo, una base de datos), desde donde el sistema puede acceder y recuperar dichos datos, entradas e instrucciones. Las interfaces de notificación y de usuario descritas en el presente documento pueden proporcionarse a través de una página web, una aplicación de teléfono dedicada o no dedicada, una aplicación informática, un mensaje de servicio de mensajes cortos (por ejemplo, SMS, MMS, etc.), mensajería instantánea, correo electrónico, notificación push, con sonido y/o de otra manera.
Los terminales de usuario descritos en el presente documento pueden tener la forma de un dispositivo de comunicación móvil (por ejemplo, un teléfono celular), ordenador portátil, tableta, televisión interactiva, consola de juegos, dispositivo de transmisión en continuo de medios, pantalla portátil, reloj conectado en red, etc. Los terminales de usuario pueden incluir, de forma opcional, pantallas, dispositivos de entrada de usuario (por ejemplo, pantalla táctil, teclado, ratón, reconocimiento de voz, etc.), interfaces de red, etc. Mientras que la descripción detallada anterior ha mostrado, descrito y señalado características novedosas aplicadas a varias realizaciones, se debe comprender que se pueden hacer varias omisiones, sustituciones y cambios en la forma y los detalles de los dispositivos o algoritmos ilustrados dentro del alcance de las reivindicaciones. Como puede reconocerse, ciertas realizaciones descritas en el presente documento pueden incorporarse en una forma que no proporciona todas las características y beneficios expuestos en el presente documento, ya que algunas características pueden usarse o practicarse por separado de otras. El alcance de ciertas realizaciones descritas en el presente documento se indica mediante las reivindicaciones adjuntas en lugar de por la descripción anterior.

Claims (13)

REIVINDICACIONES
1. Sistema, que comprende:
una interfaz de red configurada para comunicar sobre una red de datos;
un sistema informático que comprende uno o varios dispositivos informáticos;
un sistema de terceros adecuado para proporcionar contenido de vídeo de transmisión en continuo, estando el sistema de terceros bajo control independiente del sistema informático; y
un sistema de almacenamiento informático que comprende un dispositivo de almacenamiento no transitorio, dicho sistema de almacenamiento informático teniendo almacenados en el mismo instrucciones de programa ejecutables que dirigen el sistema informático para, por lo menos:
generar una guía electrónica de programas que enumera canales y programas de canales;
dotar a una pluralidad de terminales de usuario de acceso a la guía electrónica de programas;
identificar, en un primer tiempo, un primer vídeo a incluir en un primer programa, comprendiendo el primer programa una pluralidad de vídeos, planificados para ser mostrados a los usuarios en un primer período de tiempo que tiene un tiempo de inicio y un tiempo de finalización, estando alojado el primer vídeo en el sistema de terceros, en el que el primer vídeo tiene una primera duración de tiempo, en el que la guía electrónica de programas comprende una entrada del primer programa;
asignar un primer intervalo de tiempo dentro del primer programa para el primer vídeo que se va a proporcionar a los usuarios, en el que el primer intervalo de tiempo es mayor que la primera duración de tiempo para alojar el máximo aumento potencial previsto, en la duración del primer vídeo;
usar una interfaz de programación de aplicaciones (API) para acceder en un segundo tiempo, desde el sistema de terceros, a una información de duración actual asociada con el primer vídeo;
determinar una duración actual del primer vídeo, en base por lo menos en parte a la información de duración accedida desde el sistema de terceros;
calcular, antes de o durante el primer período de tiempo, una diferencia de tiempo entre una duración actual del primer vídeo y el primer intervalo de tiempo, en el que cuando el primer vídeo es identificado, el primer vídeo comprende contenido principal y un primer anuncio, teniendo el primer anuncio una duración del primer anuncio, y cuando se determina la diferencia de tiempo entre la duración actual del primer vídeo y el primer intervalo de tiempo, el primer vídeo comprende el contenido principal y un segundo anuncio y no el primer anuncio, teniendo el segundo anuncio una duración de tiempo distinta a la duración del primer anuncio;
por lo menos en parte en respuesta a la determinación de que la duración actual del primer vídeo es más corta que el primer intervalo de tiempo;
seleccionar contenido suplementario de un repositorio de elementos de contenido, mantenido por un proceso o procedente de una o varias fuentes, basándose en parte en una diferencia de tiempo determinada entre el primer intervalo de tiempo y la duración actual del primer vídeo;
y
hacer que, por lo menos en parte, contenido suplementario seleccionado basándose, por lo menos en parte, en la diferencia de tiempo determinada se transmita en continuo a terminales de usuario utilizando la interfaz de red sobre una red de datos dentro del primer período de tiempo.
2. Sistema, según la reivindicación 1, en el que el primer y el segundo anuncios de vídeo se transmiten en continuo desde un servidor de publicidad.
3. Sistema, según las reivindicaciones 1 o 2, en el que las instrucciones de programa ejecutables dirigen el sistema informático para determinar, mediante el primer sistema, antes del primer período de tiempo, si cada una de la primera pluralidad de vídeos sigue accesible desde el sistema de terceros.
4. Sistema de almacenamiento informático que comprende un dispositivo de almacenamiento no transitorio, dicho sistema de almacenamiento informático teniendo almacenado en el mismo instrucciones de programa ejecutables que dirigen un sistema informático para, por lo menos:
generar una guía electrónica de programas que enumera canales y programas de canales;
dotar a una pluralidad de terminales de usuario de acceso a la guía electrónica de programas;
identificar, en un primer tiempo, un primer vídeo que se va a incluir en un primer programa, comprendiendo el primer programa una pluralidad de vídeos, planificado para ser mostrado a los usuarios en un primer período de tiempo que tiene un tiempo de inicio y un tiempo de finalización, el primer vídeo alojado en un sistema de terceros remoto respecto del sistema informático, el sistema de terceros bajo control independiente del sistema informático, en el que el primer vídeo tiene una primera duración de tiempo, en el que la guía electrónica de programas comprende una entrada del primer programa;
asignar un primer intervalo de tiempo dentro del primer programa para que el primer vídeo sea proporcionado a los usuarios, en el que el primer intervalo de tiempo es mayor que la primera duración de tiempo para alojar el máximo aumento potencial previsto de la duración del primer vídeo;
utilizar una interfaz de programación de aplicaciones (API) para acceder en un segundo tiempo, desde el sistema de terceros, a una información de duración actual asociada con el primer vídeo;
determinar una duración actual del primer vídeo basándose, por lo menos en parte, en información de la duración del sistema de terceros;
calcular, antes de o durante el primer período de tiempo, una diferencia de tiempo entre la duración actual del primer vídeo y el primer intervalo de tiempo;
por lo menos parcialmente en respuesta a la determinación de que la duración actual del primer vídeo es más corta que el primer intervalo de tiempo;
seleccionar de un repositorio de elementos de contenido, mantenido por un proceso o procedente de una o varias fuentes basándose, por lo menos en parte, en una diferencia de tiempo determinada entre el primer intervalo de tiempo y la duración actual del primer vídeo;
y
hacer que, por lo menos en parte, contenido suplementario seleccionado utilizando una interfaz de red basándose, por lo menos en parte, en la diferencia de tiempo determinada se transmita en continuo a los terminales de usuario sobre una red de datos dentro del primer período de tiempo.
5. Sistema de almacenamiento informático, según la reivindicación 4, en el que cuando el primer vídeo es identificado, el primer vídeo comprende contenido principal y un primer anuncio, teniendo el primer anuncio una duración del primer anuncio, y cuando se determina la diferencia de tiempo entre la duración actual del primer vídeo y el primer intervalo de tiempo, el primer vídeo comprende el contenido principal y un segundo anuncio y no el primer anuncio, teniendo el segundo anuncio una duración de tiempo distinta de la duración del primer anuncio.
6. Sistema de almacenamiento informático, según la reivindicación 4, en el que cuando el primer vídeo es identificado, el primer vídeo comprende contenido principal, y cuando se determina la diferencia de tiempo entre la duración actual del primer vídeo y el primer intervalo de tiempo, el primer vídeo comprende el contenido principal y un anuncio de vídeo, en el que la duración actual del contenido principal y el anuncio de vídeo es más corta que el primer intervalo de tiempo.
7. Sistema de almacenamiento informático, según la reivindicación 4, en el que cuando el primer vídeo es identificado, el primer vídeo comprende contenido principal, y cuando se determina la diferencia de tiempo entre la duración actual del primer vídeo y el primer intervalo de tiempo, el primer vídeo comprende el contenido principal y un anuncio de vídeo, en el que el anuncio de vídeo es transmitido en continuo desde un servidor de publicidad.
8. Sistema de almacenamiento informático, según las reivindicaciones 4, 5, 6, o 7, en el que las instrucciones de programa ejecutables dirigen un sistema informático para que determine, antes del primer período de tiempo, si cada uno de la primera pluralidad de vídeos sigue accesible desde el sistema de terceros.
9. Procedimiento implementado por ordenador, comprendiendo el procedimiento:
generar, mediante un primer sistema que comprende hardware informático configurado con instrucciones ejecutables específicas, una guía electrónica de programas que incluye canales y programas de canales; identificar, en un primer tiempo, mediante el primer sistema, un primer vídeo que se va a incluir en un primer programa, que comprende una pluralidad de vídeos, estando el primer programa planificado para ser mostrado a los usuarios en un primer período de tiempo que tiene un tiempo de inicio y un tiempo de finalización, en el que el primer vídeo tiene una primera duración de tiempo, en el que la guía electrónica de programas incluye una entrada para el primer programa;
asignar un primer intervalo de tiempo dentro del primer programa para que el primer vídeo sea proporcionado a los usuarios, en el que el primer intervalo de tiempo es más largo que la primera duración de tiempo para alojar el máximo aumento potencial previsto de la duración del primer vídeo;
usar una interfaz de programación de aplicaciones (API) para acceder en un segundo tiempo, desde el sistema de terceros remoto, a una información de duración actual asociada con el primer vídeo, indicando la información de duración una duración actual del primer vídeo en el segundo tiempo;
determinar, mediante el primer sistema, antes de o durante un primer período de tiempo, una diferencia de tiempo entre la duración actual del primer vídeo y el primer intervalo de tiempo;
por lo menos parcialmente en respuesta a determinar, mediante el primer sistema, que la duración actual del primer vídeo tiene una duración de tiempo menor que el primer intervalo de tiempo;
seleccionar, mediante el primer sistema, suplementario de un repositorio de elementos de contenido, mantenido por un proceso o desde una o varias fuentes, basándose por lo menos en parte en una diferencia de tiempo determinada entre el primer intervalo de tiempo y la duración actual del primer vídeo;
y
hacer que, por lo menos en parte, contenido suplementario seleccionado basándose, por lo menos en parte, en la diferencia de tiempo determinada sea transmitido en continuo utilizando una interfaz de red a los terminales de usuario sobre una red de datos dentro del primer período de tiempo de modo que la temporización de la reproducción del primer programa corresponde a la planificación del primer programa en la guía electrónica de programas.
10. Procedimiento, según la reivindicación 9, en el que cuando el primer vídeo es identificado mediante el primer sistema, el primer vídeo comprende contenido principal y un primer anuncio, teniendo el primer anuncio una duración del primer anuncio, y cuando se determina la diferencia de tiempo entre la duración actual del primer vídeo y el primer intervalo de tiempo, el primer vídeo comprende el contenido principal y un segundo anuncio y no el primer anuncio, teniendo el segundo anuncio una duración de tiempo distinta de la duración del primer anuncio.
11. Procedimiento, según la reivindicación 9, en el que cuando el primer vídeo es identificado mediante el primer sistema, el primer vídeo comprende contenido principal, y cuando se determina la diferencia de tiempo entre la duración actual del primer vídeo y el primer intervalo de tiempo, el primer vídeo comprende el contenido principal y un anuncio de vídeo, en el que la duración actual del contenido principal y el anuncio de vídeo es más corta que el primer intervalo de tiempo.
12. Procedimiento, según la reivindicación 11, en el que cuando el primer vídeo es identificado mediante el primer sistema, el primer vídeo comprende contenido principal, y cuando se determina la diferencia de tiempo entre la duración actual del primer vídeo y el primer intervalo de tiempo, el primer vídeo comprende el contenido principal y un anuncio de vídeo, en el que el anuncio de vídeo se transmite en continuo desde un servidor de publicidad.
13. Procedimiento, según las reivindicaciones 9, 10, 11 o 12, comprendiendo, además, el procedimiento: proporcionar una interfaz de usuario de conversación, que incluye un control de invitación a una conversación, a través de la guía electrónica de programas para mostrar en un terminal de usuario;
determinar que un usuario ha activado el control de invitación a una conversación;
por lo menos en parte en respuesta a determinar que el usuario ha activado el control de invitación a una conversación, generar de forma automática por lo menos una parte del mensaje de invitación a una conversación, comprendiendo la parte de la invitación a una conversación texto estático y texto dinámico, en el que el texto dinámico incluye, por lo menos, un nombre de programa, un canal de programa y una información de temporización del programa;
recibir una identificación de un invitado del usuario; y
hacer que la invitación a una conversación, que incluye el texto estático y el texto dinámico, sea proporcionada al invitado.
ES15749508T 2014-02-14 2015-02-13 Procedimientos y sistemas para generar y proporcionar guías de programas y contenido Active ES2725461T3 (es)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US201461940096P 2014-02-14 2014-02-14
PCT/US2015/015902 WO2015123572A1 (en) 2014-02-14 2015-02-13 Methods and systems for generating and providing program guides and content

Publications (1)

Publication Number Publication Date
ES2725461T3 true ES2725461T3 (es) 2019-09-24

Family

ID=53799302

Family Applications (1)

Application Number Title Priority Date Filing Date
ES15749508T Active ES2725461T3 (es) 2014-02-14 2015-02-13 Procedimientos y sistemas para generar y proporcionar guías de programas y contenido

Country Status (6)

Country Link
US (13) US9258589B2 (es)
EP (3) EP3512205A1 (es)
AU (4) AU2015218353A1 (es)
CA (3) CA3125564C (es)
ES (1) ES2725461T3 (es)
WO (1) WO2015123572A1 (es)

Families Citing this family (110)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20170041649A1 (en) * 2011-06-14 2017-02-09 Watchwith, Inc. Supplemental content playback system
US9762967B2 (en) 2011-06-14 2017-09-12 Comcast Cable Communications, Llc System and method for presenting content with time based metadata
US10521188B1 (en) 2012-12-31 2019-12-31 Apple Inc. Multi-user TV user interface
ES2725461T3 (es) 2014-02-14 2019-09-24 Pluto Inc Procedimientos y sistemas para generar y proporcionar guías de programas y contenido
KR20150108028A (ko) * 2014-03-16 2015-09-24 삼성전자주식회사 컨텐츠의 재생 제어 방법 및 이를 수행하기 위한 컨텐츠 재생 장치
US9432477B2 (en) * 2014-03-31 2016-08-30 Zefr, Inc. Identifying matching video content
CN106415475A (zh) 2014-06-24 2017-02-15 苹果公司 用于在用户界面中导航的列界面
CN111078110B (zh) 2014-06-24 2023-10-24 苹果公司 输入设备和用户界面交互
US20160234147A1 (en) * 2014-07-08 2016-08-11 Michele S. Joel Integrated Digital Filtering System
US10185467B2 (en) * 2014-08-28 2019-01-22 Nagravision S.A. Intelligent content queuing from a secondary device
US10104437B2 (en) 2014-08-29 2018-10-16 Google Llc Methods, systems, and media for providing media guidance
US10045088B2 (en) * 2014-09-30 2018-08-07 At&T Intellectual Property I, L.P. Method and apparatus for distributing content locally
US11051075B2 (en) 2014-10-03 2021-06-29 Dish Network L.L.C. Systems and methods for providing bookmarking data
CN112261446B (zh) 2015-01-30 2023-07-18 夏普株式会社 上报信息的方法
DE102015001622A1 (de) * 2015-02-09 2016-08-11 Unify Gmbh & Co. Kg Verfahren zur Übertragung von Daten in einem Multimedia-System, sowie Softwareprodukt und Vorrichtung zur Steuerung der Übertragung von Daten in einem Multimedia-System
US20160234556A1 (en) * 2015-02-11 2016-08-11 Fan Media Network, Inc. System and Method for Organizing, Ranking and Identifying Users as Official Mobile Device Video Correspondents
KR102714483B1 (ko) * 2015-05-26 2024-10-10 엘지전자 주식회사 방송 신호 송신 장치, 방송 신호 수신 장치, 방송 신호 송신 방법, 및 방송 신호 수신 방법
US9872061B2 (en) * 2015-06-20 2018-01-16 Ikorongo Technology, LLC System and device for interacting with a remote presentation
EP3110158A1 (en) * 2015-06-22 2016-12-28 AD Insertion Platform Sarl Method and platform for automatic selection of video sequences to fill a break in a broadcasted program
KR102330552B1 (ko) * 2015-09-09 2021-11-24 엘지전자 주식회사 이동 단말기
US10841462B2 (en) * 2015-10-01 2020-11-17 William BOLLMAN Wireless networked record session device
GB2544106A (en) * 2015-11-06 2017-05-10 Tv Control Ltd Method, system and computer program product for providing a description of a program to a user equipment
US10681169B2 (en) * 2015-12-08 2020-06-09 Facebook, Inc. Social plugin reordering on applications
US20170230712A1 (en) * 2016-02-10 2017-08-10 Sony Corporation System and method for content filtering
US10264314B2 (en) * 2016-04-29 2019-04-16 Pccw Vuclip (Singapore) Pte. Ltd. Multimedia content management system
US10229719B1 (en) * 2016-05-09 2019-03-12 Gopro, Inc. Systems and methods for generating highlights for a video
US20210092482A1 (en) 2016-05-27 2021-03-25 Interdigital Madison Patent Holdings , Sas Method and apparatus for personal multimedia content distribution
US10356480B2 (en) * 2016-07-05 2019-07-16 Pluto Inc. Methods and systems for generating and providing program guides and content
US10911832B2 (en) * 2016-07-25 2021-02-02 Google Llc Methods, systems, and media for facilitating interaction between viewers of a stream of content
US11966560B2 (en) 2016-10-26 2024-04-23 Apple Inc. User interfaces for browsing content from multiple content applications on an electronic device
US10560730B2 (en) * 2016-11-09 2020-02-11 Samsung Electronics Co., Ltd. Electronic apparatus and operating method thereof
US10356479B2 (en) * 2016-12-19 2019-07-16 Hisense Electric Co., Ltd. Device and method for editing channels of smart TV and smart TV
US9900632B1 (en) * 2016-12-30 2018-02-20 Echostar Technologies L.L.C. Viewing suggestions based on closed-captioned content from multiple tuners
US10965967B2 (en) 2016-12-31 2021-03-30 Turner Broadcasting System, Inc. Publishing a disparate per-client live media output stream based on dynamic insertion of targeted non-programming content and customized programming content
US11546400B2 (en) 2016-12-31 2023-01-03 Turner Broadcasting System, Inc. Generating a live media segment asset
US10856016B2 (en) 2016-12-31 2020-12-01 Turner Broadcasting System, Inc. Publishing disparate live media output streams in mixed mode based on user selection
US11038932B2 (en) 2016-12-31 2021-06-15 Turner Broadcasting System, Inc. System for establishing a shared media session for one or more client devices
US11962821B2 (en) 2016-12-31 2024-04-16 Turner Broadcasting System, Inc. Publishing a disparate live media output stream using pre-encoded media assets
US10645462B2 (en) 2016-12-31 2020-05-05 Turner Broadcasting System, Inc. Dynamic channel versioning in a broadcast air chain
US10694231B2 (en) 2016-12-31 2020-06-23 Turner Broadcasting System, Inc. Dynamic channel versioning in a broadcast air chain based on user preferences
US11051074B2 (en) 2016-12-31 2021-06-29 Turner Broadcasting System, Inc. Publishing disparate live media output streams using live input streams
US10992973B2 (en) 2016-12-31 2021-04-27 Turner Broadcasting System, Inc. Publishing a plurality of disparate live media output stream manifests using live input streams and pre-encoded media assets
US11051061B2 (en) 2016-12-31 2021-06-29 Turner Broadcasting System, Inc. Publishing a disparate live media output stream using pre-encoded media assets
US10425700B2 (en) 2016-12-31 2019-09-24 Turner Broadcasting System, Inc. Dynamic scheduling and channel creation based on real-time or near-real-time content context analysis
US12022142B2 (en) 2016-12-31 2024-06-25 Turner Broadcasting System, Inc. Publishing a plurality of disparate live media output stream manifests using live input streams and pre-encoded media assets
US11134309B2 (en) 2016-12-31 2021-09-28 Turner Broadcasting System, Inc. Creation of channels using pre-encoded media assets
US11109086B2 (en) 2016-12-31 2021-08-31 Turner Broadcasting System, Inc. Publishing disparate live media output streams in mixed mode
US11503352B2 (en) * 2016-12-31 2022-11-15 Turner Broadcasting System, Inc. Dynamic scheduling and channel creation based on external data
US10075753B2 (en) * 2016-12-31 2018-09-11 Turner Broadcasting System, Inc. Dynamic scheduling and channel creation based on user selection
CN107105321A (zh) * 2017-04-20 2017-08-29 北京奇艺世纪科技有限公司 一种流媒体的迁移方法和装置
US10827220B2 (en) 2017-05-25 2020-11-03 Turner Broadcasting System, Inc. Client-side playback of personalized media content generated dynamically for event opportunities in programming media content
US10694223B2 (en) * 2017-06-21 2020-06-23 Google Llc Dynamic custom interstitial transition videos for video streaming services
US10338407B2 (en) 2017-06-26 2019-07-02 International Business Machines Corporation Dynamic contextual video capture
US10681104B1 (en) 2017-09-13 2020-06-09 Amazon Technologies, Inc. Handling media timeline offsets
EP3622716B1 (en) 2017-09-14 2021-10-27 Rovi Guides, Inc. Systems and methods for managing user subscriptions to content sources
US10356447B2 (en) 2017-09-25 2019-07-16 Pluto Inc. Methods and systems for determining a video player playback position
US10567828B2 (en) * 2017-12-05 2020-02-18 Silicon Beach Media II, LLC Systems and methods for unified presentation of a smart bar on interfaces including on-demand, live, social or market content
US10817855B2 (en) 2017-12-05 2020-10-27 Silicon Beach Media II, LLC Systems and methods for unified presentation and sharing of on-demand, live, social or market content
US11146845B2 (en) 2017-12-05 2021-10-12 Relola Inc. Systems and methods for unified presentation of synchronized on-demand, live, social or market content
US10783573B2 (en) 2017-12-05 2020-09-22 Silicon Beach Media II, LLC Systems and methods for unified presentation and sharing of on-demand, live, or social activity monitoring content
US10631035B2 (en) 2017-12-05 2020-04-21 Silicon Beach Media II, LLC Systems and methods for unified compensation, presentation, and sharing of on-demand, live, social or market content
US10924809B2 (en) 2017-12-05 2021-02-16 Silicon Beach Media II, Inc. Systems and methods for unified presentation of on-demand, live, social or market content
US10701424B2 (en) * 2018-02-02 2020-06-30 Martell Broadcasting Systems, Inc. Systems and methods of managing video and ad segments in a live stream
US10212467B1 (en) 2018-03-19 2019-02-19 At&T Intellectual Property I, L.P. Method and apparatus for streaming video
US10440414B1 (en) 2018-04-27 2019-10-08 Martell Broadcasting Systems, Inc. Systems and methods of delivering episodic content
US10715848B2 (en) 2018-05-09 2020-07-14 Pluto Inc. Methods and systems for generating and providing program guides and content
US11533527B2 (en) 2018-05-09 2022-12-20 Pluto Inc. Methods and systems for generating and providing program guides and content
US10244279B1 (en) 2018-05-14 2019-03-26 Martell Broadcasting Systems, Inc. Systems and methods of time zone specific scheduling of streaming content
US11388483B2 (en) 2018-05-29 2022-07-12 Martell Broadcasting Systems, Inc. Interaction overlay on video content
US10638180B1 (en) * 2018-07-20 2020-04-28 Amazon Technologies, Inc. Media timeline management
US11095923B1 (en) * 2018-08-31 2021-08-17 Amazon Technologies, Inc. Automatically processing inputs to generate content streams
US11166051B1 (en) 2018-08-31 2021-11-02 Amazon Technologies, Inc. Automatically generating content streams based on subscription criteria
US10623829B2 (en) * 2018-09-07 2020-04-14 Oath Inc. Systems and methods for multimodal multilabel tagging of video
CN109618193B (zh) * 2018-12-18 2021-06-25 北京字节跳动网络技术有限公司 用于处理信息的方法和装置
US11082734B2 (en) 2018-12-21 2021-08-03 Turner Broadcasting System, Inc. Publishing a disparate live media output stream that complies with distribution format regulations
US10880606B2 (en) 2018-12-21 2020-12-29 Turner Broadcasting System, Inc. Disparate live media output stream playout and broadcast distribution
US10873774B2 (en) 2018-12-22 2020-12-22 Turner Broadcasting System, Inc. Publishing a disparate live media output stream manifest that includes one or more media segments corresponding to key events
US10868620B2 (en) * 2018-12-26 2020-12-15 The Nielsen Company (Us), Llc Methods and apparatus for optimizing station reference fingerprint loading using reference watermarks
CN109788322A (zh) * 2019-01-03 2019-05-21 百度在线网络技术(北京)有限公司 视频信息推送方法、装置、设备及存储介质
US11962836B2 (en) 2019-03-24 2024-04-16 Apple Inc. User interfaces for a media browsing application
EP3928526A1 (en) 2019-03-24 2021-12-29 Apple Inc. User interfaces for viewing and accessing content on an electronic device
US11140447B2 (en) 2019-04-30 2021-10-05 Rovi Guides, Inc. Personalized media guide for offline media devices
US11863837B2 (en) 2019-05-31 2024-01-02 Apple Inc. Notification of augmented reality content on an electronic device
CN113906380A (zh) 2019-05-31 2022-01-07 苹果公司 用于播客浏览和回放应用程序的用户界面
US11051057B2 (en) * 2019-06-24 2021-06-29 The Nielsen Company (Us), Llc Use of steganographically-encoded time information as basis to establish a time offset, to facilitate taking content-related action
US11234049B2 (en) * 2019-06-24 2022-01-25 The Nielsen Company (Us), Llc Use of steganographically-encoded time information as basis to control implementation of dynamic content modification
CN110740343B (zh) * 2019-09-11 2022-08-26 深圳壹账通智能科技有限公司 基于视频类型的播放控制实现方法、装置及计算机设备
CN112784075A (zh) * 2019-11-08 2021-05-11 宏碁股份有限公司 播放装置的排程管理方法与排程管理系统
US11178433B2 (en) 2019-11-21 2021-11-16 Pluto Inc. Methods and systems for dynamic routing of content using a static playlist manifest
CN112995759A (zh) * 2019-12-13 2021-06-18 腾讯科技(北京)有限公司 互动业务处理方法、系统、装置、设备及存储介质
US11991419B2 (en) 2020-01-30 2024-05-21 Snap Inc. Selecting avatars to be included in the video being generated on demand
US11284144B2 (en) * 2020-01-30 2022-03-22 Snap Inc. Video generation system to render frames on demand using a fleet of GPUs
US11036781B1 (en) 2020-01-30 2021-06-15 Snap Inc. Video generation system to render frames on demand using a fleet of servers
US11356720B2 (en) 2020-01-30 2022-06-07 Snap Inc. Video generation system to render frames on demand
EP4096798A1 (en) 2020-01-30 2022-12-07 Snap Inc. System for generating media content items on demand
US11457281B2 (en) * 2020-01-31 2022-09-27 Disney Enterprises, Inc. Techniques for generating contextually-relevant recommendations
US11843838B2 (en) 2020-03-24 2023-12-12 Apple Inc. User interfaces for accessing episodes of a content series
US11899895B2 (en) 2020-06-21 2024-02-13 Apple Inc. User interfaces for setting up an electronic device
CN112423061A (zh) * 2020-10-28 2021-02-26 卡莱特(深圳)云科技有限公司 一种节目播放系统
US11720229B2 (en) 2020-12-07 2023-08-08 Apple Inc. User interfaces for browsing and presenting content
US11490167B2 (en) 2020-12-07 2022-11-01 Rovi Guides, Inc. Systems and methods for dynamically syncing from time-shifted frame to live stream of content
US11490153B2 (en) 2020-12-07 2022-11-01 Rovi Guides, Inc. Systems and methods for dynamically syncing from time-shifted frame to live stream of content
US11770588B2 (en) * 2020-12-07 2023-09-26 Rovi Guides, Inc. Systems and methods for dynamically syncing from time-shifted frame to live stream of content
US11934640B2 (en) * 2021-01-29 2024-03-19 Apple Inc. User interfaces for record labels
US11778279B2 (en) * 2021-04-02 2023-10-03 Sony Interactive Entertainment Inc. Social media crowd-sourced discussions
CN113204658A (zh) * 2021-05-27 2021-08-03 北京字跳网络技术有限公司 一种页面显示更新方法、装置、电子设备及存储介质
EP4156698A1 (en) * 2021-09-27 2023-03-29 Pluto Inc. Methods and systems for generating and providing program guides and content
US11509946B1 (en) 2021-11-08 2022-11-22 Pluto Inc. Methods and systems configured to manage video transcoder latencies
CN114866787B (zh) * 2022-07-04 2022-09-23 深圳市必提教育科技有限公司 一种直播实现方法及系统
US12047632B2 (en) 2022-08-11 2024-07-23 Pluto Inc. Content delivery network utilizing dynamically assembled adaptive bitrates segments

Family Cites Families (155)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5446490A (en) * 1992-10-23 1995-08-29 At&T Corp. Interactive television with tailored programming
US5411493A (en) 1993-09-27 1995-05-02 Rodriguez; Victorio C. Sponge bath garment and method for using
AU3381597A (en) 1996-06-06 1998-01-05 E Guide, Inc. Program guide for dbs and cable tv
JPH10303840A (ja) * 1997-04-25 1998-11-13 Sony Corp マルチチャンネル放送システム
US20030088872A1 (en) * 1997-07-03 2003-05-08 Nds Limited Advanced television system
US6378129B1 (en) * 1998-03-30 2002-04-23 International Business Machines Corporation Video server content synchronization
US7603684B1 (en) * 1998-05-19 2009-10-13 United Video Properties, Inc. Program guide system with video-on-demand browsing
CN1867068A (zh) 1998-07-14 2006-11-22 联合视频制品公司 交互式电视节目导视系统及其方法
US6295646B1 (en) * 1998-09-30 2001-09-25 Intel Corporation Method and apparatus for displaying video data and corresponding entertainment data for multiple entertainment selection sources
GB2343051B (en) * 1998-10-23 2002-12-31 Sony Uk Ltd Receiving broadcast material
US20020083439A1 (en) 2000-08-31 2002-06-27 Eldering Charles A. System for rescheduling and inserting advertisements
US7039932B2 (en) 2000-08-31 2006-05-02 Prime Research Alliance E., Inc. Queue-based head-end advertisement scheduling method and apparatus
JP4574858B2 (ja) * 1998-12-23 2010-11-04 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ プログラム再生装置
US20040255336A1 (en) * 1999-03-30 2004-12-16 Gotuit Video, Inc. Methods and apparatus for simultaneous program viewing
JP2003503907A (ja) 1999-06-28 2003-01-28 ユナイテッド ビデオ プロパティーズ, インコーポレイテッド ニッチハブを有する双方向テレビ番組ガイドシステムおよび方法
US7028327B1 (en) 2000-02-02 2006-04-11 Wink Communication Using the electronic program guide to synchronize interactivity with broadcast programs
US8418195B1 (en) * 2000-02-04 2013-04-09 Sprint Communications Company L.P. Advertising insertion for a video-on-demand system
US6423047B1 (en) 2000-06-16 2002-07-23 Patricia Mae Webster Diapers
WO2002009425A1 (en) * 2000-07-25 2002-01-31 Agilevision, L.L.C. Splicing compressed, local video segments into fixed time slots in a network feed
JP2002112142A (ja) * 2000-09-28 2002-04-12 Pioneer Electronic Corp 番組案内装置および番組案内方法
CA2327753C (en) 2001-01-04 2003-04-01 Cindy Nyilas Breast cancer treatment support bra
US6982780B2 (en) 2001-03-02 2006-01-03 Technicolor Digital Cinema, Llc Apparatus and method for building a playlist
US20030058707A1 (en) 2001-09-12 2003-03-27 Dilger Bruce C. System and process for implementing commercial breaks in programming
US7987491B2 (en) 2002-05-10 2011-07-26 Richard Reisman Method and apparatus for browsing using alternative linkbases
US7200611B2 (en) * 2002-05-13 2007-04-03 Microsoft Corporation TV program database
JP2006500811A (ja) * 2002-09-23 2006-01-05 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ ビデオレコーダ装置およびその動作方法
US20040088737A1 (en) 2002-11-04 2004-05-06 Donlan Brian Joseph Method and apparatus for removing client from an interactive TV network
US20040123317A1 (en) 2002-12-19 2004-06-24 Sony Corporation System and method for delivering electronic program guide
IL154674A0 (en) * 2003-02-27 2003-09-17 Method and apparatus for providing cross channel programming through digital television interactive applications
US7694318B2 (en) 2003-03-07 2010-04-06 Technology, Patents & Licensing, Inc. Video detection and insertion
US10664138B2 (en) * 2003-03-14 2020-05-26 Comcast Cable Communications, Llc Providing supplemental content for a second screen experience
US8176517B2 (en) * 2003-11-07 2012-05-08 Thomson Licensing Automatic display of new program information during current program viewing
US8738614B2 (en) 2004-04-23 2014-05-27 Qualcomm Incorporated Methods and apparatus for providing hierarchical content flow in a data network
US9584868B2 (en) 2004-07-30 2017-02-28 Broadband Itv, Inc. Dynamic adjustment of electronic program guide displays based on viewer preferences for minimizing navigation in VOD program selection
US8230456B2 (en) * 2005-01-05 2012-07-24 Yahoo! Inc. Framework for delivering a plurality of content and providing for interaction with the same in a television environment
US20060287915A1 (en) 2005-01-12 2006-12-21 Boulet Daniel A Scheduling content insertion opportunities in a broadcast network
KR101383738B1 (ko) 2005-02-15 2014-04-08 톰슨 라이센싱 디지털 영화를 위한 키 관리 시스템
US8126938B2 (en) * 2005-07-01 2012-02-28 The Invention Science Fund I, Llc Group content substitution in media works
AU2006280105B9 (en) 2005-08-12 2011-08-18 Nokia Solutions And Networks Gmbh & Co. Kg A multi-source and resilient video on demand streaming system for a peer-to-peer subscriber community
BRPI0618019A2 (pt) 2005-10-28 2011-08-16 Directv Group Inc método para seletivamente exibir sinal de televisão, infra-estrutura, sistema para seletivamente exibir programa de vìdeo
US9113107B2 (en) 2005-11-08 2015-08-18 Rovi Guides, Inc. Interactive advertising and program promotion in an interactive television system
US20070174125A1 (en) 2006-01-25 2007-07-26 Broadband Royalty Corporation Targeted ad insertion
US8132208B2 (en) 2006-02-10 2012-03-06 Cox Communications, Inc. Presenting a television services program guide information as a video mosaic
US9554093B2 (en) 2006-02-27 2017-01-24 Microsoft Technology Licensing, Llc Automatically inserting advertisements into source video content playback streams
US7913280B1 (en) * 2006-03-24 2011-03-22 Qurio Holdings, Inc. System and method for creating and managing custom media channels
US8069461B2 (en) 2006-03-30 2011-11-29 Verizon Services Corp. On-screen program guide with interactive programming recommendations
US8612619B2 (en) 2006-03-31 2013-12-17 Alcatel Lucent Method and apparatus for improved multicast streaming in wireless networks
US20070294710A1 (en) 2006-06-19 2007-12-20 Alps Automotive Inc. Simple bluetooth software development kit
WO2008007274A2 (en) * 2006-07-04 2008-01-17 Koninklijke Philips Electronics N.V. Method of content substitution
US20080040743A1 (en) 2006-07-29 2008-02-14 Srinivasa Dharmaji Micro-splicer for inserting alternate content to a content stream on a handheld device
US8522269B2 (en) 2006-08-22 2013-08-27 Goldspot Media, Inc. Method and apparatus for alternate content scheduling on mobile devices
US20080114880A1 (en) 2006-11-14 2008-05-15 Fabrice Jogand-Coulomb System for connecting to a network location associated with content
CN101193282A (zh) * 2006-11-27 2008-06-04 中兴通讯股份有限公司 一种移动流媒体节目的播放方法
US9038110B2 (en) 2006-11-28 2015-05-19 Verizon Patent And Licensing Inc. System and method for viewing a TV program guide on a mobile device background
US8479230B2 (en) 2006-12-19 2013-07-02 At&T Intellectual Property I, Lp System and apparatus for managing media content
KR20090004398A (ko) 2007-01-02 2009-01-12 주식회사 셀런 스트리밍 환경에서 피드백 채널을 사용하지 않고 사용자의시청 패턴에 따른 광고 서비스 방법 및 시스템
US7751807B2 (en) 2007-02-12 2010-07-06 Oomble, Inc. Method and system for a hosted mobile management service architecture
US8955030B2 (en) * 2007-03-23 2015-02-10 Wi-Lan, Inc. System and method for personal content access
US8516515B2 (en) 2007-04-03 2013-08-20 Google Inc. Impression based television advertising
US20080259222A1 (en) 2007-04-19 2008-10-23 Sony Corporation Providing Information Related to Video Content
US20080270382A1 (en) 2007-04-24 2008-10-30 Interse A/S System and Method of Personalizing Information Object Searches
US20080271078A1 (en) * 2007-04-30 2008-10-30 Google Inc. Momentary Electronic Program Guide
US8572649B1 (en) * 2007-04-30 2013-10-29 Google Inc. Electronic program guide presentation
US8631440B2 (en) * 2007-04-30 2014-01-14 Google Inc. Program guide user interface
US8782698B2 (en) * 2007-04-30 2014-07-15 Google Inc. Customizable media channels
US8533761B1 (en) * 2007-04-30 2013-09-10 Google Inc. Aggregating media information
US8005826B1 (en) * 2007-04-30 2011-08-23 Google Inc. Identifying media content in queries
US20080306818A1 (en) 2007-06-08 2008-12-11 Qurio Holdings, Inc. Multi-client streamer with late binding of ad content
US8433611B2 (en) 2007-06-27 2013-04-30 Google Inc. Selection of advertisements for placement with content
EP2034640A1 (en) * 2007-09-07 2009-03-11 Advanced Digital Broadcast S.A. Method for scheduling content items and television system with aided content selection
US9412125B2 (en) 2007-09-12 2016-08-09 Sony Corporation Open market content distribution
CN101146110B (zh) * 2007-09-25 2011-06-29 深圳市迅雷网络技术有限公司 一种播放流媒体的方法
US20090133054A1 (en) * 2007-11-16 2009-05-21 Matthew Thomas Boggie Presentation of auxiliary content via a content presentation device
US20090133090A1 (en) 2007-11-19 2009-05-21 Verizon Data Services Inc. Method and system of providing content management for a set-top box
US8069459B2 (en) 2007-12-28 2011-11-29 Bce Inc. Method, apparatus and computer-readable medium for promoting television programs
US9111286B2 (en) 2008-02-01 2015-08-18 Qualcomm, Incorporated Multiple actions and icons for mobile advertising
US8140390B2 (en) 2008-02-12 2012-03-20 At&T Intellectual Property I, Lp System and method for displaying partial advertising data during trick play
US20090217316A1 (en) 2008-02-22 2009-08-27 Binita Gupta Systems and Methods for Advertising Insertion Notification in a Real-Time Streaming Media Service
US8769572B2 (en) 2008-03-24 2014-07-01 Verizon Patent And Licensing Inc. System and method for providing an interactive program guide having date and time toolbars
US9258326B2 (en) 2008-04-02 2016-02-09 Yougetitback Limited API for auxiliary interface
US20100138298A1 (en) 2008-04-02 2010-06-03 William Fitzgerald System for advertising integration with auxiliary interface
US8886745B2 (en) * 2008-04-07 2014-11-11 Qualcomm Incorporated Methods and apparatus for delivering auxiliary data to device
US20090259711A1 (en) 2008-04-11 2009-10-15 Apple Inc. Synchronization of Media State Across Multiple Devices
US9083853B2 (en) 2008-06-02 2015-07-14 Intent IQ, LLC Targeted television advertisements associated with online users' preferred television programs or channels
US20090327346A1 (en) 2008-06-30 2009-12-31 Nokia Corporation Specifying media content placement criteria
US20100021512A1 (en) 2008-07-24 2010-01-28 Stanley Arron Incontinence garments with a silver lining infection stopper
US8826443B1 (en) * 2008-09-18 2014-09-02 Symantec Corporation Selective removal of protected content from web requests sent to an interactive website
US8260877B2 (en) * 2008-12-31 2012-09-04 Apple Inc. Variant streams for real-time or near real-time streaming to provide failover protection
US20100169303A1 (en) * 2008-12-31 2010-07-01 David Biderman Playlists for real-time or near real-time streaming
US9955107B2 (en) * 2009-04-23 2018-04-24 Arris Enterprises Llc Digital video recorder recording and rendering programs formed from spliced segments
US9521437B2 (en) * 2009-06-17 2016-12-13 Google Technology Holdings LLC Insertion of recorded secondary digital video content during playback of primary digital video content
EP2302536A1 (en) * 2009-09-21 2011-03-30 Thomson Licensing System and method for automatically verifying storage of redundant contents into communication equipments, by data comparison
US8745023B2 (en) * 2009-10-28 2014-06-03 Louis H. Libin System and method for content browsing using a non-realtime connection
US8756646B2 (en) * 2009-11-25 2014-06-17 Centurylink Intellectual Property Llc System and method for the exchange and storage of set-top box data
US8312500B2 (en) * 2009-11-25 2012-11-13 Century Link Intellectual Property LLC System and method for social network chat via a set-top box
US8259719B2 (en) * 2009-12-18 2012-09-04 Alcatel Lucent Method and apparatus for imposing preferences on broadcast/multicast service
US20110153423A1 (en) 2010-06-21 2011-06-23 Jon Elvekrog Method and system for creating user based summaries for content distribution
US8707182B2 (en) 2010-01-20 2014-04-22 Verizon Patent And Licensing Inc. Methods and systems for dynamically inserting an advertisement into a playback of a recorded media content instance
JP5833034B2 (ja) * 2010-02-26 2015-12-16 トムソン ライセンシングThomson Licensing 電子番組ガイドをポーズされた番組と同期させるシステム及び方法
JP2011228969A (ja) * 2010-04-21 2011-11-10 Hitachi Consumer Electronics Co Ltd 映像処理装置
US20110264522A1 (en) 2010-04-26 2011-10-27 Webjuice, LLC Direct targeting of advertisements to social connections in a social network environment
US20130305285A1 (en) 2010-05-28 2013-11-14 Liberty Global Europe Holding B.V. Electronic program guide supporting on-demand tv content
WO2012051539A2 (en) 2010-10-14 2012-04-19 Cyandia, Inc. Methods, apparatus, and systems for presenting television programming and related information
US8776121B2 (en) * 2010-11-03 2014-07-08 Google Inc. Social aspects of media guides
US20120116869A1 (en) 2010-11-08 2012-05-10 Motorola-Mobility, Inc. Coordinating advertising among user devices
US9301020B2 (en) 2010-11-30 2016-03-29 Google Technology Holdings LLC Method of targeted ad insertion using HTTP live streaming protocol
US8984564B2 (en) 2010-12-10 2015-03-17 Spreadtrum Communications (Shanghai) Co., Ltd. Method and system for dynamically inserting content information into a mobile TV application
US8863185B2 (en) * 2011-01-04 2014-10-14 Verizon Patent And Licensing Inc. Social television
US8769576B2 (en) * 2011-04-01 2014-07-01 Mixaroo, Inc. System and method for real-time processing, storage, indexing, and delivery of segmented video
JP5175950B2 (ja) * 2011-04-20 2013-04-03 株式会社東芝 ビデオサーバ及び送出スタンバイ方法
KR101926891B1 (ko) 2011-05-05 2018-12-07 톰슨 라이센싱 광고의 동적 할당
US9112623B2 (en) 2011-06-06 2015-08-18 Comcast Cable Communications, Llc Asynchronous interaction at specific points in content
US8554049B2 (en) * 2011-12-28 2013-10-08 United Video Properties, Inc. Systems and methods for synchronizing playback at multiple locations
US20130173742A1 (en) 2011-12-28 2013-07-04 United Video Properties, Inc. Systems and methods for latency-based synchronized playback at multiple locations
JP2015509319A (ja) 2012-01-05 2015-03-26 トムソン ライセンシングThomson Licensing ビデオおよび/またはオーディオのオンデマンド資産を使用したメディアコンテンツ配信のための方法
US8544724B2 (en) 2012-01-06 2013-10-01 Seachange International, Inc. Systems and methods for associating a mobile electronic device with a preexisting subscriber account
KR101895990B1 (ko) * 2012-01-27 2018-10-18 삼성전자주식회사 방송 수신 장치 및 방법
US9955113B2 (en) * 2012-03-08 2018-04-24 Verizon Patent And Licensing Inc. Method and apparatus for injecting program markers in live media streams
US8713606B2 (en) * 2012-05-14 2014-04-29 United Video Properties, Inc. Systems and methods for generating a user profile based customized media guide with user-generated content and non-user-generated content
US8819738B2 (en) * 2012-05-16 2014-08-26 Yottio, Inc. System and method for real-time composite broadcast with moderation mechanism for multiple media feeds
US8984559B2 (en) 2012-06-11 2015-03-17 Google Inc. Personalized auto-generated electronic programming guide for content delivery platforms
US20130347018A1 (en) 2012-06-21 2013-12-26 Amazon Technologies, Inc. Providing supplemental content with active media
GB2503878A (en) * 2012-07-09 2014-01-15 Nds Ltd Generating interstitial scripts for video content, based on metadata related to the video content
US8732745B2 (en) 2012-10-22 2014-05-20 Sony Corporation Method and system for inserting an advertisement in a media stream
US9215489B2 (en) * 2012-11-30 2015-12-15 The Nielson Company (Us), Llc Custom electronic program guides
US9781476B2 (en) * 2012-12-31 2017-10-03 Echostar Technologies L.L.C. Automatic learning channel customized to a particular viewer and method of creating same
US20140245351A1 (en) * 2013-02-22 2014-08-28 Glen Ford System For Booking Television Programs
US20140282677A1 (en) 2013-03-12 2014-09-18 Cbs Interactive Inc. Second screen application linked to media content delivery
US9197947B2 (en) * 2013-03-14 2015-11-24 Arris Technology, Inc. Devices and methods for dynamic video processing
US9661380B2 (en) 2013-03-15 2017-05-23 Echostar Technologies L.L.C. Television content management with integrated third party interface
US9002991B2 (en) * 2013-04-06 2015-04-07 Miranda Technologies Partnership System and methods for cloud-based media play out
US9021518B2 (en) * 2013-05-21 2015-04-28 Richard H. Theriault System to avoid viewing commercials in real time
KR20160021132A (ko) 2013-06-19 2016-02-24 톰슨 라이센싱 사용자들에 대한 제스처 기반 광고 프로파일들
GB201316196D0 (en) 2013-09-11 2013-10-23 Piksel Inc Triggering an action in a computer device
WO2015036618A1 (en) 2013-09-16 2015-03-19 INSERM (Institut National de la Santé et de la Recherche Médicale) Method and pharmaceutical composition for use in the treatment of epilepsy
US9578357B2 (en) * 2013-10-21 2017-02-21 Time Warner Cable Enterprises Llc Trending analysis, notification, and control in a network
US9686581B2 (en) 2013-11-07 2017-06-20 Cisco Technology, Inc. Second-screen TV bridge
US9456237B2 (en) * 2013-12-31 2016-09-27 Google Inc. Methods, systems, and media for presenting supplemental information corresponding to on-demand media content
ES2725461T3 (es) 2014-02-14 2019-09-24 Pluto Inc Procedimientos y sistemas para generar y proporcionar guías de programas y contenido
KR20150107464A (ko) 2014-03-14 2015-09-23 삼성전자주식회사 컨텐츠 처리 장치 및 그 이벤트 제공 방법
US10902474B2 (en) 2014-03-24 2021-01-26 Qualcomm Incorporated Targeted advertisement insertion for streaming media data
US20150310498A1 (en) 2014-04-29 2015-10-29 Jeffrey D. Brandstetter Computer-Implemented Systems and Methods for Generating Media Content Recommendations for Subsequent Works
US9788036B2 (en) 2014-06-06 2017-10-10 Echostar Technologies L.L.C. Customized channel
US9584874B1 (en) 2014-06-16 2017-02-28 Juan José Farías Portal for collection and distribution of web-based audiovisual content blocks and creation of audience statistics
US9819983B2 (en) * 2014-10-20 2017-11-14 Nbcuniversal Media, Llc Multi-dimensional digital content selection system and method
US20160182951A1 (en) 2014-12-23 2016-06-23 Sling Media Pvt Ltd Automatic "return to program" feature for a video delivery system
US20170085962A1 (en) 2015-09-18 2017-03-23 Rovi Guides, Inc. Methods and systems for measuring efficiency of retargeting across platforms
US10104445B2 (en) 2016-04-01 2018-10-16 Rovi Guides, Inc. Systems and methods for providing a playlist of user-relevant content for playback in place of advertisement content
US10860950B2 (en) 2016-08-31 2020-12-08 Sas Institute Inc. Automated computer-based model development, deployment, and management
US10681431B2 (en) 2017-02-02 2020-06-09 Cisco Technology, Inc. Real-time interstitial content resolution and trick mode restrictions
US10360193B2 (en) 2017-03-24 2019-07-23 Western Digital Technologies, Inc. Method and apparatus for smart archiving and analytics
US10846735B2 (en) 2017-10-17 2020-11-24 Vungle, Inc. Advertisement templates for in-application dynamic advertisement creation
WO2019143738A1 (en) 2018-01-19 2019-07-25 Vungle, Inc. Dynamic content generation based on response data
US10820066B2 (en) 2018-06-20 2020-10-27 Cisco Technology, Inc. Reconciling ABR segments across redundant sites
US10701419B2 (en) 2018-09-11 2020-06-30 Comcast Cable Communications, Llc Managing concurrent content playback

Also Published As

Publication number Publication date
US10231018B2 (en) 2019-03-12
CA3125558A1 (en) 2015-08-20
EP3105934A4 (en) 2017-09-06
US12075120B2 (en) 2024-08-27
EP4040795A1 (en) 2022-08-10
AU2019257479B2 (en) 2021-03-04
EP3105934B1 (en) 2019-04-03
EP3105934B8 (en) 2020-12-30
US20160323650A1 (en) 2016-11-03
AU2019257479A1 (en) 2019-11-21
US20160127793A1 (en) 2016-05-05
US11659244B2 (en) 2023-05-23
US20220303624A1 (en) 2022-09-22
US20150237389A1 (en) 2015-08-20
CA2939215C (en) 2022-03-29
US11627375B2 (en) 2023-04-11
US9699515B2 (en) 2017-07-04
US20210044869A1 (en) 2021-02-11
AU2021203490A1 (en) 2021-06-24
AU2015218353A1 (en) 2016-09-01
US11659245B2 (en) 2023-05-23
AU2021203490B2 (en) 2022-12-22
EP3512205A1 (en) 2019-07-17
US20180262805A1 (en) 2018-09-13
CA3125564C (en) 2023-08-22
CA2939215A1 (en) 2015-08-20
AU2023201517B2 (en) 2024-06-13
US9258589B2 (en) 2016-02-09
US20200177959A1 (en) 2020-06-04
US20220303623A1 (en) 2022-09-22
US20170324995A1 (en) 2017-11-09
US20190208274A1 (en) 2019-07-04
CA3125558C (en) 2023-09-26
US11395038B2 (en) 2022-07-19
EP3105934A1 (en) 2016-12-21
AU2023201517A1 (en) 2023-04-13
US10560746B2 (en) 2020-02-11
US9712884B2 (en) 2017-07-18
US10939168B2 (en) 2021-03-02
US20230254537A1 (en) 2023-08-10
WO2015123572A1 (en) 2015-08-20
US20210168452A1 (en) 2021-06-03
US20220295147A1 (en) 2022-09-15
CA3125564A1 (en) 2015-08-20
US9998787B2 (en) 2018-06-12
US11265604B2 (en) 2022-03-01

Similar Documents

Publication Publication Date Title
ES2725461T3 (es) Procedimientos y sistemas para generar y proporcionar guías de programas y contenido
US10356480B2 (en) Methods and systems for generating and providing program guides and content