-
-
Notifications
You must be signed in to change notification settings - Fork 850
Contributing
What about telling friends, or discussing here (or on reddit, twitter, quora, etc.) And please let us know if you make/made a blog-post or video about us.
We need concise explanations with .gifs /screenshots /videos. And content for Tooltips in the app. (And invisible Tags & alternative names of the features for search, multi-language)
You can help us to translate ImprovedTube. Please, check the wiki page.
We are volunteers. ImprovedTube is made out of love for our users. Your happiness is the currency of our hearts. We dare to keep ImprovedTube open-source & free, despite it is still a lot of work, that won't stop while YouTube releases updates.
You can help us by logging any bugs you find. (As a small team, prioritization is critical, so knowing which issues are impactful for many users or not can help us.)
- BTW, you can check an extension in incognito mode ( chrome://extensions
detailsor chrome://extensions/?id=bnomihfieiccainjcjblhegjgglakjdd) ) - In some cases, we might compare the DOM YouTube gives you, by copying the whole
<html>root element (includes all children), in the top left of Dev-Tools:
(FireFox:)
- (There are 2-3 different versions of this depending if you open a new window or clicked a link on YouTube. While the bug might not happen in each of these moments.)
Welcome!
Some inspiration:
- Pinned issues, all labels, (HTMLMediaElement, etc.)
-
integration (Merging of repos; future collaborative structures)
- Global ideas
View Bugs, ordered by activity or label:important.
Feature Requests may be ordered by: #Set-and-forget, prepared #Plan, #Uniqueness or #Should be crowdsourced, ...
We may use priority lists and difficulty / complexity levels (which can be combined in queries).
More lists/queries: readme.md#to-do#labels.
-
To add a name edit our English locale.py (and optionally more languages). Please add all unique synonyms and the best keywords for search too.
-
Add a toggle or other UI element in the menu.
-
ImprovedTube.storage will know if it is enabled (ImprovedTube.storage is loaded at the start of our JS)
- This info is also available via CSS rules (We write the settings to the root element, before the page loaded. This is optional development convenience. Rare CSS may still only be injected depending on JS. Browsers may process CSS rules from right to left. In future we should use a rule engine like uBlock or integrate uBlock)
-
We have some global variables & regex
more:
-
The extension does not work with data much yet: https://github.com/LuanRT/YouTube.js/issues/976 (... )
-
We observe the DOM for changes to (re-)apply features as soon as certain elements appear. (If necessary / Troubleshooting)
-
We have our extension popup's GUI / re-purposable functions in a little library Satus.js
-
Optional: We react if a feature is ever toggled off while on youtube, so that we can undo it still on the same page (or possibly show an introductory animation once enabled). Alternatively, if your feature adds a DOM element, please name that the same, so that we can remove it automatically (or for multiple Elements include the feature name).
-
(rare:) if your edit requires a difference in one browser: Add to our build.py.
Updating the name of a feature or option in our menu? - Import people's old storage!
We started labeling some discussions: Knowledge Base
-
Testing all Browser-Extension changes with 1 click: Extension Reloader & enable the option to reload the current tab too & set a nice shortcut like
alt+Echrome://extensions/shortcuts- (Reload for content-script changes. Others could also be edited in the directory where they are installed)
- Alternatively fully automatic: https://github.com/rubenspgcavalcante/webpack-extension-reloader
-
-
- store APIs / github actions/workflows + auto testing #842
-
-
Depending what feature you work on : https://github.com/kdzwinel/DOMListenerExtension, https://chrome.google.com/webstore/detail/visual-css-editor/cibffnhhlfippmhdmdkcfecncoaegdkh, https://chrome.google.com/webstore/detail/editthiscookie/fngmhnnpilhplaeedifhccceomclgfbg
- You might get different Youtube experiments, depending if you are logged in or not.
- (General remedy: We always have the option to sensitively offer GUI on top of Youtube, instead of fiddling to integrate our's: CSS position:fixed or sticky)
The important CSS IDs (& pathes) should stay the same in all current & future YouTube.
Yet, we could predict how Youtube might be renaming some still... We can even search for new names when old ones disappear. JS regEx are efficient!
Optionally extensions can apply to include files with changing names/rules in the repo or so, without requiring to have a new version approved. So we could use any language and react instantly server side. ( CSS can't do regEx, besides *= ^= $= )
-
Amounts of www.youtube.com variables' names' over time
1. "view-source:" 2. DevTools (logged-in)
| year | 1. yt-
|
1. ytd-
|
2. yt-
|
2. ytd-
|
|---|---|---|---|---|
| July 2025 | 31 | 62 | 9729 (10278) | 4135 (4294) |
| May 2024 | 32 | 62 | 2387 (2468) | 3115 (3175) |
| 2024 | 32 | 63 | ||
| 2021 | 31 | 61 | ||
| 2020 | 24 | 58 | ||
| 2018 & 2019 | 700 | 0 | ||
| 2014 | 1400 | 0 | ||
| 2013 | 1 | 0 |
-
An editor to compare 3 Versions: Download (Alternatives@Wikipedia)
(Some YouTube versions: archive.org/2021/youtube, 2020, 2019)
-
Pull Requests by command-line:
gh pr create --base master --title "my PR" --body "fixing..."- Alternatively:
hub pull-requestacts as a wrapper forgit) https://github.com/github/hub- (Or if you hate all Pull Requests, we might allow you to make commits after a few PRs)
- Alternatively:
-
Reading issues in ranked/structured/rewarding way: We can work on the top bugs, plans & wishes ordered by popularity
- For example: The bugs on top will be most important and/or half-solved
- also linked in our readme.md - "tidy" could be first in the ToDo-List, besides it is last in the ToDo list requiring permission and assumming new contributors reading it, while repeat-contributors tidy already. ) (You might also want to edit our Readme)
- For example: The bugs on top will be most important and/or half-solved