@krx3d/tizentube2 1.30.300 → 1.30.310
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +99 -1
- package/dist/userScript.js +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -78,6 +78,9 @@ options are described in the row rather than listed separately.
|
|
|
78
78
|
| Hide Duplicate Videos **(fork)** | Removes a video from a page when it has already appeared higher up, keeping the first occurrence. Rows left empty by this are dropped too. Never applied on the watch page or inside a playlist, where repeats are meaningful |
|
|
79
79
|
| Hide the Combined Subscriptions Row **(fork)** | Subscriptions opens with one long row ("Relevanteste") holding videos that also appear in the per-channel rows below it. Because the duplicate filter keeps the first copy, that row would win every tie and the rows below it would empty out, collapsing the page into one row. This removes the combined row instead, so the per-channel rows survive. Identified by the overlap between rows, not by its title, which is localised |
|
|
80
80
|
| Hide the Music Row **(fork)** | Removes the YouTube Music row on Home ("Noch mal anhören" with its "Mehr Musik" link), identified by where it points rather than by its title |
|
|
81
|
+
| Hide Videos by Title Keyword **(fork)** | Hides videos whose title contains one of the keywords. Ships with a list aimed at AI-generated uploads — see "Title keyword filter" below — and you can replace it with your own. Matched case-insensitively anywhere in the title, except a single short word, which is matched on word boundaries so "ai" does not hide "Thailand" |
|
|
82
|
+
| Hide View Counts **(fork)** | Takes the view count off every tile, and cleans up the separator it leaves behind. Matched on the response fields rather than on the word "views", so it works in any language |
|
|
83
|
+
| Hide 4K/8K and Dubbed Badges **(fork)** | Removes the resolution and auto-dubbed badges from tiles. A badge it does not recognise is logged with its wording, so an unlisted one can be added |
|
|
81
84
|
| Hide Special Playlists **(fork)** | Hides Liked Videos and/or Watch Later from the Library and Playlists pages |
|
|
82
85
|
| Enable Shorts | Off by default — Shorts shelves and Shorts tiles are stripped from every surface |
|
|
83
86
|
|
|
@@ -103,7 +106,12 @@ options are described in the row rather than listed separately.
|
|
|
103
106
|
| Number Keys Jump to Percentage | Pressing `1`–`9` jumps to that percentage of the video, `0` jumps to the start |
|
|
104
107
|
| Reload Player After TV Wakes **(fork)** | Rebuilds the player after standby, fixing the frozen first frame |
|
|
105
108
|
| Player UI patching | Optional Previous/Next, Super Thanks, Ask, and Speed Controls buttons |
|
|
106
|
-
| Hide Player Buttons **(fork)** | Removes buttons from the action row under the player: Join/Membership, Subscribe, Thumbs Up, Thumbs Down and
|
|
109
|
+
| Hide Player Buttons **(fork)** | Removes buttons from the action row under the player: Join/Membership, Subscribe, Thumbs Up, Thumbs Down, Save, Comments, Description, Previous and Next. Each one is a separate toggle. Matched on the button types and the endpoints they run rather than on the labels, which are localised — the Description button is matched by the panel it opens, since the app calls it ABOUT_BUTTON internally while the screen reads "Beschreibung". Where YouTube sends one combined thumbs button, it goes only when both thumbs are hidden. Hiding Previous/Next wins over the setting that adds them |
|
|
110
|
+
| Show Time Remaining **(fork)** | Adds how much of the video is left to the player’s own duration readout: `42:17 · -12:04` |
|
|
111
|
+
| Show When the Video Will End **(fork)** | Adds the clock time the video finishes at: `42:17 · →14:35`. Follows the playback speed, and uses the same 12/24-hour setting as the on-screen clock. Both readouts together give `42:17 · -12:04 · →14:35` — the minus means time left, the arrow means "until" |
|
|
112
|
+
| Instant Seek **(fork)** | The seek bar keeps moving while you hold left or right instead of waiting for OK on every step; the seek commits by itself once you stop. The delay is configurable (250–1500 ms) |
|
|
113
|
+
| Stop at the End of a Playlist **(fork)** | At the end of a playlist, stops and offers to replay instead of playing an unrelated recommendation (or showing a black screen) |
|
|
114
|
+
| Return YouTube Dislike **(fork)** | Puts the dislike count back, on the thumbs-down button and in the description panel. Sends the id of every video you open to returnyoutubedislike.com, so it is off by default and the setting names the service |
|
|
107
115
|
|
|
108
116
|
## Thumbnails and titles
|
|
109
117
|
|
|
@@ -129,6 +137,8 @@ options are described in the row rather than listed separately.
|
|
|
129
137
|
| Reload Home on Startup | Forces a fresh Home feed on launch |
|
|
130
138
|
| Library Tabs Buttons to Hide **(fork)** | Hides individual Library tabs (Music, Movies & Shows, Podcasts, My Videos, History, Watch Later, Playlists) |
|
|
131
139
|
| Sort Subscriptions Alphabetically | Alphabetical instead of YouTube's own ordering |
|
|
140
|
+
| Stop Bixby Interrupting Voice Search **(fork)** | Pressing the microphone button starts Bixby and YouTube’s own speech recognition at the same time, and Bixby’s "not understood" dismisses the YouTube result. This swallows the key for Bixby while a search is on screen; the mic button works as normal everywhere else |
|
|
141
|
+
| Transfer Settings **(fork)** | Copies your settings to or from another TV on the same network. The receiving TV lists only the settings that would actually change, each one something you can leave out, and keeps a one-step undo. Device-bound settings never travel. See "Transferring settings between TVs" below |
|
|
132
142
|
| Who's Watching Menu | Control whether the profile picker appears, including on app exit, and whether it stays permanently enabled |
|
|
133
143
|
| "Are you still watching?" prompt | Toggle YouTube's idle-playback interruption |
|
|
134
144
|
| Show Guest Sign In Reminder | Toggle the prompt asking a signed-out viewer to sign in |
|
|
@@ -155,6 +165,7 @@ it. The options live on their own settings page under Miscellaneous.
|
|
|
155
165
|
| Remove From This Playlist **(fork)** | Menu entry, offered only while you are inside one of your own playlists: removes the video from that playlist |
|
|
156
166
|
| Hide This Channel **(fork)** | Menu entry. Hides everything from that channel across the feeds. Matched on the channel name, because tiles do not carry a channel id |
|
|
157
167
|
| Hidden Channels **(fork)** | Lists the channels you hid, under Interface settings. Select one to show it again |
|
|
168
|
+
| Sort Playlists in the Long Press Menu **(fork)** | Choose the order your playlists appear in. A playlist deleted on YouTube drops out of both lists the next time the picker is opened |
|
|
158
169
|
|
|
159
170
|
## Subtitles
|
|
160
171
|
|
|
@@ -163,6 +174,7 @@ it. The options live on their own settings page under Miscellaneous.
|
|
|
163
174
|
| Show Local Subtitle | Surfaces subtitles in your own language |
|
|
164
175
|
| Show Hidden Subtitles | Exposes tracks YouTube hides from the picker |
|
|
165
176
|
| Remember Caption Style **(fork)** | Persists caption font/size/colour settings across sessions and restarts |
|
|
177
|
+
| Stop Videos Turning Subtitles On **(fork)** | Removes the instruction some videos carry to switch subtitles on by themselves — auto-dubbed videos mostly. Not the same as remembering your caption choice: that restores subtitles you switched on and cannot counteract a video that forces them. Every subtitle track stays selectable by hand |
|
|
166
178
|
|
|
167
179
|
## Maintenance and diagnostics
|
|
168
180
|
|
|
@@ -179,6 +191,92 @@ it. The options live on their own settings page under Miscellaneous.
|
|
|
179
191
|
|
|
180
192
|
Missing something? [Request it](https://github.com/reisxd/TizenTube/issues/new).
|
|
181
193
|
|
|
194
|
+
# Title keyword filter
|
|
195
|
+
|
|
196
|
+
*Hide Videos by Title Keyword* ships with a list, because a TV has no way to
|
|
197
|
+
type one in: a switch with an empty list behind it would do nothing. The
|
|
198
|
+
built-in list targets AI-generated uploads, which is what the feature was
|
|
199
|
+
written for:
|
|
200
|
+
|
|
201
|
+
```js
|
|
202
|
+
'ai generated', 'ai-generated', 'ai voice', 'ai story',
|
|
203
|
+
'ai animation', 'ai movie', 'ai video'
|
|
204
|
+
```
|
|
205
|
+
|
|
206
|
+
Switching the setting on is all that is needed. The list lives in
|
|
207
|
+
`mods/features/keywordHider.js`, not in the config defaults, so that it
|
|
208
|
+
reaches a TV whose stored config already holds an empty list from an earlier
|
|
209
|
+
build.
|
|
210
|
+
|
|
211
|
+
## Using your own keywords instead
|
|
212
|
+
|
|
213
|
+
Set `hiddenTitleKeywords` and it replaces the built-in list entirely —
|
|
214
|
+
anything you put there is taken as deliberate. From the debug console
|
|
215
|
+
(yellow button) or a Tampermonkey session:
|
|
216
|
+
|
|
217
|
+
```js
|
|
218
|
+
const c = JSON.parse(localStorage['ytaf-configuration']);
|
|
219
|
+
c.hiddenTitleKeywords = ['ai voice', 'reaction', 'tier list'];
|
|
220
|
+
c.enableKeywordHider = true;
|
|
221
|
+
localStorage['ytaf-configuration'] = JSON.stringify(c);
|
|
222
|
+
```
|
|
223
|
+
|
|
224
|
+
Then restart the app. Setting it back to `[]` restores the built-in list.
|
|
225
|
+
|
|
226
|
+
## How a keyword is matched
|
|
227
|
+
|
|
228
|
+
| Keyword | Matches | Does not match |
|
|
229
|
+
| --- | --- | --- |
|
|
230
|
+
| `ai generated` | "How I made an **AI generated** film" | "AI-generated" — which is why both spellings are in the list |
|
|
231
|
+
| `ai` | "Made with **AI**", "(**AI**) slop" | "She s**ai**d nothing", "Th**ai**land" |
|
|
232
|
+
| `generation` | "**Generations** of pasta" | — |
|
|
233
|
+
| `c++` | "What a **c++** video" | — (regex characters are taken literally) |
|
|
234
|
+
|
|
235
|
+
A keyword of four characters or fewer with no space in it is matched on word
|
|
236
|
+
boundaries, which is what keeps `ai` from sweeping up ordinary videos.
|
|
237
|
+
Anything longer, or containing a space, is matched anywhere in the title. All
|
|
238
|
+
matching is case-insensitive.
|
|
239
|
+
|
|
240
|
+
Every removal is logged under `filters.keywordHidden` (log category
|
|
241
|
+
**filters**) with the keyword and the title, so a keyword catching more than
|
|
242
|
+
you meant is easy to spot.
|
|
243
|
+
|
|
244
|
+
# Transferring settings between TVs
|
|
245
|
+
|
|
246
|
+
Under Miscellaneous → Transfer Settings. On the TV you are copying **from**,
|
|
247
|
+
open *Export*; on the other, open *Import*. The importing TV searches the
|
|
248
|
+
network, you pick the TV, and it then shows **only the settings that differ**
|
|
249
|
+
— each one a row you can untick:
|
|
250
|
+
|
|
251
|
+
```
|
|
252
|
+
What Would Change — 6 of your settings differ from Wohnzimmer
|
|
253
|
+
|
|
254
|
+
Oberfläche
|
|
255
|
+
[x] Shorts aktivieren Aus → Ein
|
|
256
|
+
[x] Uhr anzeigen Aus → Ein
|
|
257
|
+
[ ] Ausgeblendete Kanäle 4 Einträge → 11 Einträge
|
|
258
|
+
|
|
259
|
+
[ Import 3 settings ] [ Alle abwählen ]
|
|
260
|
+
```
|
|
261
|
+
|
|
262
|
+
Two TVs that already match say so rather than showing an empty list. Nothing
|
|
263
|
+
is written until you confirm, and **Undo Last Import** puts back whatever the
|
|
264
|
+
last one changed.
|
|
265
|
+
|
|
266
|
+
What does not travel: anything tied to the machine rather than chosen — the
|
|
267
|
+
spoofed viewport resolution (two TVs with different panels want different
|
|
268
|
+
answers), the log and syslog addresses, and state such as the caption
|
|
269
|
+
backups. A setting with no row in the settings menu cannot be transferred at
|
|
270
|
+
all: if a value cannot be named and shown on screen, it is not something to
|
|
271
|
+
copy between TVs.
|
|
272
|
+
|
|
273
|
+
Sharing is held in memory only, never written to disk, and the route answers
|
|
274
|
+
nothing unless the Export screen is open — it closes when you leave it.
|
|
275
|
+
|
|
276
|
+
Works in standalone mode on both its paths, and in TizenBrew mode in a plain
|
|
277
|
+
HTTP context. In TizenBrew over HTTPS the page cannot reach any local server
|
|
278
|
+
in either direction, and the screen says so rather than hanging.
|
|
279
|
+
|
|
182
280
|
# Tampermonkey local debugging helpers (Windows + Chrome)
|
|
183
281
|
|
|
184
282
|
Use this when you want to test TizenTube locally in Chrome instead of on-device.
|