• Stars
    star
    1,807
  • Rank 25,701 (Top 0.6 %)
  • Language
    Python
  • License
    MIT License
  • Created over 2 years ago
  • Updated about 1 year ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

YouTube archiving made simple.

Yark

YouTube archiving made simple.

Yark is being rewritten on the v1.3-rewrite branch!

Installation

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 https://www.youtube.com/channel/UCSMdm6bUYIBN0KfS2CVuEPA

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.

Details

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 BLAKE2 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.

More Repositories

1

argi

Argument parsing for the future 🚀
Rust
127
star
2

axum-auth

High-level http auth extractors for axum
Rust
76
star
3

tinydb

A small-footprint, in-memory database.
Rust
42
star
4

jingo

A lightweight, high-level language designed for rapid prototyping
Rust
9
star
5

torro

A correct and easy-to-use BitTorrent library
Rust
9
star
6

sysDeny

A normal looking syskey box with a suprise at the end
C#
8
star
7

onft

Bespoke toolkit for Non-fungible token (NFT) technology
Rust
5
star
8

mdcx

Seemless markdown to docx converter
Python
5
star
9

holenews

Automated reporting and wiki website for the Foxhole game
Rust
4
star
10

owpm

owpm, the simple python package manager.
Python
4
star
11

superconf

A barebones configuration file
Rust
3
star
12

nakes

The simple python packaging tool ✨
Rust
3
star
13

kurz

Event streaming and key-value store built on gossiping
Rust
3
star
14

rocket-basicauth

A high-level basic access authentication request guard for Rocket.rs
Rust
3
star
15

zypo

Vue client for Zypo.app, a markdown editor/storage site
Vue
2
star
16

zinharo-api

API for Zinharo.com, the central service of the .cap cracker
Python
2
star
17

tagzen

An api microservice to tag and catagorise tv & movies at ease
Rust
2
star
18

irkle

A merkle tree lib using blake3 and binary tree arrays for superfast trees ⚡
Rust
2
star
19

zypo-rs

Old lalrpop-based compiler that was never finished. See link for new compiler
Rust
2
star
20

devconf

Installer for my dotfiles and general setup within a Manjaro i3 environment
Vim Script
2
star
21

openttdrpi

Resources for running OpenTTD on the Raspberry Pi
1
star
22

stytch

Unofficial library to use the Stych email flow in Rust
Rust
1
star
23

mkplay

Extendible video playlist visualiser
Python
1
star