# curlhttpsrc

This plugin reads data from a remote location specified by a URI, when the protocol is 'http' or 'https'.

It is based on the cURL project (http://curl.haxx.se/) and is specifically designed to be also used with nghttp2 (http://nghttp2.org) to enable HTTP/2 support for GStreamer. Your libcurl library MUST be compiled against nghttp2 for HTTP/2 support for this functionality. HTTPS support is dependent on cURL being built with SSL support (OpenSSL/PolarSSL/NSS/GnuTLS).

An HTTP proxy must be specified by URL. If the "http_proxy" environment variable is set, its value is used. The GstCurlHttpSrc:proxy property can be used to override the default.

## Example launch line

     gst-launch-1.0 curlhttpsrc location=http://127.0.1.1/index.html ! fakesink dump=1

The above pipeline reads a web page from the local machine using HTTP and dumps it to stdout.

     gst-launch-1.0 playbin uri=http://rdmedia.bbc.co.uk/dash/testmpds/multiperiod/bbb.php

The above pipeline will start up a DASH streaming session from the given MPD file. This requires GStreamer to have been built with dashdemux from gst-plugins-bad.

## Hierarchy

    GObject
        ╰──GInitiallyUnowned
            ╰──GstObject
                ╰──GstElement
                    ╰──GstBaseSrc
                        ╰──GstPushSrc
                            ╰──curlhttpsrc

## Implemented interfaces

    GstURIHandler

## Factory details

Authors: – Sam Hurst

Classification: – `Source/Network`

Rank – secondary

Plugin – curl

Package – GStreamer Bad Plug-ins

## Pad Templates

### `src`

    ANY

Presence – always

Direction – src

Object type – GstPad

## Properties

### automatic-redirect

    “automatic-redirect” gboolean

Allow HTTP Redirections (HTTP Status Code 300 series)

Flags : Read / Write

Default value : true

### compress

    “compress” gboolean

Allow compressed content encodings

Flags : Read / Write

Default value : false

### cookies

    “cookies” GStrv *

List of HTTP Cookies

Flags : Read / Write

### extra-headers

    “extra-headers” GstStructure *

Extra headers to append to the HTTP request

Flags : Read / Write

Default value :

    request-headers;

### http-version

    “http-version” Curl-http-version-type *

The preferred HTTP protocol version

Flags : Read / Write

Default value : 2.0 (2)

### keep-alive

    “keep-alive” gboolean

Toggle keep-alive for connection reuse.

Flags : Read / Write

Default value : true

### location

    “location” gchararray

URI of resource to read

Flags : Read / Write

Default value : NULL

### max-connection-time

    “max-connection-time” guint

Maximum amount of time to keep-alive HTTP connections

Flags : Read / Write

Default value : 30

### max-connections

    “max-connections” guint

Maximum number of concurrent connections allowed for HTTP/1.x

Flags : Read / Write

Default value : 255

### max-connections-per-proxy

    “max-connections-per-proxy” guint

Maximum number of concurrent connections allowed per proxy for HTTP/1.x

Flags : Read / Write

Default value : 30

### max-connections-per-server

    “max-connections-per-server” guint

Maximum number of connections allowed per server for HTTP/1.x

Flags : Read / Write

Default value : 5

### max-redirect

    “max-redirect” gint

Maximum number of permitted redirections. -1 is unlimited.

Flags : Read / Write

Default value : -1

### proxy

    “proxy” gchararray

URI of HTTP proxy server

Flags : Read / Write

Default value : NULL

### proxy-id

    “proxy-id” gchararray

HTTP proxy URI user id for authentication

Flags : Read / Write

Default value : NULL

### proxy-pw

    “proxy-pw” gchararray

HTTP proxy URI password for authentication

Flags : Read / Write

Default value : NULL

### retries

    “retries” gint

Maximum number of retries until giving up (-1=infinite)

Flags : Read / Write

Default value : -1

### ssl-ca-file

    “ssl-ca-file” gchararray

Location of an SSL CA file to use for checking SSL certificates

Flags : Read / Write

Default value : NULL

### ssl-strict

    “ssl-strict” gboolean

Strict SSL certificate checking

Flags : Read / Write

Default value : true

### timeout

    “timeout” gint

Value in seconds before timeout a blocking request (0 = no timeout)

Flags : Read / Write

Default value : 0

### user-agent

    “user-agent” gchararray

URI of resource requested

Flags : Read / Write

Default value : GStreamer curlhttpsrc libcurl/

### user-id

    “user-id” gchararray

HTTP location URI user id for authentication

Flags : Read / Write

Default value : NULL

### user-pw

    “user-pw” gchararray

HTTP location URI password for authentication

Flags : Read / Write

Default value : NULL

## Named constants

### Curl-http-version-type

#### Members

`1.0` (0) – HTTP Version 1.0
`1.1` (1) – HTTP Version 1.1
`2.0` (2) – HTTP Version 2.0

The results of the search are