Skip to content


Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?

Latest commit

* Start on problem fix

* Fixed loading message and removed rewrite README status

* Minor viewer improvements

Git stats


Failed to load latest commit information.
Latest commit message
Commit time
October 24, 2023 16:01
September 1, 2022 14:57
August 20, 2022 13:08


YouTube archiving made simple.


To install Yark, simply download Python 3.9+ and FFmpeg (optional), then run the following:

$ pip3 install yark

Managing your Archive

Once you've installed Yark, think of a name for your archive (e.g., "foobar") and copy the target's url:

$ yark new foobar

Now that you've created the archive, you can tell Yark to download all videos and metadata using the refresh command:

$ yark refresh foobar

Once everything has been downloaded, Yark will automatically give you a status report of what's changed since the last refresh:

Report Demo

Viewing your Archive

Viewing you archive is easy, just type view with your archives name:

$ yark view foobar

This will pop up an offline website in your browser letting you watch all videos πŸš€

Viewer Demo

Under each video is a rich history report filled with timelines and graphs, as well as a noting feature which lets you add timestamped and permalinked comments πŸ‘

Viewer Demo – Stats

Light and dark modes are both available and automatically apply based on the system's theme.


Here are some things to keep in mind when using Yark; the good and the bad:

  • Don't create a new archive again if you just want to update it, Yark accumulates all new metadata for you via timestamps
  • Feel free to suggest new features via the issues tab on this repository
  • Scheduling isn't a feature just yet, please use cron or something similar!

Archive Format

The archive format itself is simple and consists of a directory-based structure with a core metadata file and all thumbnail/video data in their own directories as typical files:

  • [name]/ – Your self-contained archive
    • yark.json – Archive file with all metadata
    • yark.bak – Backup archive file to protect against data damage
    • videos/ – Directory containing all known videos
      • [id].* – Files containing video data for YouTube videos
    • thumbnails/ – Directory containing all known thumbnails
      • [hash].png – Files containing thumbnails with its hash

It's best to take a few minutes to familiarize yourself with your archive by looking at files which look interesting to you in it, everything is quite readable.