Parses a list of given CBC video URLs and downloads the video files as MP4. Downloads run in parallel but are throttled to three videos at a time to respect CBC's bandwidth.
A separate script takes a single CBC media ID as input and downloads a single file.
Tested to work on (most) video content from the Tokyo 2020 Olympics, the Beijing 2022 Olympics, the Paris 2024 Olympics, and the Milano Cortina 2026 Olympics.
- Microsoft Windows
- PowerShell 7.0 or higher; install from the Microsoft Store, WinGet (
winget install Microsoft.PowerShell), or PowerShell on GitHub. - The Windows binary of FFmpeg.
- The Windows binary of yt-dlp.
You can install FFmpeg and yt-dlp using the script provided or do it yourself.
Use Install-ytdlp-Prerequisites.ps1:
- Clone this repo into a local directory of your choice.
- Open
pwsh.exeand navigate to the repo directory. - Run
./Install-ytdlp-Prerequisites.ps1. The script will retrieve FFmpeg and yt-dlp binaries for you and place them in the working directory.- Note: This script downloads the nightly build of yt-dlp, which is required for Milano Cortina 2026 Olympics support.
- Download FFmpeg and yt-dlp (see Prerequisites for links).
- Note: You must use the nightly build of yt-dlp for Milano Cortina 2026 Olympics support.
- Extract these three FFmpeg binaries into the same directory as the repo:
ffmpeg.exeffplay.exeffprobe.exe
- Copy
yt-dlp.exeinto the same directory as the repo.
For Milano Cortina 2026 Olympics videos, use the URL from your browser's address bar. The structure should look like this:
https://gem.cbc.ca/curling-norway-vs-canada-mixed-doubles-round-robin-30045
Use Invoke-ytdlp-CBC-Single.ps1:
- Open
pwsh.exeand navigate to the repo directory. - Run
./Invoke-ytdlp-CBC-Single.ps1. The script will prompt for a link. Provide it and continue.- Example: video link
https://www.cbc.ca/player/play/1234567891011orhttps://gem.cbc.ca/curling-norway-vs-canada-mixed-doubles-round-robin-30045.
- Example: video link
Use Invoke-ytdlp-CBC.ps1:
- Populate
URLList.txtwith a list of CBC Video links you want to retrieve, one per line.- Example:
https://www.cbc.ca/player/play/1234567891011 - Example:
https://gem.cbc.ca/curling-norway-vs-canada-mixed-doubles-round-robin-30045
- Example:
- Open
pwsh.exeand navigate to the repo directory. - Run
./Invoke-ytdlp-CBC.ps1and watch it go.
- PowerShell 7 or higher is required to support parallel threads in the ForEach-Object loop.
- These scripts are only designed to work when their working directory contains the scripts, text file, and binaries.
- Some CBC video content - typically longer recordings - are presented only as HLS in m3u8 format. Links in this format may fail to download.