en-us/about_ytdlWrapper.help.txt

TOPIC
    about_ytdlWrapper
     
     
     
SHORT DESCRIPTION
    Explains how the ytdlWrapper module can be used to speed up and automate
    youtube-dl through templates and jobs.
     
     
     
OVERVIEW
 == This module manages invoking youtube-dl through a simple and intuitive
    interface. It allows for the creation of templates, which allow the user
    to reuse a specific configuration whilst giving it some leeway. An example
    of this would be a template to download music; where, only the url will
    differ from run to run. The module also allows for the creation of jobs,
    which allow a certain configuration to be repeated, and to store data
    between runs. An example of this would be an archival job; where data is
    stored across runs to maintain a consistent file format.
  
  
 == The cmdlets in this module operate on [YoutubeDlTemplate] and
    [YoutubeDlJob] objects. the objects retrieved by the `Get-YoutubeDlItem`
    cmdlet can be piped to:
        - Set-YoutubeDlItem
        - Remove-YoutubeDlItem
        - Invoke-YoutubeDl
     
     
 == This module has custom-defined formatting outputs for:
        ------- -----
        Cmdlet Alias
        ------- -----
        Format-List fl
        Format-Table ft
        Format-Custom fc
        Format-Wide fw
     
    The 'Format-Custom' & 'Format-List' views contain the largest amount
    of information regarding the template or job.
     
     
 == A font with ligatures is recommended for the best and clearest visual
    display.
     
    When running in the 'Windows Terminal', fancy formatting is supported.
    This formatting uses colours and emojis to make the output even clearer
    and easier to read/scan through.
     
     
 == The cmdlets in this module have default aliases:
        ------- -----
        Cmdlet Alias
        ------- -----
        New-YoutubeDlItem nydl
        Get-YoutubeDlItem gydl
        Set-YoutubeDlItem sydl
        Remove-YoutubeDlItem rydl
        Invoke-YoutubeDl iydl
     
     
     
USING THIS MODULE
 == There are 3 main ways of using this module:
        1. Executing youtube-dl configuration files as-is.
        2. Creating and using templates which ask the user for input before
           executing.
        3. Creating and executing jobs which store variables between runs.
         
         
 == Options (1) involves using a complete youtube-dl configuration file, which
    gets executed as is. This is an alternative way to running:
     
        PS C:\> youtube-dl.exe --config-location "~\config.txt"
     
    The benefit of using the module for this is that the module provides a
    powershell compliant name which may be easier to remember/type.
     
    For detailed information, see the "INVOKING YOUTUBE-DL" section below.
     
     
 == Options (2) involves using an almost-complete youtube-dl configuration file
    as a template. This file will not have everything hardcoded, so when a
    template is executed, the cmdlet will ask the user for inputs to
    "fill in the gaps", before invoking youtube-dl.
     
    An example of this is a "music" template. The configuration file is set up
    to download a music stream and save it as a music file, but the url from
    which to download the music from is not hardcoded. When the template is
    executed, the cmdlet will ask for a url, which will then be temporarily put
    into the configuration file. Then youtube-dl is invoked with the "filled-in"
    configuration file.
     
    This allows you to preset some options, and then reuse the configuration
    file again and again to download different pieces of media manually.
     
    For detailed information, see 'about_ytdlWrapper_templates'.
     
     
 == Option (3) involves using an almost-complete youtube-dl configuration file,
     as a job. This file will not have everything hardcoded, but will rather
    have variables and scriptblocks defined. When a job is executed, the
    variable values will be used to "fill in the gaps", before invoking
    youtube-dl. Afterwards, the scriptblocks decide on the new values
    for the variables.
     
    An example of this is an "archive" job. The configuration file is set up
    to download a certain playlist in some format. However, the files will be
    autonumbered consecutively between job runs. When the job is executed, the
    cmdlet will get the latest number from a variable, and that will be
    temporarily put into the configuration file. Then youtube-dl is invoked with
    the "filled-in" configuration file. After youtube-dl finished, a scriptblock
    will get the latest number from the file names and store that, so when the
    job is ran next time, the numbering will continue from where it left off.
     
    This allows you to create "smart" jobs which can store variables between
    runs. Archiving is one example of such a use case; there is no limit to what
    you can do with this.
     
    For detailed information, see 'about_ytdlWrapper_jobs'.
     
     
     
INVOKING YOUTUBE-DL
 == To invoke youtube-dl with a completed configuration file, run:
     
        PS C:\> Invoke-YoutubeDl -Path "~\config.txt"
         
    This command will invoke youtube-dl against the configuration file
    "config.txt". This configuration file must be complete and valid, otherwise
    youtube-dl will error.
     
    -Path
        Specifies the path of the location of the configuration file to use.
     
    OPTIONAL PARAMETERS
     
    -WhatIf
        Shows what would happen if the cmdlet runs. The cmdlet does not run.
         
    -Confirm
        Prompts you for confirmation before running any state-altering actions
        in this cmdlet.
         
    <CommonParameters>
        This cmdlet supports the common parameters: Verbose, Debug,
        ErrorAction, ErrorVariable, WarningAction, WarningVariable,
        OutBuffer, PipelineVariable, and OutVariable. For more information, see
        about_CommonParameters (https://go.microsoft.com/fwlink/?LinkID=113216).
     
     
     
OTHER
 == The module stores all data in '%APPDATA%\Powershell\ytdlWrapper'. It is
    advised to **not** manually modify the '.xml' files within this directory
    as it could have unintended consequences.
     
     
 == If you create a new template or job using the `New-YoutubeDlItem` cmdlet
    without specifying the '-DontMoveConfigurationFile' switch, the
    configuration files will be moved inside of the '\Templates' or '\Jobs'
    folder respectively, and renamed to the name of the item.
     
     
     
KEYWORDS
    ytdlWrapper
    Youtube
    Video
    Download
    Wrapper