Interface StreamLinkConfiguration


  • public interface StreamLinkConfiguration

    Interface that allows the configuration of StreamLink to be defined programmatically.

    You can obtain an instance of this interface by calling {@link com.caplin.streamlink.StreamLinkFactory.createConfiguration()}.

    • Method Detail

      • addCustomAttribute

        StreamLinkConfiguration addCustomAttribute​(java.lang.String key,
                                                   java.lang.String value)

        Sets custom attributes. These are recorded in StreamLink log files

        Parameters:
        key - The attribute name.
        value - The attribute value.
        Returns:
        The current StreamLinkConfiguration instance.
      • setApplicationId

        StreamLinkConfiguration setApplicationId​(java.lang.String applicationId)

        Sets the application identifier. This is used by the Caplin Platform to distinguish StreamLink requests from different client applications. It is recorded in StreamLink log files, and is used by Liberator in monitoring software licence compliance and by the Caplin Permissioning Service to restrict the applicability of permissioning rules to specific applications.

        Parameters:
        applicationId - The application identifier.
        Returns:
        The current StreamLinkConfiguration instance.
      • addLiberatorUrlGroup

        StreamLinkConfiguration addLiberatorUrlGroup​(java.lang.String... urls)

        Adds a group of URLs that define possible Liberator connections.

        Parameters:
        urls - A set of URLs defining a Liberator connection group.
        Returns:
        The current StreamLinkConfiguration instance.

        For more information on defining Liberator URL groups see StreamLinkFactory and the "Resilience, failover, and load balancing" section of the StreamLink Overview.

      • setUsername

        StreamLinkConfiguration setUsername​(java.lang.String username)

        Sets the Liberator login user-name to use if logins are not being managed by KeyMaster or a custom CredentialsProvider.

        Parameters:
        username - The Liberator login user-name.
        Returns:
        The current StreamLinkConfiguration instance.
      • setPassword

        StreamLinkConfiguration setPassword​(java.lang.String password)

        Sets the Liberator login password to use if logins are not being managed by KeyMaster or a custom CredentialsProvider.

        Parameters:
        password - The Liberator login password.
        Returns:
        The current StreamLinkConfiguration instance.
      • setPollInterval

        StreamLinkConfiguration setPollInterval​(int milliseconds)

        Sets the time interval in milliseconds between polls of the Liberator.

        Parameters:
        milliseconds - The poll interval.
        Returns:
        The current StreamLinkConfiguration instance.

        This only applies to HTTP polling type connections (see 'RTTP connection types' in the document StreamLink Overview).

      • setForeverFrameReconnectCount

        StreamLinkConfiguration setForeverFrameReconnectCount​(int count)

        Not used in this version of StreamLink.

      • setDisablePolling

        StreamLinkConfiguration setDisablePolling​(java.lang.Boolean disablePolling)

        Set to true if you don't want to use polling connection when the rttp(s) protocol is specified.

        Parameters:
        disablePolling - Set to true to disable polling connection in rttp(s) protocol.
        Returns:
        The current StreamLinkConfiguration instance.
      • setDisableSseConnection

        StreamLinkConfiguration setDisableSseConnection​(java.lang.Boolean disableSseConnection)

        Set to true if you don't want to use server side events connection when the rttp(s) protocol is specified.

        Parameters:
        disablePolling - Set to true to disable server side events connection in rttp(s) protocol.
        Returns:
        The current StreamLinkConfiguration instance.
      • setRequestTimeout

        StreamLinkConfiguration setRequestTimeout​(int milliseconds)

        Time in milliseconds allowed for the response to each command before StreamLink reconnects to the Liberator.

        Parameters:
        milliseconds - The request timeout period in milliseconds.
        Returns:
        The current StreamLinkConfiguration instance.
      • setReconnectDelay

        StreamLinkConfiguration setReconnectDelay​(int milliseconds)

        Delay in milliseconds before retrying, after failing to connect (default 1000 milliseconds).

        Parameters:
        milliseconds - The reconnect delay in milliseconds.
        Returns:
        The current StreamLinkConfiguration instance.
      • setReconnectCycleDelays

        StreamLinkConfiguration setReconnectCycleDelays​(java.lang.Integer... milliseconds)

        Delay in milliseconds before retrying, after failing to connect with all available connection options. The entries are treated as a backoff where each entry is used once and the last entry is the delay that will keep getting used forever (default 2000, 4000, 8000, 16000 milliseconds).

        Parameters:
        milliseconds - Array of reconnect delays.
        Returns:
        The current StreamLinkConfiguration instance.
      • setClockOffsetInterval

        StreamLinkConfiguration setClockOffsetInterval​(int milliseconds)

        Sets the interval between successive calculations of clock offset value(default 10000 milliseconds). For more information, see the clock_offset_interval JSON attribute in caplin.streamlink.StreamLinkFactory.

        Parameters:
        milliseconds - The clock offset interval in milliseconds.
        Returns:
        The current StreamLinkConfiguration instance.
      • setClockOffsetWindow

        StreamLinkConfiguration setClockOffsetWindow​(int milliseconds)

        Sets the time a calculated clock offset is valid for use in producing statistics (default 120000 milliseconds). For more information, see the clock_offset_window JSON attribute in caplin.streamlink.StreamLinkFactory.

        Parameters:
        milliseconds - The clock offset window in milliseconds.
        Returns:
        The current StreamLinkConfiguration instance.
      • setLatencyInterval

        StreamLinkConfiguration setLatencyInterval​(int milliseconds)

        Sets the time between successive calculations of average latency (default 10000 milliseconds). For more information, see the latency_interval JSON attribute in caplin.streamlink.StreamLinkFactory.

        Parameters:
        milliseconds - The latency interval in milliseconds.
        Returns:
        The current StreamLinkConfiguration instance.
      • setLatencyWindow

        StreamLinkConfiguration setLatencyWindow​(int milliseconds)

        Sets the time for which a calculated latency value is valid for use in producing statistics (default 120000 milliseconds). For more information, see the latency_window JSON attribute in caplin.streamlink.StreamLinkFactory.

        Parameters:
        milliseconds - The latency window in milliseconds.
        Returns:
        The current StreamLinkConfiguration instance.
      • setHttpTimeout

        StreamLinkConfiguration setHttpTimeout​(int timeout)

        Sets the time allowed for an HTTP Request to finish successfully before StreamLink times out (default 3000 milliseconds).

        Parameters:
        timeout - The timeout period in milliseconds.
        Returns:
        The current StreamLinkConfiguration instance.
      • setInactivityTimeout

        StreamLinkConfiguration setInactivityTimeout​(int milliseconds)

        Maximum time in milliseconds that Liberator waits to receive messages from this StreamLink client.

        If the Liberator fails to receive a message from StreamLink within this interval, it disconnects the session and waits for a reconnection attempt.

        The clock offset between Liberator and StreamLink is determined periodically by StreamLink sending a message to the Liberator. It is therefore recommended that this option should be configured to be greater than the ClockOffset configuration value. If it is configured to be smaller, more reconnections than required will take place.

        Note: This feature is only supported by Liberator 6.0 and newer. To determine if your Liberator installation supports this feature, refer to the Liberator's release note.

        Parameters:
        milliseconds - The inactivity period in milliseconds.
        Returns:
        The current StreamLinkConfiguration instance.
      • setKeymasterPollUrl

        StreamLinkConfiguration setKeymasterPollUrl​(java.lang.String... url)

        Sets the URL that StreamLink uses to check the connection to KeyMaster every KeyMaster poll interval milliseconds.

        Parameters:
        url - The URL that StreamLink uses to check the connection.
        Returns:
        The current StreamLinkConfiguration instance.
      • setKeymasterPollInterval

        StreamLinkConfiguration setKeymasterPollInterval​(int interval)

        Interval in milliseconds at which StreamLink will poll KeyMaster (on the KeyMaster poll URL) to keep the KeyMaster session open.

        Parameters:
        interval - The interval in at which StreamLink will poll KeyMaster (default 600000 milliseconds).
        Returns:
        The current StreamLinkConfiguration instance.
      • setKeymasterUrl

        StreamLinkConfiguration setKeymasterUrl​(java.lang.String... url)

        Sets the URL of KeyMaster for secure authentication of Liberator login requests.

        Parameters:
        url - The KeyMaster URL
        Returns:
        The current StreamLinkConfiguration instance.
      • setLogWindowVisible

        StreamLinkConfiguration setLogWindowVisible​(boolean show)

        Not used in this version of StreamLink.

      • setProxy

        StreamLinkConfiguration setProxy​(java.net.Proxy proxy)

        Sets the proxy to be used for http(s) and poll(s) connection protocols.

        Parameters:
        proxy - The proxy to be used.
        Returns:
        The current StreamLinkConfiguration instance.
      • setLogBufferSize

        StreamLinkConfiguration setLogBufferSize​(int size)

        Sets the size of the log buffer to be used in Streamlink. If the size is less than or equal to 0, the log buffer will be disabled. (default -1).

        Parameters:
        size - The size of the log buffer to be used
        Returns:
        The current StreamLinkConfiguration instance.
      • setHttpPadLength

        StreamLinkConfiguration setHttpPadLength​(int httpPadLength)

        Sets the http pad length to be used for http and Forever Frame connections.

        Parameters:
        proxy - The pad length to be used.
        Returns:
        The current StreamLinkConfiguration instance.
      • setLiberatorUrlProvider

        StreamLinkConfiguration setLiberatorUrlProvider​(LiberatorUrlProvider provider)

        Sets a LiberatorUrlProvider that will be used to get the next Liberator URL to connect to.

        If this option is set then it will override any urls added via the addLiberatorUrlGroup method.

        Parameters:
        provider - the class that will provide the name of the next Liberator URL to try.
        Returns:
        The current StreamLinkConfiguration instance.
      • setKeymasterCookieProvider

        StreamLinkConfiguration setKeymasterCookieProvider​(KeymasterCookieProvider provider)

        Sets a KeymasterCookieProvider that will provide the cookies used when making KeyMaster connections.

        Parameters:
        provider - The class that will provide the set of cookies.
        Returns:
        The current StreamLinkConfiguration instance.
      • setKeymasterHttpHeaderProvider

        StreamLinkConfiguration setKeymasterHttpHeaderProvider​(KeymasterHttpHeaderProvider provider)

        Sets a KeymasterHttpHeaderProvider that will provide the http headers used when making KeyMaster connections.

        Parameters:
        provider - The class that will provide the set of headers.
        Returns:
        The current StreamLinkConfiguration instance.
      • setJsonHandler

        StreamLinkConfiguration setJsonHandler​(JsonHandler handler)

        Sets a JsonHandler that will be used to parse and patch JSON objects.

        Parameters:
        handler - the class that implements the JsonHandler interface.
      • getCustomAttributes

        java.util.Map<java.lang.String,​java.lang.String> getCustomAttributes()

        Gets a map of the customer attributes set on this StreamLink instance to.

        Returns:
        A read only reference to the custom attribute map