Blame src/api/doxy/glossary_termino.dp

Packit 3ff1e7
/** @page glossary_termino Glossary: Terminology
Packit 3ff1e7
Packit 3ff1e7
@section sess_handle libcURL session handle
Packit 3ff1e7
Packit 3ff1e7
Calling @ref quvi_new creates a libcURL session handle. This handle is
Packit 3ff1e7
reused by libquvi to access the Internet until @ref quvi_free is called.
Packit 3ff1e7
libcURL sets most of the initial values for the handle when it is
Packit 3ff1e7
created by calling curl_easy_init(3). libquvi will, additionally, make
Packit 3ff1e7
the following changes to the handle when @ref quvi_new is called:
Packit 3ff1e7
Packit 3ff1e7
- CURLOPT_COOKIELIST is set to "ALL" (clear cookies in memory -- *when* @ref
Packit 3ff1e7
  QUVI_OPTION_ALLOW_COOKIES is QUVI_TRUE)
Packit 3ff1e7
- CURLOPT_COOKIEFILE is set to "" (enable cookies -- *when* @ref
Packit 3ff1e7
  QUVI_OPTION_ALLOW_COOKIES is QUVI_TRUE)
Packit 3ff1e7
- CURLOPT_HTTPHEADER is set to NULL (clear custom headers)
Packit 3ff1e7
- CURLOPT_FOLLOWLOCATION is set to 1L (enabled)
Packit 3ff1e7
- CURLOPT_USERAGENT is set to "Mozilla/5.0"
Packit 3ff1e7
- CURLOPT_NOBODY is set to 0L (disabled)
Packit 3ff1e7
Packit 3ff1e7
The scripts (e.g. @ref m_script) may modify the cookie and HTTP header
Packit 3ff1e7
settings dynamically which may be required in order to access some of
Packit 3ff1e7
the resources, e.g. @ref m_stream. For this reason, it may be necessary
Packit 3ff1e7
for the 3rd party applications using libquvi to reuse the current
Packit 3ff1e7
session handle in order to access these sources. The session handle may
Packit 3ff1e7
be queried using the @ref quvi_get function.
Packit 3ff1e7
Packit 3ff1e7
The following functions will reset the session handle to its initial
Packit 3ff1e7
state when they are called:
Packit 3ff1e7
Packit 3ff1e7
- @ref quvi_media_new
Packit 3ff1e7
- @ref quvi_playlist_new
Packit 3ff1e7
- @ref quvi_scan_new
Packit 3ff1e7
- @ref quvi_subtitle_new
Packit 3ff1e7
Packit 3ff1e7
Any cookie and header settings that were set by any of the scripts
Packit 3ff1e7
previously, will be lost when those functions are called.
Packit 3ff1e7
Packit 3ff1e7
@section media_sect Media
Packit 3ff1e7
Packit 3ff1e7
@subsection m_prop Media property
Packit 3ff1e7
Packit 3ff1e7
A property that belongs to a medium, e.g. title. These are parsed and
Packit 3ff1e7
returned by a @ref m_script.
Packit 3ff1e7
Packit 3ff1e7
@sa QuviMediaProperty
Packit 3ff1e7
@sa quvi_get
Packit 3ff1e7
Packit 3ff1e7
@subsection m_stream_id Media stream ID
Packit 3ff1e7
Packit 3ff1e7
A string value that is used to identify the @ref m_stream. They are
Packit 3ff1e7
generated for each available media stream. They may vary per website.
Packit 3ff1e7
Packit 3ff1e7
The @ref m_stream_id typically consists of:
Packit 3ff1e7
@li Media container (e.g. "WebM")
Packit 3ff1e7
@li Media quality (e.g. "hd720")
Packit 3ff1e7
@li Video encoding (e.g. "VP8")
Packit 3ff1e7
@li Video height (e.g. "720")
Packit 3ff1e7
Packit 3ff1e7
A typical ID could look like:
Packit 3ff1e7
@verbatim
Packit 3ff1e7
$quality_$container_$encoding_$height(p)
Packit 3ff1e7
@endverbatim
Packit 3ff1e7
Packit 3ff1e7
Whether they are used in the @ref m_stream_id depends on whether the
Packit 3ff1e7
website has made the data available, and whether the @ref m_script parses
Packit 3ff1e7
the properties and uses them.
Packit 3ff1e7
Packit 3ff1e7
Sometimes these IDs may as simple as "hd" or "sd", although as of
Packit 3ff1e7
libquvi(-scripts) 0.9 the media scripts are expected to use the
Packit 3ff1e7
"standardized representation of the stream ID" whenever possible.
Packit 3ff1e7
Packit 3ff1e7
Example: Dailymotion
Packit 3ff1e7
@verbatim
Packit 3ff1e7
hq_mp4_h264_480p
Packit 3ff1e7
@endverbatim
Packit 3ff1e7
Packit 3ff1e7
Example: YouTube
Packit 3ff1e7
Packit 3ff1e7
Similar, but uses the container value instead of the video
Packit 3ff1e7
encoding value. It also uses the 'itag' value, which is specific to
Packit 3ff1e7
YouTube.
Packit 3ff1e7
@verbatim
Packit 3ff1e7
hd720_webm_i45_720p
Packit 3ff1e7
@endverbatim
Packit 3ff1e7
Packit 3ff1e7
@sa @ref parse_media
Packit 3ff1e7
Packit 3ff1e7
@subsection ms_prop Media stream property
Packit 3ff1e7
Packit 3ff1e7
A @ref m_prop that is specific to a @ref m_stream. Like with
Packit 3ff1e7
@ref m_prop, these are parsed and returned by a @ref m_script.
Packit 3ff1e7
Packit 3ff1e7
@sa QuviMediaProperty
Packit 3ff1e7
@sa quvi_get
Packit 3ff1e7
Packit 3ff1e7
@subsection m_stream Media stream
Packit 3ff1e7
Packit 3ff1e7
A stream of media, e.g. multimedia. Some websites provide >1 media
Packit 3ff1e7
streams for the hosted content, in which case the @ref m_script will
Packit 3ff1e7
usually try to parse the URLs to these streams and return them to the
Packit 3ff1e7
library.
Packit 3ff1e7
Packit 3ff1e7
@sa quvi_media_stream_select
Packit 3ff1e7
@sa QuviMediaProperty
Packit 3ff1e7
@sa @ref m_stream_url
Packit 3ff1e7
@sa quvi_get
Packit 3ff1e7
Packit 3ff1e7
@subsection m_stream_best Media stream: Best quality
Packit 3ff1e7
Packit 3ff1e7
The best quality stream is determined and flagged as such by
Packit 3ff1e7
a @ref m_script when there are >1 streams available.
Packit 3ff1e7
How the best quality stream is determined depends on the website and
Packit 3ff1e7
the @ref m_script.
Packit 3ff1e7
Packit 3ff1e7
The library uses the keyword 'best' with @ref quvi_media_stream_select
Packit 3ff1e7
to identify this stream.
Packit 3ff1e7
Packit 3ff1e7
@sa @ref select_stream
Packit 3ff1e7
Packit 3ff1e7
@subsection m_stream_default Media stream: Default quality
Packit 3ff1e7
Packit 3ff1e7
This is whatever the @ref m_script returns as the first stream. This
Packit 3ff1e7
stream is returned always.
Packit 3ff1e7
Packit 3ff1e7
@subsection sub_data Subtitle data
Packit 3ff1e7
Packit 3ff1e7
The subtitle data format varies per website, e.g. YouTube uses
Packit 3ff1e7
a custom timed-text (TT) format for CCs and TTSes. Generally speaking,
Packit 3ff1e7
the applications may ignore this format as the API has been designed
Packit 3ff1e7
so that the library provides the data in the requested format.
Packit 3ff1e7
Packit 3ff1e7
@sa @ref subex_script
Packit 3ff1e7
Packit 3ff1e7
@subsection sub_lang Subtitle language
Packit 3ff1e7
Packit 3ff1e7
An available subtitle language. Each @ref sub_type consists of
Packit 3ff1e7
(available) languages.
Packit 3ff1e7
Packit 3ff1e7
@sa @ref sub_type
Packit 3ff1e7
Packit 3ff1e7
@subsection sub_lang_id Subtitle language ID
Packit 3ff1e7
Packit 3ff1e7
A string value that is used to identify the @ref sub_lang. They are
Packit 3ff1e7
generated for each available language.
Packit 3ff1e7
Packit 3ff1e7
@subsection sub_type Subtitle type
Packit 3ff1e7
Packit 3ff1e7
Either a closed-caption (CC) or a text-to-speech (TTS, sometimes
Packit 3ff1e7
referred to as "automatic captions"). Each subtitle consists of a
Packit 3ff1e7
varying number of available languages.
Packit 3ff1e7
Packit 3ff1e7
@sa @ref sub_lang
Packit 3ff1e7
Packit 3ff1e7
@subsection m_url Media URL
Packit 3ff1e7
Packit 3ff1e7
An Internet address to the media, e.g. "http://youtube.com/watch?v=foo".
Packit 3ff1e7
This URL should not be confused with @ref m_stream_url.
Packit 3ff1e7
Packit 3ff1e7
@note This value is accessible to the scripts as "qargs.input_url"
Packit 3ff1e7
Packit 3ff1e7
@subsection m_stream_url Media stream URL
Packit 3ff1e7
Packit 3ff1e7
An Internet address to the @ref m_stream.
Packit 3ff1e7
This URL should not be confused with @ref m_url.
Packit 3ff1e7
Packit 3ff1e7
@section plist Playlist
Packit 3ff1e7
Packit 3ff1e7
A collection of @ref m_url s.
Packit 3ff1e7
Packit 3ff1e7
@section script_property Script property
Packit 3ff1e7
Packit 3ff1e7
A property of a script, that may be of either
Packit 3ff1e7
a @ref m_script, a @ref pl_script, a @ref scan_script or
Packit 3ff1e7
an @ref u_script.
Packit 3ff1e7
Packit 3ff1e7
@sa QuviScriptProperty
Packit 3ff1e7
Packit 3ff1e7
@section sh_url Shortened URL
Packit 3ff1e7
Packit 3ff1e7
An URL that has been "compressed", or "shortened", by a service such as
Packit 3ff1e7
is.gd or bit.ly .
Packit 3ff1e7
Packit 3ff1e7
@section verification Verification of an URL
Packit 3ff1e7
Packit 3ff1e7
A step, previously until libquvi 0.9, was called a "media stream URL
Packit 3ff1e7
verification process", during which the library would send an HTTP HEAD
Packit 3ff1e7
request to the server to query the content-type and the content-length.
Packit 3ff1e7
This step would also try to guess the file extension to the media from
Packit 3ff1e7
the content-type. This step took place immediately after returning a
Packit 3ff1e7
@ref m_stream_url from a @ref m_script.
Packit 3ff1e7
Packit 3ff1e7
The verification process step was removed in libquvi 0.9, but an
Packit 3ff1e7
additional function set was added to allow to querying this
Packit 3ff1e7
meta-info if necessary.
Packit 3ff1e7
Packit 3ff1e7
@note Works with HTTP(S) URLs only
Packit 3ff1e7
@sa http_metainfo
Packit 3ff1e7
*/