{"id":16336749,"url":"https://github.com/jd91mzm2/termplay","last_synced_at":"2025-05-16T09:03:41.039Z","repository":{"id":22007677,"uuid":"94435323","full_name":"jD91mZM2/termplay","owner":"jD91mZM2","description":"GitLab: https://gitlab.com/jD91mZM2/termplay","archived":false,"fork":false,"pushed_at":"2022-06-06T20:18:09.000Z","size":1163,"stargazers_count":541,"open_issues_count":4,"forks_count":14,"subscribers_count":15,"default_branch":"master","last_synced_at":"2025-05-10T07:47:34.090Z","etag":null,"topics":["ansi","audio","rust","terminal","truecolor","video","watch","youtube","youtube-dl"],"latest_commit_sha":null,"homepage":"","language":"Rust","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/jD91mZM2.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}},"created_at":"2017-06-15T12:02:53.000Z","updated_at":"2025-05-08T12:26:40.000Z","dependencies_parsed_at":"2022-07-24T20:32:13.383Z","dependency_job_id":null,"html_url":"https://github.com/jD91mZM2/termplay","commit_stats":null,"previous_names":[],"tags_count":10,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jD91mZM2%2Ftermplay","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jD91mZM2%2Ftermplay/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jD91mZM2%2Ftermplay/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jD91mZM2%2Ftermplay/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/jD91mZM2","download_url":"https://codeload.github.com/jD91mZM2/termplay/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254501554,"owners_count":22081528,"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":["ansi","audio","rust","terminal","truecolor","video","watch","youtube","youtube-dl"],"created_at":"2024-10-10T23:44:54.506Z","updated_at":"2025-05-16T09:03:41.014Z","avatar_url":"https://github.com/jD91mZM2.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"# termplay\n*Name by the awesome [@tbodt](https://github.com/tbodt)*\n\nAre you a terminal fanboy like me?  \nSure, but do you ever watch YouTube? In your terminal?\n\n----------------------------------------------------\n\n`termplay` is the tool to convert images to ANSI sequences.  \nBut it also supports playing videos...  \nWritten in the systems language Rust, it has some solid performance.\n\n  - **Multiple modes**\n    - Sixels: Only supported by a few terminals, like xterm.\n    - Unicode halfblock: This is the same as TrueColor below, but uses unicode half-blocks for smaller pixels.\n    - TrueColor: Any RGB color, supported by most terminals.\n    - 256 color: The closest representation of a color that can be fit within 1 byte. Use this if nothing else works.\n  - **Flexible**\n    - Change framerate, size and more using command line switches\n  - **Adapting size**\n    - Automatically scales the image to fit your terminal\n\nTermplay also allows you to control the media, such as zoom in or pause the video.  \n\n  - **Mouse Scroll / +/-**: Zoom\n  - **Mouse Drag / W/A/S/D**: Pan\n  - **Space**: Play/Pause\n  - **Left/Right**: Seek\n  - **Up/Down**: Volume\n  - **q / Ctrl+C**: Quit\n\n![Example image](https://i.imgur.com/54MXrSk.png)  \n*(Landscape image from [pexels.com](https://www.pexels.com/photo/beautiful-holiday-lake-landscape-358482/))*\n\n## Using\n\n### Image\n\n```\ntermplay 2.0.0\njD91mZM2 \u003cme@krake.one\u003e\nPlay images/videos in your terminal\n\nUSAGE:\n    termplay [FLAGS] [OPTIONS] \u003cpath\u003e\n\nFLAGS:\n        --help       Prints help information\n    -q, --quiet      Ignores all the nice TUI things for simple image viewing\n    -V, --version    Prints version information\n\nOPTIONS:\n    -c, --converter \u003cconverter\u003e    Decides how the image should be displayed [default: halfblock]  [possible values:\n                                   color256, halfblock, sixel, truecolor]\n    -h, --height \u003cheight\u003e          Sets the height (defaults to the terminal size, or 24)\n    -r, --rate \u003crate\u003e              Sets the framerate [default: 24]\n        --ratio \u003cratio\u003e            Sets the terminal font ratio (only takes effect with some converters)\n    -w, --width \u003cwidth\u003e            Sets the width (defaults to the terminal size, or 80)\n\nARGS:\n    \u003cpath\u003e    Specifies the path to the image/video to play\n```\n\n## Compiling\n\n### Compile time requirements\n\n**Rust v1.25 or more** is required. See your Rust version with\n```\nrustc --version\n```\nUpdate rust with\n```\nrustup update stable\n```\n\n### Compiling!\n\nOther than that, [this project is hosted on crates.io](https://crates.io/crates/termplay).  \nSo to install you just need to run\n```\ncargo install termplay --features bin\n```\n\n(Note: The `--features` part is a hack because binaries don't allow specifying separate dependencies)\n\n### Features\n\nAlmost all dependencies are optional and can be disabled!\n\nDefault features:\n\n  - termion: This is what enables the rich image viewer. Disabling this will disable almost everything.\n  - gst: Video support, requires [gstreamer](https://gstreamer.freedesktop.org/)\n  - sixel: Support for sixels, requires [libsixel](https://github.com/saitoha/libsixel)\n\nTo disable default features, run  \n\n```\ncargo install termplay --no-default-features --features \"bin,...\"\n```\nwhere `...` is a comma separated list of features you want to keep.\n\n### Nix\n\nTermplay is available with the default features on Nix!\n\n```\nnix-env -iA nixpkgs.termplay\n```\n\n### Arch Linux\n\nIf you just want to get this running on Arch Linux with the default features, you can use the  \n[AUR Package (unofficial)](https://aur.archlinux.org/packages/termplay/)\n\n### Debian / Ubuntu\n\nExample:\n\n```\nsudo apt install libopenal-dev libsndfile1-dev libsixel-dev libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev libgstreamer-plugins-bad1.0-dev\ncargo install termplay --features bin\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjd91mzm2%2Ftermplay","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjd91mzm2%2Ftermplay","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjd91mzm2%2Ftermplay/lists"}