{"id":13479212,"url":"https://github.com/pystardust/ytfzf","last_synced_at":"2025-05-14T12:11:58.464Z","repository":{"id":38828159,"uuid":"340330957","full_name":"pystardust/ytfzf","owner":"pystardust","description":"A posix script to find and watch youtube videos from the terminal. (Without API)","archived":false,"fork":false,"pushed_at":"2024-09-27T07:00:01.000Z","size":4786,"stargazers_count":3880,"open_issues_count":67,"forks_count":401,"subscribers_count":41,"default_branch":"master","last_synced_at":"2025-04-09T03:11:15.232Z","etag":null,"topics":["cli","dmenu","fzf","posix","terminal","ueberzug","youtube"],"latest_commit_sha":null,"homepage":"","language":"Shell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/pystardust.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","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":"2021-02-19T10:12:19.000Z","updated_at":"2025-04-08T07:22:30.000Z","dependencies_parsed_at":"2024-01-09T18:02:58.822Z","dependency_job_id":"f321a9c0-be76-4858-9ed3-945b1c361586","html_url":"https://github.com/pystardust/ytfzf","commit_stats":{"total_commits":1646,"total_committers":54,"mean_commits":30.48148148148148,"dds":0.6537059538274606,"last_synced_commit":"ca637b0850ee2c3a97a0068a68bd4b8789b441ce"},"previous_names":[],"tags_count":55,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pystardust%2Fytfzf","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pystardust%2Fytfzf/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pystardust%2Fytfzf/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pystardust%2Fytfzf/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/pystardust","download_url":"https://codeload.github.com/pystardust/ytfzf/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254140768,"owners_count":22021220,"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":["cli","dmenu","fzf","posix","terminal","ueberzug","youtube"],"created_at":"2024-07-31T16:02:11.544Z","updated_at":"2025-05-14T12:11:58.438Z","avatar_url":"https://github.com/pystardust.png","language":"Shell","funding_links":[],"categories":["Shell","Applications","YouTube","Overview","cli","\u003ca name=\"transfer\"\u003e\u003c/a\u003eData transfer","Table of Contents","Tool"],"sub_categories":["Internet","YouTube","TUI Tool"],"readme":"# NOTICE\n\nThis project is no longer actively maintained, it should still work for the foreseeable future\n\n---\n\n\u003cp align=\"center\"\u003e\n    \u003ca\u003e \u003cimg src=.assets/logo.png\u003e\u003c/a\u003e\n    \u003cbr /\u003e\n    \u003cbr /\u003e\n\t\u003ca href=\"https://github.com/pystardust/ytfzf/stargazers\"\u003e\u003cimg src=\"https://img.shields.io/github/stars/pystardust/ytfzf?color=orange\u0026logo=github\u0026style=flat-square\"\u003e\u003c/a\u003e\n\t\u003ca href=\"https://github.com/pystardust/ytfzf/graphs/contributors\"\u003e\u003cimg src=\"https://img.shields.io/github/contributors/pystardust/ytfzf?style=flat-square\"\u003e\u003c/a\u003e\n\t\u003cimg src=\"https://img.shields.io/static/v1?color=%231831ad\u0026message=Euro20179\u0026label=Maintainer\u0026style=flat-square\" alt=\"Maintainer: Euro20179\"\u003e\n\t\u003ca href=\"https://github.com/pystardust/ytfzf/releases/tag/v1.1.1\"\u003e\u003cimg src=\"https://img.shields.io/github/v/tag/pystardust/ytfzf?style=flat-square\"\u003e \u003c/a\u003e\n\t\u003ca href=\"https://github.com/pystardust/ytfzf/commits/master\"\u003e\u003cimg src=\"https://img.shields.io/github/commit-activity/m/pystardust/ytfzf?color=green\u0026style=flat-square\"\u003e\u003c/a\u003e\n\t\u003ca href=\"https://discord.gg/kupWznHjRJ\"\u003e\u003cimg src=\"https://img.shields.io/discord/815609275644117022?color=yellow\u0026logo=discord\u0026style=flat-square\" alt=\"Discord\"\u003e\u003c/a\u003e\n\t\u003ca href=\"https://matrix.to/#/#ytfzf-chat:matrix.org\"\u003e\u003cimg src=\"https://img.shields.io/static/v1?color=%230eb687\u0026message=chat\u0026logo=matrix\u0026label=matrix\u0026style=flat-square\" alt=\"Discord\"\u003e\u003c/a\u003e\n    \u003cbr /\u003e\n    \u003cbr /\u003e\n    \u003ci\u003eA POSIX script that helps you find Youtube videos (without API) and opens/downloads them using mpv/youtube-dl\u003c/i\u003e\n\t\u003chr\u003e\n\u003c/p\u003e\n\n\u003ch1 align=\"center\"\u003e\n\tThis is a little showcase\n\u003c/h1\u003e\n\u003cp align=\"center\"\u003e\n\u003cimg src=.assets/ytfzf.gif width=\"100%\"\u003e\n\u003c/p\u003e\n\n---\n\n# Table Of Contents\n\n- [`Dependencies`](#Dependencies)\n- [`Install`](#Install)\n- [`Features`](#Features)\n- [`Examples`](#Examples)\n- [`Configuration`](#Configuration)\n- [`Bugs`](#Bugs)\n- [`Contributing`](#Contributing)\n- [`Credits`](#Credits)\n\n---\n\n# Dependencies\n\nThere are only 2 required dependencies, however the rest require some configuration before you can replace them.\n\n## Required dependencies\n\n- [`jq`](https://github.com/stedolan/jq)\n- [`curl`](https://github.com/curl/curl)\n\n## Recommended dependencies\n\n- [`mpv`](https://github.com/mpv-player/mpv) (the default video and audio player)\n- [`fzf`](https://github.com/junegunn/fzf) (the default menu selection screen)\n\n## Optional dependencies\n\n- [`yt-dlp`](https://github.com/yt-dlp/yt-dlp) (for downloading)\n- [`dmenu`](https://tools.suckless.org/dmenu/) (only if using the -D option)\n- [`ueberzugpp`](https://github.com/jstkdng/ueberzugpp)\n  - needed for the following thumbnail viewers:\n    - `kitty`, `iterm2`, `sixel`, and `ueberzug`\n  - the original [`ueberzug`](https://github.com/seebye/ueberzug) or any fork may be used if you only want to use the `ueberzug` viewer.\n\n### Thumbnail Viewers\n\n- **To use a thumbnail viewer include `-T \u003cviewer\u003e` in the command when running ytfzf**\n\n| Program                                                                | Wayland Support        |\n| :--------------------------------------------------------------------- | :--------------------- |\n| [`kitty`](https://github.com/kovidgoyal/kitty) (requires `ueberzugpp`) | \u0026#9989;                |\n| `iterm2` (requires `ueberzugpp`)                                       | \u0026#9989;                |\n| `sixel` (requires `ueberzugpp`)                                        | \u0026#9989;                |\n| `sway` (requires `ueberzugpp`)                                         | \u0026#9989; (only on sway) |\n| `wayland` (requires `ueberzugpp`)                                      | \u0026#9989;                |\n| [`chafa`](https://github.com/hpjansson/chafa)                          | \u0026#9989;                |\n| [`catimg`](https://github.com/posva/catimg)                            | \u0026#9989;                |\n| [`imv`](https://git.sr.ht/~exec64/imv)                                 | \u0026#9989;                |\n| [`mpv`](https://github.com/mpv-player/mpv)                             | \u0026#9989;                |\n| [`swayimg`](https://github.com/artemsen/swayimg)                       | only on `sway`         |\n| [`swayimg`](https://github.com/artemsen/swayimg) (-T swayimg-hyprland) | only on `hyprland`     |\n\n# Install\n\n\u003ca href=\"https://repology.org/metapackage/ytfzf\"\u003e\n    \u003cimg src=\"https://repology.org/badge/vertical-allrepos/ytfzf.svg\" alt=\"Repo status\" align=\"right\"\u003e\n\u003c/a\u003e\n\n**if on `linux` and installed using make on version `2.0` or prior, run `sudo make uninstall-old` first**\n\n1. Install the dependencies listed [above](#Dependencies)\n2. Run the following commands\n\n```sh\ngit clone https://github.com/pystardust/ytfzf\ncd ytfzf\nsudo make install doc\n```\n\n- If you wish to not install documentation (highly unrecommended) run `sudo make install` instead.\n\n- If you wish to install addons, run `sudo make addons`\n\n  - `YTFZF_SYSTEM_ADDONS_DIR` will point to `/usr/local/share/ytfzf/addons` even if you set `PREFIX` to something else\n  - If you use a different prefix, it would be smart to export `YTFZF_SYSTEM_ADDONS_DIR` to `$PREFIX/share/ytfzf/addons` in a shell startup file.\n\n- You may also install `ytfzf` through your package manager, as listed on the side.\n\n## Addons\n\nAddons are extra features that will not be as supported as everything built into `ytfzf` itself.\n\nAddons are located in `addons`, copy any addon to `~/.config/ytfzf/{addon-type}/{addon}`, and give it execute permissions.\n\nYou may also just copy the entire addon folder type, eg: `cp -r addons/thumbnail-viewers ~/.config/ytfzf/`\n\n### Usage\n\nTo use a scraper addon run `ytfzf -c \u003cscraper\u003e ...`\n\nTo use a thumbnail-viewer addon run `ytfzf -T \u003cviewer\u003e ...`\n\nTo use a interface addon run `ytfzf -i \u003cinterface\u003e ...`\n\nTo use a url-handler addon run `ytfzf -u \u003chandler\u003e ...`\n\nTo use a sort-name addon run `ytfzf --sort-name=\u003csort-name\u003e ...`\n\nTo use an extension addon run `ytfzf -e \u003cextension\u003e ...`\n\n---\n\n# Features\n\n- Subscriptions\n- Thumbnails\n- Watch history\n- Search History\n- Downloading\n- Queueing multiple videos\n- Custom menus, and scrapers\n- Addon support\n\n---\n\n# Examples\n\n\u003e Search with thumbnails\n\n```sh\nytfzf -t \u003csearch\u003e\n```\n\n\u003e Use `dmenu` as the menu instead of `fzf`\n\n```sh\nytfzf -D \u003csearch\u003e\n```\n\n\u003e Print the link of the selected video instead of playing it\n\n```sh\nytfzf -L \u003csearch\u003e\n```\n\n\u003e Search Odysee instead of youtube\n\n```sh\nytfzf -cO \u003csearch\u003e\n```\n\n\u003e Use the chafa thumbnail viewer, pass --vo=sixel, and --quiet to mpv, scrape odysee with the search _odysee search_, youtube with the search: _youtube search_, and also scrape subscriptions\n\n```sh\nytfzf -t -T chafa --url-handler-opts='--vo=sixel --quiet' -cO,Y,SI --multi-search odysee search,youtube search\n```\n\n---\n\n# Configuration\n\nEverything that is an option can also be configured in `~/.config/ytfzf/conf.sh`.\n\nIn addition, the video player and other things may be changed here\n\nHere is a [sample configuration](docs/conf.sh) (please dont use it)\n\nFor more information, see `ytfzf(5)` which should be installed, if it's not see [the wiki](https://github.com/pystardust/ytfzf/wiki).\n\n---\n\n# Bugs\n\n- _dwm with swallow patch: Images don't render with ueberzug when looped (ie, option `-l`)_\n- _if thumbnails are not working `.Xauthority` might be causing it. Try deleting it and relogging into your computer._\n- When fzf is not set to 100% height, thumbnails may appear in the wrong position\n\n# Contributing\n\nFeel free to contribute, and add your name to the credits, please use the development branch. For more information see [contributing](CONTRIBUTING.md)\n\n# Credits\n\n| User          | Contributions                             | Donate |\n| :------------ | :---------------------------------------- | :----- |\n| Pystardust    | [contributions](credits/pystardust.md)    |        |\n| Euro20179     | [contributions](credits/euro20179.md)     |        |\n| Simonhughxyz  | [contributions](credits/simonhughxyz.md)  |        |\n| Jac-Zac       | [contributions](credits/jac-zac.md)       |        |\n| Mudskipper875 | [contributions](credits/mudskipper875.md) |        |\n| Gardockt      | [contributions](credits/gardockt.md)      |        |\n| qoheniac      | [contributions](credits/qoheniac.md)      |        |\n| mathisto      | [contributions](credits/mathisto.md)      |        |\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpystardust%2Fytfzf","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpystardust%2Fytfzf","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpystardust%2Fytfzf/lists"}