{"id":14979580,"url":"https://github.com/owez/yark","last_synced_at":"2025-04-29T18:52:32.451Z","repository":{"id":58583265,"uuid":"525542994","full_name":"Owez/yark","owner":"Owez","description":"YouTube archiving made simple.","archived":false,"fork":false,"pushed_at":"2025-01-12T18:44:56.000Z","size":14164,"stargazers_count":2154,"open_issues_count":21,"forks_count":67,"subscribers_count":19,"default_branch":"v1.2","last_synced_at":"2025-04-10T00:10:36.140Z","etag":null,"topics":["archive","osint","youtube","youtube-dl"],"latest_commit_sha":null,"homepage":"https://pypi.org/project/yark/","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Owez.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2022-08-16T21:08:44.000Z","updated_at":"2025-04-09T10:22:22.000Z","dependencies_parsed_at":"2024-10-29T08:31:06.595Z","dependency_job_id":"986e4dcf-f450-44cc-9e24-17e670653850","html_url":"https://github.com/Owez/yark","commit_stats":{"total_commits":136,"total_committers":5,"mean_commits":27.2,"dds":0.03676470588235292,"last_synced_commit":"9ddd0ec3c050f1364b787a30bba3f36f53ab75a4"},"previous_names":[],"tags_count":7,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Owez%2Fyark","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Owez%2Fyark/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Owez%2Fyark/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Owez%2Fyark/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Owez","download_url":"https://codeload.github.com/Owez/yark/tar.gz/refs/heads/v1.2","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":251565191,"owners_count":21609970,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["archive","osint","youtube","youtube-dl"],"created_at":"2024-09-24T14:00:20.738Z","updated_at":"2025-04-29T18:52:32.419Z","avatar_url":"https://github.com/Owez.png","language":"Python","readme":"# Yark\n\nYouTube archiving made simple.\n\n\u003c!-- NOTE: rewrite delayed for now, ah well --\u003e\n\u003c!-- \u003ca href=\"https://github.com/Owez/yark/tree/v1.3-rewrite\"\u003e\u003cimg src=\"./examples/images/rewrite.png\" alt=\"Yark is being rewritten on the v1.3-rewrite branch!\" width=400 /\u003e\u003c/a\u003e --\u003e\n\n\u003c!-- NOTE: uncomment when new gui is out --\u003e\n\u003c!-- If you're reading this, you're probably trying to download/use Yark via PyPI which has been removed in newer versions. You can download a modern version of Yark [here](https://github.com/Owez/yark).\n\u003cp\u003e\u003cimg src=\"https://raw.githubusercontent.com/Owez/yark/1.2-support/examples/images/transition.png\" alt=\"Version release transition\" title=\"Version release transition\" width=\"450\" /\u003e\u003c/p\u003e --\u003e\n\n## Installation\n\nTo install Yark, simply download [Python 3.9+](https://www.python.org/downloads/) and [FFmpeg](https://ffmpeg.org/) (optional), then run the following:\n\n```shell\n$ pip3 install yark\n```\n\n## Managing your Archive\n\nOnce you've installed Yark, think of a name for your archive (e.g., \"foobar\") and copy the target's url:\n\n```shell\n$ yark new foobar https://www.youtube.com/channel/UCSMdm6bUYIBN0KfS2CVuEPA\n```\n\nNow that you've created the archive, you can tell Yark to download all videos and metadata using the refresh command:\n\n```shell\n$ yark refresh foobar\n```\n\nOnce everything has been downloaded, Yark will automatically give you a status report of what's changed since the last refresh:\n\n\u003cp\u003e\u003cimg src=\"https://raw.githubusercontent.com/Owez/yark/1.2-support/examples/images/cli_dark.png\" alt=\"Report Demo\" title=\"Report Demo\" width=\"600\" /\u003e\u003c/p\u003e\n\n## Viewing your Archive\n\nViewing you archive is easy, just type `view` with your archives name:\n\n```shell\n$ yark view foobar\n```\n\nThis will pop up an offline website in your browser letting you watch all videos 🚀\n\n\u003cp\u003e\u003cimg src=\"https://raw.githubusercontent.com/Owez/yark/1.2-support/examples/images/viewer_light.png\" alt=\"Viewer Demo\" title=\"Viewer Demo\" width=650 /\u003e\u003c/p\u003e\n\nUnder 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 👐\n\n\u003cp\u003e\u003cimg src=\"https://raw.githubusercontent.com/Owez/yark/1.2-support/examples/images/viewer_stats_light.png\" alt=\"Viewer Demo – Stats\" title=\"Viewer Demo – Stats\" width=650 /\u003e\u003c/p\u003e\n\nLight and dark modes are both available and automatically apply based on the system's theme.\n\n## Details\n\nHere are some things to keep in mind when using Yark; the good and the bad:\n\n- Don't create a new archive again if you just want to update it, Yark accumulates all new metadata for you via timestamps\n- Feel free to suggest new features via the issues tab on this repository\n- Scheduling isn't a feature just yet, please use [`cron`](https://en.wikipedia.org/wiki/Cron) or something similar!\n\n## Archive Format\n\nThe 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:\n\n- `[name]/` – Your self-contained archive\n  - `yark.json` – Archive file with all metadata\n  - `yark.bak` – Backup archive file to protect against data damage\n  - `videos/` – Directory containing all known videos\n    - `[id].*` – Files containing video data for YouTube videos\n  - `thumbnails/` – Directory containing all known thumbnails\n    - `[hash].png` – Files containing thumbnails with its hash\n\nIt'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.\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fowez%2Fyark","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fowez%2Fyark","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fowez%2Fyark/lists"}