Manual instalación rclone en MagicSee N5

Manual instalación rclone en MagicSee N5

https://t.me/magicseetvbox

La gran mayoría de la información no es mía, es extraída de grupos de telegram, yo sólo la he reunido para hacer más fácil su entendimiento y uniendo todos los procesos, se pueda instalar rclone en el N5 y seguramente en cualquier Tv Box con CoreElec o LibreElec.

Para cualquier consulta, preguntar en el grupo, que así aprende todo el mundo, nada de privados.

1. Optimizar el espacio del Tv Box (este paso no es obligatorio, pero si muy recomendable)

En el caso de este Tv Box (y seguramente en la mayoría) es mejor tener la carpeta "Thumbnails" de Kodi, alojada en una tarjeta microSD para que no sature la memoria interna del box cuando se escanee nuestra biblioteca en Gdrive y descargue todas las imágenes que luego veremos al navegar por las carpetas. Para ello nos conectaremos via SSH (putty) al box y pondremos el siguiente comando:

mv /storage/.kodi/userdata/Thumbnails /var/media/microSD/Thumbnails

Donde microSD es el nombre que tenga nuestra tarjeta microSD en Kodi. Si ya has escaneado alguna biblioteca, tardará un poco en mover todo. Ahora tendremos que hacer un enlace simbólico para que Kodi sepa donde se encuentra ahora la carpeta "Thumbnails". Para ello no ubicaremos en la siguiente dirección:

cd /storage/.kodi/userdata/

Y Creamos el enlace simbolico

ln -s /var/media/microSD/Thumbnails

Recuerda, microSD es el nombre que tenga nuestra tarjeta microSD. Una vez realizado este paso, ya podemos empezar a instalar rclone.

2. Pasos para instalar rclone.

Lo primero que debes saber, es que rclone es un programa de sincronización entre nubes, y una de las cosas más importantes en nuestro caso es gestionar las peticiones que se hacen a la API de Gdrive desde los distintos programas que la usan (Plex, Kodi, Filebot, etc…). Para que Google no te banee por exceso de consultas, hay que configurar los distintos comandos de rclone. Lo primero es conseguir tus credenciales de acceso.

2.1 Creando tu propio client_id (Credenciales)

Cuando se usa rclone con Gdrive en su configuración predeterminada, se está usando el client_id de rclone. Esto se comparte entre todos los usuarios de rclone. Existe un límite de tasa global en la cantidad de consultas por segundo que cada ID de cliente puede establecer por Google.

Se recomienda encarecidamente utilizar tu propia ID de cliente, ya que la ID de rclone predeterminada se utiliza mucho. Si tiene múltiples servicios en ejecución, se recomienda usar una clave API para cada servicio. La cuota predeterminada de Google es de 10 transacciones por segundo, por lo que se recomienda permanecer por debajo de ese número, ya que si usa más que eso, causará que rclone aumente el límite de velocidad y haga las cosas más lentas, con el riesgo de baneo por parte de Google.

Vamos a crear nuestro Client_ID, entramos en esta dirección:

https://console.developers.google.com/project/_/apiui/apis/library

Iniciamos la sesión con la cuenta con la que queremos obtener los datos para las credenciales. Aceptamos las condiciones del servicio.

Ahora nos pedirá crear un proyecto, que es necesario para las credenciales.

Nos aparce la consola de creación de proyecto, y nos pone un nombre por defecto, lo podemos cambiar, pero lo mejor es dejarlo como está.

Nos llevará a la consola de API´s, buscamos la de Gdrive:

La habilitamos:

Una vez habilitada, en el menu de la izquierda, pinchamos en credenciales, y a continuación, en "Credenciales en API´s y servicios":

Creamos las credenciales de "ID de Cliente de OAuth":

Pinchamos en "Configurar pantalla de autorización":

Le ponemos un nombre a la aplicación, el que queráis, por ejemplo "rclone", y hacemos scroll hasta abajo y le damos guardar:

Ahora creamos el Client_ID, seleccionamos "Otro", le ponemos un nombre identificativo y "crear":

Automáticamente, nos saldrán el Client_ID y el Secret_Id para poder usarlos en rclone, concretamente, en el punto 4.4, los copiamos en un documento de texto y lo guardamos a buen recaudo, aunque podremos volver a entrar en la consola de google para consultarlos:

El siguiente paso sólo es para una configuración de cuenta teamdrive, si no lo tenéis, saltarlo.

2.2 Configuración para Teamdrive

Hay que hacer todo lo anterior (tener el Client_ID y el Secret_Id) y además copiar el identificador de la carpeta, entra en la raíz de teamdrive y copia la última parte del link:


3. Instalación de rclone en CoreElec en el N5

La instalación de rclone para el N5 está sacada de este link:

https://openmecool.com/2019/03/20/sincronizar-gdrive-en-mecool-con-rclone/

con unas pequeñas modificaciones para que sirva para cualquier tipo de cuenta de drive. El © de las fotos y de la mayoría de los textos, son del autor de la web.

Accedemos a nuestro receptor por ssh (en putty, por ejemplo) y vamos a ejecutar los siguientes comandos:

cd .config

A continuación nos descargamos rclone, con la opción current nos descargamos la ultima version disponible.

curl -O https://downloads.rclone.org/rclone-current-linux-arm64.zip

Ahora descompirmos el archivo .zip descargado:

unzip rclone-current-linux-arm64.zip

Tras descomprimir si ejecutamos el comando:

ls

Observaremos que se creo la carpeta rclone-v1.46-linux-arm64, depende la version que nos descarguemos pues nos aparecera un nombre diferente

Renombramos la carpeta en este ejemplo rclone-v1.46-linux-arm64 (varia como hemos dicho dependiendo la version descargada) a rclone para ello:

mv rclone-v1.46-linux-arm64 rclone

Observaremos que se renombro la carpeta rclone

Borramos el archivo .zip que nos descarguemos para ello ejecutamos:

rm -r rclone-current-linux-arm64.zip

Nos situamos en el directorio rclone para ello ejecutamos

cd rclone

Le damos permisos de ejecucion al programa rclone

chmod 755 rclone

Con esto hemos terminado la instalacion de rclone.

4. Crear archivo rclone.config para gdrive

Vamos a configurar rclone para nuestra cuenta gdrive.

4.1. Estando situado en el directorio /storage/.config/rclone ejecutamos:

./rclone config

4.2. Como vamos a crear un nuevo remote pues introducimos n y pulsamos intro y nos solicitara un nombre que deseemos en este ejemplo lo voy a llamar Gdrive, pero le podeis dar como comente el nombre que querais.

4.3. A continuación saldrá un listado del tipo de conexión que vamos a realizar en este ejemplo como observamos gdrive es el numero 12

4.4. Introducimos 12 o drive y pulsamos intro

Introducimos el Client_id y el Secret_id que obtuvimos el la parte anterior de la creación de credenciales:

4.5. Una vez puestos los datos, nos aparece el menu de acceso a Google Drive, en esta opción introducimos 1

4.6. En advanced settings introducimos n

4.7. Volvemos a introducir n en la siguiente opción

4.8. Tras el paso anterior nos aparecerá un enlace web pues lo copiamos

4.9. El enlace copiado lo ponemos en nuestro navegador web, nos logueamos a nuestra cuenta gdrive y pulsamos en permitir, nos saldrá el nombre de la aplicación que pusimos en las credenciales:

4.10. Tras el paso anterior nos aparecera un codigo pues lo copiamos

4.11. Introducimos ese código:

4.12. Introducimos n para terminar la configuracion realizada

4.13. Comprobamos que tiene todos los datos y para terminar volvemos a poner y:

Si lo que quieres es configurar una cuenta teamdrive, sigue leyendo, si no, salta directamente al paso 5.

En el caso de los teamdrives, sigue todos los pasos hasta el 4.12 y en ese paso, en vez de decirle n, le dices y:

Te pedirá la identidad de la carpeta teamdrive, que te recuerdo que estaba en la parte de credenciales:

La introduces y terminas dando y:

5. Realizar montaje y añadirlo al reinicio del sistema

Ahora vamos a crear una carpeta sincronizada (montaje), con rclone y Google Drive para tener acceso a ello y usarla como disco duro (Kodi, Plex, Emby, Jellyfin) para descargas, etc…

Debemos crear dentro de la carpeta /storage/.config/system.d un archivo que podemos llamar rclone.service:

nano /storage/.config/system.d/rclone.service

Copiaremos el siguiente contenido, mejor hacerlo desde un editor de texto como notepad++, para no meter caracteres indeseados que hagan que falle el service, el comando de montaje (mount) está hecho por @Spufy:

[Unit]
Description=RClone Mount para N5
Requires=network-online.service
After=network-online.service
[Service]
Type=simple
ExecStartPre=/bin/mkdir -p /var/media/Gdrive
ExecStartPre=/bin/mkdir -p /storage/.config/rclone/logs
ExecStartPre=/bin/mkdir -p /storage/.config/rclone/cache
ExecStart=/storage/.config/rclone/rclone mount \
--log-file /storage/.config/rclone/logs/rclonemount.log \
--log-level INFO \
--allow-other \
--allow-non-empty \
--tpslimit 10 \
--tpslimit-burst 10 \
--dir-cache-time=48h \
--buffer-size=64M \
--attr-timeout=1s \
--vfs-read-chunk-size=64M \
--vfs-read-chunk-size-limit=2G \
--vfs-cache-max-age=5m \
--vfs-cache-mode=writes \
--cache-dir /storage/.config/rclone/cache \
--config=/storage/.config/rclone/rclone.conf \
Gdrive: /var/media/Gdrive
ExecStop=/bin/fusermount -uz /var/media/Gdrive
Restart=on-abort
[Install]
WantedBy=kodi.target

Si sigues el tutorial, no habría que cambiar nada, si no, las partes a cambiar son:

Gdrive: por tu unidad de rclone
/var/media/Gdrive por la ruta de la carpeta que tengas para montar Google Drive

Guardas los cambios con Ctrl+O y cierras Ctrl+X. a continuación le damos permisos al service:

chmod 777 /storage/.config/system.d/rclone.service

Una vez dado permiso realizamos una relectura de daemons para ello ejecutamos:

systemctl daemon-reload

Activamos el demonio creado para ello ejecutamos:

systemctl enable rclone.service
r102

Y para finalizar arrancamos el demonio:

systemctl start rclone.service

Podemos comprobar el montaje para ello ejecutamos:

df -h

Observamos que tenemos disponible el acceso a nuestro gdrive:

Está todo hecho, ya podéis conectar Google Drive con cualquier aplicación.

Bonus: Tareas programadas con crontab y scripts en CoreElec

(Extraido del foro de CoreELEC)

Lo primero que haremos será habilitar Cron en CoreElec si no lo tenemos ya:

Ajustes->Servicios->Cron

Después nos conectaremos por SSH (Putty) al TV Box y crearemos el directorio de scripts en .config, así se podrá guardar en los backups de CoreElec:

mkdir /storage/.config/scripts

Le damos permisos a la carpeta:

chmod 775 /storage/.config/scripts

Creamos un enlace simbólico para que sea accesible para Kodi, y será donde creemos y guardemos los scripts:

ln -s /storage/.config/scripts /storage/scripts

Ahora sólo hace falta crear los scripts en la carpeta /storage/scripts, por ejemplo, un script que suba los archivos que descarga transmission a la nube:

nano /storage/scripts/subenube

Copiamos lo siguiente:

#!/bin/sh
/storage/.config/rclone/rclone move /var/lib/transmission-daemon/downloads Gdrive:/Descargas -v --no-traverse --log-file=/storage/.config/rclone/logs/rclone-upload.log

Lo de siempre, no os volváis locos con las rutas, /var/lib/transmission-daemon/downloads es la ruta del transmission y Gdrive:/Descargas, son de ejemplo, si tenéis la vuestras, sustituirlas y ya está. No penséis que las cosas no funcionan por no poner las rutas correspondientes.

Una vez creado, le damos permisos y hacemos ejecutable el nuevo script creado. RECORDAR que esto lo hacemos con cada script que creemos, que no se os olvide:

chmod 755 /storage/scripts/subenube && chmod +x /storage/scripts/subenube

Para ejecutarlo en cualquier momento, utilizamos el siguiente comando:

sh /storage/scripts/subenube

Ahora para ejecutar los scripts de manera programada, ejecutamos el comando crontab -e, y añadimos al final la siguiente línea:

*/15 * * * * /storage/.config/scripts/subenube

Esto hará que el script se ejecute cada 15 minutos, subiendo así nuestras descargas de transmission a la nube.

Para saber como funciona cron y hacer que los scripts se ejecuten a la hora que queráis, aquí tenéis toda la información:

https://es.wikipedia.org/wiki/Cron_(Unix)

Referencias:

Grupo de Telegram del MagicSee N5:
https://t.me/magicseetvbox

Web dedicada a soporte libre para receptores de la marca Mecool:
https://openmecool.com/

Foro CoreElec:
https://discourse.coreelec.org/