He estado haciendo pruebas y me he dado cuenta que muchos de los problemas de obtención del flujo de streaming o su obtención (sobre todo la inicial) se deben a timeouts. Es entendible y tampoco es que sea para poner pegas, porque soportar volúmenes de carga tan bestias requiere una infraestructura muy cara de mantener.
Hace poco aumenté añadí un parámetro timeout opcional en algunas funciones de scrapertools, que estaba limitado al valor por defecto para todos los sockets (5 segundos, creo recordar), porque cineráculo tarda muchísimo.
Aun así, fué insuficiente porque al leer el flv, el componente de XBMC que lo lee (curl) abortaba la mayoría de las veces por el mismo problema.
Después de leer un poco la API, encontré que aunque no es parametrizable por código, XBMC permite ajustarlo en el fichero de configuración advancedsettings.xml (que no existe por defecto, hay que crearlo) en el directorio userdata
En ese fichero, se puede poner, entre otras cosas:
Código: Seleccionar todo
<curlclienttimeout>60</curlclienttimeout>
Vale, 60 segundos es muchísimo, pero es que cineráculo tarda a veces ente 20 y 30. No obstante, que cada uno haga sus pruebas.
El problema es que el fichero advancedsettings.xml es compartido de manera global, y si un plugin lo ajusta por código, deberá ser coherente y no pisar otros parámetros que otros plugins o incluso el usuario pueda haber introducido manualmente.