A browser extension that sets the quality of YouTube videos according to the user's preference, based on the video's FPS. Available for:
- Google Chrome
- Mozilla Firefox 90+
- Microsoft Edge
- Opera
- Safari - maintained by carlosjeurissen
- Naver Whale - maintained by carlosjeurissen
Made by avi12
Powered by Plasmo
You can suggest a feature or report a bug
Due to the way the browsers handle extensions, when an extension receives an update, content scripts in previously-open web pages cannot use the Storage API until the user reloads them, which means that if YTHD received an update and the user attempts to change a setting, he must reload the such pages for the settings to take effect
To provide a smooth user experience, I decided to use the last settings that were fetched
You can translate the extension to your own language by filling this form Filling will grant you access to a Google Spreadsheet via email, in which you can contribute your translations
pnpm i
pnpm dev
pnpm build:firefox
pnpm run-chromium
pnpm run-chromium:rtl
pnpm run-edge:windows
As of September 30th, 2023, Opera 102's installer automatically sets itself as the default browser, and therefore I recommend installing it on a virtual machine like Windows Sandbox Of course, if you decide to go through this route, you'll need to build & pack every time you modify a script
pnpm run-opera:windows
pnpm run-firefox
- Install Android Studio on your operating system
- Create an AVD (Android Virtual Device)
- For a phone emulator, choose one that has Play Store preinstalled
- For a tablet emulator, follow these steps after creating it to have Play Store preinstalled
- Run the emulator:
emulator @DEVICE_NAME
- I recommend creating a Google account specifically to be used with the emulator
- Install Kiwi Browser
- First get the emulator ID:
Then:
adb devices
- On Windows 10/11, you can run:
set id=ID & pnpm build-pack:test-push
- Otherwise, if you're using PowerShell, run:
where you assign
pnpm build-pack:test; ` $zip = "chrome-mv3-prod.zip"; ` $destAndroid = "/storage/emulated/0/TestYTHD/$zip"; ` $ID = "emulator-####"; ` adb -s $ID shell rm $destAndroid; ` adb -s $ID push "build/$zip" $destAndroid;
$ID
with the emulator ID
- On Windows 10/11, you can run:
- Select the ZIP in the TestYTHD folder
- To reload, you must first remove the extension and then repeat steps 2-4
- To debug, enter
chrome://inspect/#devices
- Install Firefox
- In the terminal:
adb shell pm grant org.mozilla.firefox android.permission.READ_EXTERNAL_STORAGE
- In the app:
- Press ⋮ (menu button) → Settings → Enable "Remote debugging via USB"
- Get the emulator ID via
adb devices
- Create 2 terminals
- In the first one, run
dev:firefox
- In the second one, run
where you replace
pnpm run-firefox:android --android-device=ID
ID
with the emulator ID
- In the first one, run
- To reload:
- Modify a script
- Wait until the extension is re-added
- Reload the web page Notice that due to web-ext run using the same files that Plasmo uses to convert the development files into extension-usable script files, Plasmo might crash and so you'll have to restart it every time that you modify a script
- To debug:
- Open Firefox on your desktop
- In the terminal of
run-firefox:android
, find the remote Firefox debugger port (search "TCP port") - Open
about:debugging#/setup
in Firefox - Type in the text box:
localhost:PORT
- In the left sidebar, next to
localhost:PORT
, click Connect and then click on that list item - Under "Tabs" click Inspect
- Chromium-based browsers
- Run
dev
- Open the extensions page
- Enable "Developer mode"
- Open
youtube-auto-hd/build
on your file system - Drag-drop
chrome-mv3-dev
onto the extensions page
- Run
- Firefox for desktop:
- Run
dev:firefox
- Follow this guide
- In the file system window, select
youtube-auto-hd/build/firefox-mv2-dev/manifest.json
- Run
pnpm build-pack
pnpm build-pack:firefox
Feel free to contribute! Keep in mind that the license I chose is GPL v3. If you want to fork, make sure to credit Avi and link to this repository.