<?php
namespace OCA\NCDownloader\Tools;

class youtubedlOptions
{

    public static function get()
    {
        return array_keys(self::options());
    }
    public static function options()
    {
        return array(
            'ignore-errors' => 'on download errors, for example to skip unavailable videos in a playlist',
            'abort-on-error' => 'downloading of further videos (in the playlist or the command line) if an error occurs',
            'dump-user-agent' => 'the current browser identification',
            'list-extractors' => 'all supported extractors',
            'extractor-descriptions' => 'descriptions of all supported extractors',
            'force-generic-extractor' => 'extraction to use the generic extractor',
            'default-search' => 'Use this prefix for unqualified URLs. For example "gvsearch2:" downloads two videos from google videos for youtube-',
            'ignore-config' => 'not read configuration files. When given in the global configuration file /etc/youtube-dl.conf: Do not read the',
            'config-location' => 'Location of the configuration file; either the path to the config or its containing directory.',
            'flat-playlist' => 'not extract the videos of a playlist, only list them.',
            'mark-watched' => 'videos watched (YouTube only)',
            'no-mark-watched' => 'not mark videos watched (YouTube only)',
            'no-color' => 'not emit color codes in output',
            'proxy' => 'Use the specified HTTP/HTTPS/SOCKS proxy. To enable SOCKS proxy, specify a proper scheme. For example',
            'socket-timeout' => 'Time to wait before giving up, in seconds',
            'source-address' => 'Client-side IP address to bind to',
            'force-ipv4' => 'all connections via IPv4',
            'force-ipv6' => 'all connections via IPv6',
            'geo-verification-proxy' => 'Use this proxy to verify the IP address for some geo-restricted sites. The default proxy specified by --proxy (or',
            'geo-bypass' => 'geographic restriction via faking X-Forwarded-For HTTP header',
            'no-geo-bypass' => 'not bypass geographic restriction via faking X-Forwarded-For HTTP header',
            'geo-bypass-country' => 'Force bypass geographic restriction with explicitly provided two-letter ISO 3166-2 country code',
            'playlist-start' => 'Playlist video to start at (default is 1)',
            'playlist-end' => 'Playlist video to end at (default is last)',
            'match-title' => 'Download only matching titles (regex or caseless sub-string)',
            'reject-title' => 'Skip download for matching titles (regex or caseless sub-string)',
            'max-downloads' => 'Abort after downloading NUMBER files',
            'min-filesize' => 'Do not download any videos smaller than SIZE (e.g. 50k or 44.6m)',
            'max-filesize' => 'Do not download any videos larger than SIZE (e.g. 50k or 44.6m)',
            'date' => 'Download only videos uploaded in this date',
            'datebefore' => 'Download only videos uploaded on or before this date (i.e. inclusive)',
            'dateafter' => 'Download only videos uploaded on or after this date (i.e. inclusive)',
            'min-views' => 'Do not download any videos with less than COUNT views',
            'max-views' => 'Do not download any videos with more than COUNT views',
            'match-filter' => 'Generic video filter. Specify any key (see the "OUTPUT TEMPLATE" for a list of available keys) to match if the key',
            'no-playlist' => 'only the video, if the URL refers to a video and a playlist.',
            'yes-playlist' => 'the playlist, if the URL refers to a video and a playlist.',
            'age-limit' => 'Download only videos suitable for the given age',
            'download-archive' => 'Download only videos not listed in the archive file. Record the IDs of all downloaded videos in it.',
            'include-ads' => 'advertisements as well (experimental)',
            'limit-rate' => 'Maximum download rate in bytes per second (e.g. 50K or 4.2M)',
            'retries' => 'Number of retries (default is 10), or "infinite".',
            'fragment-retries' => 'Number of retries for a fragment (default is 10), or "infinite" (DASH, hlsnative and ISM)',
            'skip-unavailable-fragments' => 'unavailable fragments (DASH, hlsnative and ISM)',
            'abort-on-unavailable-fragment' => 'downloading when some fragment is not available',
            'keep-fragments' => 'downloaded fragments on disk after downloading is finished; fragments are erased by default',
            'buffer-size' => 'Size of download buffer (e.g. 1024 or 16K) (default is 1024)',
            'no-resize-buffer' => 'not automatically adjust the buffer size. By default, the buffer size is automatically resized from an initial',
            'http-chunk-size' => 'Size of a chunk for chunk-based HTTP downloading (e.g. 10485760 or 10M) (default is disabled). May be useful for',
            'playlist-reverse' => 'playlist videos in reverse order',
            'playlist-random' => 'playlist videos in random order',
            'xattr-set-filesize' => 'file xattribute ytdl.filesize with expected file size',
            'hls-prefer-native' => 'the native HLS downloader instead of ffmpeg',
            'hls-prefer-ffmpeg' => 'ffmpeg instead of the native HLS downloader',
            'hls-use-mpegts' => 'the mpegts container for HLS videos, allowing to play the video while downloading (some players may not be able',
            'external-downloader' => 'Use the specified external downloader. Currently supports aria2c,avconv,axel,curl,ffmpeg,httpie,wget',
            'external-downloader-args' => 'Give these arguments to the external downloader',
            'batch-file' => 'File containing URLs to download (\'-\' for stdin), one URL per line. Lines starting with \'#\', \';\' or \']\' are',
            'id' => 'only video ID in file name',
            'output' => 'Output filename template, see the "OUTPUT TEMPLATE" for all the info',
            'output-na-placeholder' => 'Placeholder value for unavailable meta fields in output filename template (default is "NA")',
            'autonumber-start' => 'Specify the start value for %(autonumber)s (default is 1)',
            'restrict-filenames' => 'filenames to only ASCII characters, and avoid "&" and spaces in filenames',
            'no-overwrites' => 'not overwrite files',
            'continue' => 'resume of partially downloaded files. By default, youtube-dl will resume downloads if possible.',
            'no-continue' => 'not resume partially downloaded files (restart from beginning)',
            'no-part' => 'not use .part files - write directly into output file',
            'no-mtime' => 'not use the Last-modified header to set the file modification time',
            'write-description' => 'video description to a .description file',
            'write-info-json' => 'video metadata to a .info.json file',
            'write-annotations' => 'video annotations to a .annotations.xml file',
            'load-info-json' => 'JSON file containing the video information (created with the "--write-info-json" option)',
            'cookies' => 'File to read cookies from and dump cookie jar in',
            'cache-dir' => 'Location in the filesystem where youtube-dl can store some downloaded information permanently. By default',
            'no-cache-dir' => 'filesystem caching',
            'rm-cache-dir' => 'all filesystem cache files',
            'write-thumbnail' => 'thumbnail image to disk',
            'write-all-thumbnails' => 'all thumbnail image formats to disk',
            'list-thumbnails' => 'and list all available thumbnail formats',
            'quiet' => 'quiet mode',
            'no-warnings' => 'warnings',
            'simulate' => 'not download the video and do not write anything to disk',
            'skip-download' => 'not download the video',
            'get-url' => 'Simulate, quiet but print URL',
            'get-title' => 'Simulate, quiet but print title',
            'get-id' => 'Simulate, quiet but print id',
            'get-thumbnail' => 'Simulate, quiet but print thumbnail URL',
            'get-description' => 'Simulate, quiet but print video description',
            'get-duration' => 'Simulate, quiet but print video length',
            'get-filename' => 'Simulate, quiet but print output filename',
            'get-format' => 'Simulate, quiet but print output format',
            'dump-json' => 'Simulate, quiet but print JSON information. See the "OUTPUT TEMPLATE" for a description of available keys.',
            'dump-single-json' => 'Simulate, quiet but print JSON information for each command-line argument. If the URL refers to a playlist, dump',
            'print-json' => 'quiet and print the video information as JSON (video is still being downloaded).',
            'newline' => 'progress bar as new lines',
            'no-progress' => 'not print progress bar',
            'console-title' => 'progress in console titlebar',
            'verbose' => 'various debugging information',
            'dump-pages' => 'downloaded pages encoded using base64 to debug problems (very verbose)',
            'write-pages' => 'downloaded intermediary pages to files in the current directory to debug problems',
            'print-traffic' => 'sent and read HTTP traffic',
            'call-home' => 'the youtube-dl server for debugging',
            'no-call-home' => 'NOT contact the youtube-dl server for debugging',
            'encoding' => 'Force the specified encoding (experimental)',
            'no-check-certificate' => 'HTTPS certificate validation',
            'prefer-insecure' => 'an unencrypted connection to retrieve information about the video. (Currently supported only for YouTube)',
            'user-agent' => 'Specify a custom user agent',
            'referer' => 'Specify a custom referer, use if the video access is restricted to one domain',
            'bidi-workaround' => 'around terminals that lack bidirectional text support. Requires bidiv or fribidi executable in PATH',
            'sleep-interval' => 'Number of seconds to sleep before each download when used alone or a lower bound of a range for randomized sleep',
            'max-sleep-interval' => 'Upper bound of a range for randomized sleep before each download (maximum possible number of seconds to sleep).',
            'format' => 'Video format code, see the "FORMAT SELECTION" for all the info',
            'all-formats' => 'all available video formats',
            'prefer-free-formats' => 'free video formats unless a specific one is requested',
            'list-formats' => 'all available formats of requested videos',
            'youtube-skip-dash-manifest' => 'not download the DASH manifests and related data on YouTube videos',
            'merge-output-format' => 'If a merge is required (e.g. bestvideo+bestaudio), output to given container format. One of mkv, mp4, ogg, webm,',
            'write-sub' => 'subtitle file',
            'write-auto-sub' => 'automatically generated subtitle file (YouTube only)',
            'all-subs' => 'all the available subtitles of the video',
            'list-subs' => 'all available subtitles for the video',
            'sub-format' => 'Subtitle format, accepts formats preference, for example: "srt" or "ass/srt/best"',
            'sub-lang' => 'Languages of the subtitles to download (optional) separated by commas, use --list-subs for available language tags',
            'username' => 'Login with this account ID',
            'password' => 'Account password. If this option is left out, youtube-dl will ask interactively.',
            'twofactor' => 'Two-factor authentication code',
            'netrc' => '.netrc authentication data',
            'video-password' => 'Video password (vimeo, youku)',
            'ap-mso' => 'Adobe Pass multiple-system operator (TV provider) identifier, use --ap-list-mso for a list of available MSOs',
            'ap-username' => 'Multiple-system operator account login',
            'ap-password' => 'Multiple-system operator account password. If this option is left out, youtube-dl will ask interactively.',
            'ap-list-mso' => 'all supported multiple-system operators',
            'extract-audio' => 'video files to audio-only files (requires ffmpeg/avconv and ffprobe/avprobe)',
            'audio-format' => 'Specify audio format: "best", "aac", "flac", "mp3", "m4a", "opus", "vorbis", or "wav"; "best" by default; No effect',
            'audio-quality' => 'Specify ffmpeg/avconv audio quality, insert a value between 0 (better) and 9 (worse) for VBR or a specific bitrate',
            'recode-video' => 'Encode the video to another format if necessary (currently supported: mp4|flv|ogg|webm|mkv|avi)',
            'postprocessor-args' => 'Give these arguments to the postprocessor',
            'keep-video' => 'the video file on disk after the post-processing; the video is erased by default',
            'no-post-overwrites' => 'not overwrite post-processed files; the post-processed files are overwritten by default',
            'embed-subs' => 'subtitles in the video (only for mp4, webm and mkv videos)',
            'embed-thumbnail' => 'thumbnail in the audio as cover art',
            'add-metadata' => 'metadata to the video file',
            'metadata-from-title' => 'Parse additional metadata like song title / artist from the video title. The format syntax is the same as --output.',
            'xattrs' => 'metadata to the video file\'s xattrs (using dublin core and xdg standards)',
            'fixup' => 'Automatically correct known faults of the file. One of never (do nothing), warn (only emit a warning),',
            'prefer-avconv' => 'avconv over ffmpeg for running the postprocessors',
            'prefer-ffmpeg' => 'ffmpeg over avconv for running the postprocessors (default)',
            'ffmpeg-location' => 'Location of the ffmpeg/avconv binary; either the path to the binary or its containing directory.',
            'exec' => 'Execute a command on the file after downloading and post-processing, similar to find\'s -exec syntax. Example:',
            'convert-subs' => 'Convert the subtitles to other format (currently supported: srt|ass|vtt|lrc)',
        );
    }
}
