Agregar mas info del programa y weas

This commit is contained in:
Fijxu 2022-11-10 20:54:33 -03:00
parent 5516581323
commit 79e14df285
2 changed files with 75 additions and 27 deletions

100
README.md
View file

@ -1,30 +1,50 @@
# TwitchToYoutube
Utilidad hecha en bash para subir streams de twitch directamente a youtube. Usando [streamlink](https://github.com/streamlink/streamlink), [youtubeuploader](https://github.com/porjo/youtubeuploader) y cURL
Lo recomendado para usar este programa es tener un servidor o una PC que tenga un internet estable y este encendido 24/7.
# Funciones
- Subir streams de forma continua y directa a Youtube (Si el VOD es borrado, estará subido).
- Inserta el Titulo, el nombre del streamer y la fecha del stream dentro del titulo de youtube, Incluyendo la hora exacta en la que se empezó stream dentro de la descripción.
- Detecta el stream de forma automática (usando la API de twitch), de forma que si el streamer empieza stream, lo detectara y empezara a subirlo a YouTube
# Como usarlo [INCOMPLETO]
Este codigo solo funciona para Linux, y tal vez para MacOs.
***IMPORTANTE:
Este código solo funciona para Linux o Unix-Like OS como BSD***
Primero que nada clonar el repo(tienen que tener `git` instalado) con:
Clonar el repo con:
```sh
git clone https://git.zzls.xyz/Fijxu/TwitchToYoutube
```
El resto de esta guia esta separada en diferentes partes
O descargando el .zip desde aca -> https://git.zzls.xyz/Fijxu/TwitchToYoutube/archive/main.zip
1. [Crear una Aplicación de twitch](#crear-una-aplicacion-de-twitch)
2. [Conseguir los tokens de twitch](#conseguir-los-tokens-de-twitch)
3. [Configurar youtubeuploader](#configurar-youtubeuploader)
4. [Ejecutar](#ejecutar)
Luego descomprimes el .zip donde quieras
## Crear una Aplicacion de twitch
El resto de esta guía esta separada en diferentes partes:
- Primero tienen que ir a la [pagina de devs de twitch](https://dev.twitch.tv/).
- Darle a `Log in with Twitch` arriba a la derecha.
- Luego de aceptar denle a `Your console`.
- [Como usarlo [INCOMPLETO]](#como-usarlo-incompleto)
- [Crear una Aplicación de twitch](#crear-una-aplicaci%C3%B3n-de-twitch)
- [Conseguir los tokens de twitch](#conseguir-los-tokens-de-twitch)
- [Configurar youtubeuploader](#configurar-youtubeuploader)
- [Ejecutar](#ejecutar)
## Crear una Aplicación de twitch
- Primero tienen que ingresar a la [pagina de devs de twitch](https://dev.twitch.tv/).
- Darle a `Ingresar con Twitch` arriba a la derecha.
- Luego de aceptar denle a `Tu consola`.
- Click a `Registrar tu aplicación`.
- En url tienen que poner `http://localhost`, el resto no es importante
- Le dan a `crear`
- Despues al boton junto con la aplicacion que dice `Administrar`
- Se guardan el campo que dice `ID de cliente` y crean un nuevo secreto de cliente, tambien se lo guardan para los pasos siguientes
- Le dan a `Crear`
- Después al botón junto con la aplicación que dice `Administrar`
- Guardan el campo que dice `ID de cliente` y crean un nuevo secreto de cliente, esté también lo guardan para los siguientes pasos.
## Conseguir los tokens de twitch
@ -40,51 +60,79 @@ curl --request POST 'https://id.twitch.tv/oauth2/token' \
}'
```
- les va a responder algo como `{"access_token":"TOKEN",...}`, ese access_token es el que tienen que poner en el campo `twitchauth` del archivo `config.sh` y en `clientid` ponen el id de cliente que usaron antes
- Les va a responder algo como `{"access_token":"TOKEN",...}`, ese access_token es el que tienen que poner en el campo `twitchauth` del archivo `config.sh` y en `clientid` ponen el id de cliente que usaron antes tal que quede algo así dentro del archivo:
```bash
#!/bin/bash
# Autorización de twitch (https://dev.twitch.tv/docs/authentication)
export twitchauth="u7vgESCjSchPAQHxFpMDhHD76iIAMr"
# ID del cliente de twitch
export clientid="hIvIJE6G1vQQhIIYfCg5hiw1wyXCXB"
```
## Configurar youtubeuploader
- Descargar la ultima release de [youtubeuploader](https://github.com/porjo/youtubeuploader) para su sistema. (a no ser que tengan linux en una mac o algo raro, tienen que descargar el que termina con Linux_x86_64.tar.gz )
1. Descargar la ultima versión de [youtubeuploader](https://github.com/porjo/youtubeuploader)
- Descomprimir el archivo descargado
2. **Descomprimir el archivo descargado**
```sh
tar -xzvf youtubeuploader_22.04_Linux_x86_64.tar.gz
```
- Mover el binario a la carpeta `~/.local/bin`
3. **Mover el binario (youtubeuploader) a la carpeta `~/.local/bin`**
```sh
mv youtubeuploader ~/.local/bin
```
- Crear la carpeta de configuracion
4. Abre otra consola y asegúrate de que youtubeuploader se pueda ejecutar correctamente con el comando `youtubeuploader` en la consola, si dice que el comando es desconocido, copia esto dentro de el archivo `.bashrc` o `.zshrc` que se encuentra en el directorio home (/home/TUNOMBREDEUSUARIO):
```sh
mkdir ~/.config/youtubeuploader
```bash
if [ -d "$HOME/.local/bin" ] ;
then PATH="$HOME/.local/bin:$PATH"
fi
```
(**Que hacen estas lineas?**: Si el directorio `~/.local/bin` existe, lo cargara en la variable `$PATH` y eso hará que los programas que estén dentro de esa carpeta puedan ser usados solo con usar el nombre del programa en la consola)
- Seguir [estas](https://github.com/porjo/youtubeuploader#Youtube-API) instrucciones y el archivo `client_secrets.json` guardarlo en la carpeta `~/.config/youtubeuploader/` que creamos antes (no se olviden de agregar **la cuenta que quieren usar para subir los videos** como test user)
- La herramienta `youtubeuploader` no esta del todo pulida y para que funcione tienen que primero intentar subir un video a youtube con ella. Se les abre el navegador y tienen que autorizar a la aplicacion con la **misma** cuenta que agregaron en el paso anterior (el video se sube en privado por defecto)
5. Seguir [estas](https://github.com/porjo/youtubeuploader#Youtube-API) instrucciones. (Si piensas que esto necesita documentación o más información en español dentro de este repositorio, abre una Incidencia/Issue)
6. Una vez ya tengas el archivo `client_secrets.json` guardarlo en la misma carpeta donde se encuentra `twtoyt.sh`
- La herramienta `youtubeuploader` no esta del todo pulida y para que funcione tienen que primero intentar subir un video a youtube con ella. Se les abre el navegador y tienen que autorizar a la aplicación con la **misma** cuenta que agregaron en el paso anterior (el video se sube en privado por defecto)
- Para eso, ejecuten este comando, cambien `tuVideo` por el nombre del video que quieran subir
```sh
youtubeuploader -filename tuVideo.mp4
```
- Se les va a generar un archivo `request.token` en el directorio actual, guardenlo en la carpeta de este repo junto a los archivos `twtoyt.sh` y `config.sh`. Si quieren usarlo en un servidor donde no tengan monitor (el 99% de los casos) van a tener que copiar los archivos `request.token` y `client_secrets.json` al servidor en las carpetas correspondientes.
- Se les va a generar un archivo `request.token` en el directorio actual, guárdenlo en la carpeta donde se ubican `twtoyt.sh` y `config.sh`.
## Ejecutar
Con esto ya deberian de tener todo lo necesario para correr el script, simplemente denle permisos de ejecucion al script con
Con esto ya deberían de tener todo lo necesario para correr el script. Ahora puedes ejecutar este comando dentro de la carpeta donde descargaste el programa para que no tenga ningún problema al tratar de ejecutarlo:
```sh
chmod +x twtoyt.sh
```
y corranlo con
También puedes crear diferentes copias de este mismo archivo con diferentes nombres de canales.
**Es necesario modificar la variable `TWITCH_USER` dentro del archivo, ahí se coloca el nombre del streamer de twitch y este se usara para el titulo y el nombre de la playlist**
**Luego cambia la descripción dentro de la variable `VIDEO_DESCRIPTION` si es que lo consideras necesario.**
Y finalmente ejecútalo con este comando.
```sh
./twtoyt.sh
```
Para dejarlo en segundo plano, puedes usar `tmux`, un programa bastante util para dejar corriendo programas en segundo plano de manera manual.
### Autor y repo original
https://github.com/jenslys/autovod/

View file

@ -11,7 +11,7 @@ TWITCH_USER=""
while true; do
TIME_DATE=[$(date +"%d/%m/%y")] # Ejemplo de como saldria: [31/12/22]
VIDEO_VISIBILITY="public" #* Opciones: unlisted, private, public
VIDEO_DESCRIPTION="Hosteado por Fijxu. https://twitch.tv/$TWITCH_USER \n Fecha y hora: $(date +"%H:%M %d/%m/%y") \n Donaciones: https://ko-fi.com/fijxu" # Descripción del video
VIDEO_DESCRIPTION="Hosteado por Fijxu. https://twitch.tv/$TWITCH_USER \nFecha y hora: $(date +"A las %H:%M horas, día %d/%m/%y") \nDonaciones: https://ko-fi.com/fijxu \nSi eres el streamer que aparece en el VOD y por alguna razon necesitas ocultar o recuperar (nunca borrare los VODs, eso va en contra de mi objetivo, aunque pueden haber excepciones) el VOD, puedes dejar un comentario, enviar un mensaje por Twitch @fijxu o usando el correo de contacto del canal. \n \nEste es un proyecto de caracter personal, me gusta archivar streams de twitch para que nada se pierda, y que todos puedan volver a ver streams del pasado sin problemas. 'Sharing is caring'" # Descripción del video
VIDEO_DURATION="11:59:30" # Duración del video, si dura mas de XX:XX:XX, se subira en partes divididas (Youtube solo tiene hasta videos de maximo 12 horas)
STREAMLINK_OPTIONS="best --hls-duration $VIDEO_DURATION --stream-segment-timeout 30 --hls-playlist-reload-attempts 10 --hls-live-restart --twitch-disable-hosting --twitch-disable-reruns -O --loglevel error" # https://streamlink.github.io/cli.html#twitch