Muchos nos han escrito con la finalidad de que les ayudemos a emitir a través de Facebook Live con contadores de reacciones en tiempo real utilizando linux, para los que no lo saben, es un boom que se está manifestando en esta red social, donde se convierte cada reacción en un número que luego sumado a otros genera un contador.
En búsqueda de dar una solución a la necesidad de algunos usuarios, he estado investigando y conseguí un excelente script y guía de uso llamado Facebook Live Reactions, que cumple con este objetivo y utiliza un servidor linux para funcionar. Me he dado la tarea de traducir, mejorar y añadir las instalaciones de las dependencias del script, para que todos ustedes puedan disfrutarlo.
¿Qué es Facebook Live Reactions?
Facebook Live Reactions, es un script de código abierto hecho en php, que permite crear Facebook Live Streams con contadores de reacciones en tiempo real. También incluye una función interactiva que da shoutouts en vivo a los usuarios que escribieron «shared» en el cuadro de comentarios.
De igual manera, posee una serie de shoutouts predeterminados que se pueden configurar, los cuáles se muestran en la pantalla, con la cuenta de la fan page. El repositorio original de este script lo puedes conseguir acá.
Instalando Dependencias de Facebook Live Reactions
- Linux / OSX (Para las pruebas utilicé Ubuntu 14.04 en Servidor EC2 de Amazon AWS).
- PHP 7+ ( aunque el desarrollador dice que debería funcionar en 5.6, pero a mi no me funcionó).
$ sudo add-apt-repository ppa:ondrej/php $ sudo apt-get update $ sudo apt-get install php7.0
- PHP GD o ImageMagik (Yo utilicé PGP GD para php 7.0)
$ sudo apt-get install php7.0-gd
- FFMPEG
$ sudo add-apt-repository ppa:mc3man/trusty-media $ sudo apt-get update $ sudo apt-get install ffmpeg
- composer
$ sudo apt-get install curl $ curl -sS https://getcomposer.org/installer | php $ sudo mv ~/composer.phar /usr/local/bin/composer
- Inkscape (Si desea modificar la imagen).*
- youtube-dl (Para descargar el audio de la transmisión, puedes usar el audio que desees, la transmisión durará el tiempo que dure el audio.*
- sox (para generar un nuevo archivo audio, con la repetición del audio original n cantidad de veces).*
$ sudo apt-get install sox libsox-fmt-all
Instalando Facebook Live Reactions
Puedes instalarlo tanto en tu computadora, como en un servidor. Yo recomiendo
Clonar el repositorio
git clone http://github.com/JamesTheHacker/facebook-live-reactions
cd facebook-live-reactions
Instalar las dependencias con composer
composer install
Configurando Facebook Live Reactions
Para que Facebook Live Reactions pueda transmitir correctamente, debemos realizar las siguientes configuraciones:
Añadiendo audio al archivo
Facebook Live requiere un stream de audio, el cual no se ha incluido en el repositorio, ya que aumentaría el tamaño. El archivo de audio debe tener un máximo de 4 horas de duración (Los stream en vido de Facebook sólo pueden durar 4 horas). Si el archivo de audio es de menos duración, la transmisión se detendrá cuando finalice el audio.
Con la ayuda de youtube-dl podemos descargar el audio de un vídeo de youtube:
youtube-dl --extract-audio --audio-format mp3 https://www.youtube.com/watch?v=15uF7r2rCQk
Esto descargará un .mp3
del video. En este caso música para aumentar la concentración mientras se programa.
Renombramos el audio descargado a audio.mp3
mv "Concentration Programming Music-0r6C3z3TEKw.mp3" audio.mp3
El audio tiene una duración de poco más de una hora. Si necesita que el audio sea de 4 horas, tenemos que producir un nuevo audio ciclico, con la ayuda de SoX.
sox audio.mp3 audio-loop.mp3 repeat 4
Esto tardará un poco en producir el nuevo audio audio-loop.mp3
. Copie audio-loop.mp3
en el directorio data
.
Editando la configuración
Antes de modificar los ajustes, debe crear una aplicación de Facebook, en el caso que no tengas una, puedes crearla desde aquí. La aplicación se utiliza para conectarse a la Graph API para obtener las reacciones y los comentarios del vídeo. Al configurar la aplicación sólo necesita proporcionar información básica.
Todos los ajustes se almacenan en el archivo settings.php
. Para que el script funcione, sólo tendrá que modificar los siguientes campos:
'POST_ID' => '',
'ACCESS_TOKEN' => '',
'APP_ID' => '',
'APP_SECRET' => ''
Una vez que tengas configurada la aplicación, debes obtener el ‘ACCES_TOKEN‘, lo cual puedes hacerlo desde el Access Token Tool. Ingrese el la información en el campo correspondiente, en conjunto con el app ID y el app secret.
El POST_ID
puede ser ignorado, ya que lo obtendremos cuando creemos la transmisión en vivo.
Creando la transmisión en vivo
Luego de tener configurado el script, debe crear una nueva transmisión en directo en Facebook. Vaya a una página de facebook, pulse la pestaña «Herramientas de publicación» y, a continuación, haga clic en «Vídeos«. Presione el botón «En Vivo» y espere a que el popup se cargue.
A continuación debe ver el campo «URL del servidor o de transmisión«. Copie esta URL y pégala al final del archivo fblive.sh
. Debes colocarlo dentro de las comillas "..."
ffmpeg \
-re -y \
-loop 1 \
-f image2 \
-i images/stream.jpg \
-i data/audio-loop.mp3 \
-acodec libfdk_aac \
-ac 1 \
-ar 44100 \
-b:a 128k \
-vcodec libx264 \
-pix_fmt yuv420p \
-vf scale=640:480 \
-r 30 \
-g 60 \
-f flv \
"rtmp://rtmp-api.facebook.com:80/rtmp/1343774358979842?ds=1&s_l=1&a=AaaWtwcn05wdmMCp"
Abra un nuevo terminal, navegue hasta el directorio root y ejecute los siguientes comandos:
cd ~ chmod +x fblive.sh ./fblive.sh
Esto iniciará la transmisión. Presione el botón «siguiente» y espere a que Facebook reconozca la transmisión en vivo.
De forma predeterminada, se reproducirá una imagen en blanco. No verás las reacciones o shoutouts todavía. Esto es porque todavía no hemos iniciado el otro script para actualizar la imagen.
Una vez que el stream se carga en la vista preliminar, presiona «Transmitir». Debería aparecer otro popups que contenga estadísticas de vídeo. En esta página hay un enlace «ver enlace permanente». Haga clic y te llevará a la publicación de Facebook que contiene la transmisión en vivo.
En la URL hay un ID único que consiste en un montón de números. Copia este ID y pégalo en settings.php
, en el campo correspondiente a ‘POST_ID‘:
'POST_ID' => '90823402348502302894',
Con esto esta todo casi terminado.
Actualizando las reacciones y los Shoutouts
Abra otro terminal, vaya al directorio raíz y ejecute el siguiente comando:
php fblive.php
Esto se ejecutará en silencio. ¡No pares el proceso! Cada 5 segundos contabiliza las reacciones y actualiza la transmisión en vivo. También tomará el último comentario que contenga la palabra «share» y le dará un shoutout aleatorio a ese usuario.
Todo listo, la transmisión debería estar en vio. Deje una reacción, o escriba la palabra «shared» en el comentario y espere a que el video se actualice.
¿Cómo modificar los Shoutouts predeterminados?
Algo que podemos modificar es los shoutouts que viene por defecto y que se muestran en la imagen como si la fanpage lo escribiera. Para ello basta con modificar el archivo settings.php
procura utilizar frases cortas, para que se pueda mostrar correctamente en la imagen.
Siguiendo todos estos pasos, vamos a poder transmitir una imagen con un audio de fondo, donde se verá reflejada las reacciones que tenga el vídeo. Es un proceso rapido y sencillo, que puede tener muchos usos.