FreeTubeApp / FreeTubeApp/FreeTube

[Feature Request]: Option to apply specific color filter (pixel shader) to all images and videos

Open
#7,382 2 comments 0 reactions 0 assignees View on GitHub
E: ease of use improvement E: keyboard shortcut E: new feature E: new optional setting E: visual improvement
Dominant language
Vue
Stars
21.9k
Forks
1.5k
Avg merge
1d 15h
Merged PRs (30d)
62

Description

### Guidelines

- [x] I have [searched the issue tracker for open and closed issues](https://github.com/FreeTubeApp/FreeTube/issues?q=is%3Aissue+sort%3Arelevance-desc) that are similar to the feature request I want to file, without success.
- [x] I have searched the [documentation](https://docs.freetubeapp.io/) for information that matches the description of the feature request I want to file, without success.
- [x] This issue contains only one feature request.

### Problem Description

Firstly, thanks to everyone who has put their time into such a useful project that I could not do without.
Secondly - Please note, this is _NOT_ related to 6703 which is asking for something _far_ more complex.

Some Background... Due to a vision issue, I am having to use Windows with the "Inverted Colors" Accessibility Color Filter. I then have to apply the same color inversion within other software to re-normalize those colors (i.e. Photos and Videos)

For example when I find a video on Freetube that I want to watch, I have to currently spawn PotPlayer from FreeTube and then use the "Invert" pixel shader within PotPlayer as per: Right Click -> Video -> (Pixel Shaders) ... Invert.

### Proposed Solution

However it would be much for efficacious for me if this Pixel Shader (Or, if you will, Color Filter) was integrated directly into Freetube as an On/Off Toggle option/Hotkey.

This would be such that the Invert/Negative Shader/Filter was applied to all video Thumbnails, video preview and video so that the it could then be watched properly.

Code would be as below (Apologies this is in OpenGL as I am not sure what Shader language Freetube would leverage).

```
void main() {
vec4 textureColor = texture(textureUnit, texCoord); // Get pixel color
gl_FragColor = vec4(1.0 - textureColor.r, 1.0 - textureColor.g, 1.0 - textureColor.b, textureColor.a); // Invert RGB and keep alpha
}
```

### Alternatives Considered

PotPlayer

### Issue Labels

visual improvement, ease of use improvement, new feature, new optional setting, new keyboard shortcut

### Additional Information

Thank you kindly for the consideration of this request - SAVP

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.