- reformatted windows build issues
- updated contributing to reflect LGPL-3.0-or-later
- replaced Invidio.us with Invidious
- replaced API docs link
- updated Invidious API link
Without this, we would try to use the color for an 'undefined' category on the first render pass of the element.
It was then immediately re-rendered with a segment set, but DR missed the update, which caused it to stick to that 'undefined' category and the label became transparent.
Update segment element classes instead.
This probably is more efficient than what we're doing currently.
Also, this seems to fix a bug where the vote confirmation/error msg is removed immediately
This should reduce the load on the server a bit, as it will no longer have to compute the publicID for each sponsorblock user.
This also reduces the list of actions that leak the privateID to the server.
also removed the creatingSegment variable - results in "Start/End Segment Now" correctly updating when using buttons on the controls panel instead
also the "refreshSegments" message no longer sends a response, as we send an update manually now
- force return bad videoID on clip
- don't createbuttons on video ready, updateVisibility with more checks
- don't switch to falsy videoIDs if already available
- bump all dependences
- add github-actions reporter to jest
- convert (most) webpack configs to ESM
- manifest.cjs cannot be converted since there is no native .json import until node 17
- add engines targeting dev
- bump webpack
- update-oss-attribution CI
- appease eslint for webpack
- clean up packages
- move @types to devDependencies
- moved concurrently to devDependencies
- remove unused babel
* Preview button playback speed dependant
Pressing "Preview" will now jump 2 seconds in front of the segment start time, depending on the playback speed.
If you choose any category when editing a segment, and then choose the "Choose a category" one, it triggers the enable category message with an empty category name. This is a fix for that.
Noteworthy changes:
- Adds ability to cancel creating a segment
- Makes segment creation fully the responsibility of the content script, with the popup script buttons simply doing RPC
- Adds types to the Utils.wait function
- Fixes segment timestamps backwards if user marks segment end earlier than the start
- Makes the info menu (in-page popup) workaround clearer and easier to remove in the future.
* Fixed getFormattedTime sometimes returning (NaN:NaN)
getFormattedTime() with nothing passed into it and a couple other edge cases returned (NaN:NaN). This is a problem since on a slow machine getFormattedTime get called without anything passed into it around the time the computer is fetching the timing data. I haven't found the exact spot / place it is called wrongly, but this should fix it. I've have a slow machine so it's really been bugging me seeing (NaN:NaN) for a couple seconds before the page fully loads. Hopefully this should fix it.
The rest of the file uses non-honorific pronouns, so this line should also use them (i.e. "du" instead of "Sie").
Plus: Fixed spelling error and changed word to reflect the way it is spelled in Google Chrome.
Fixes:
- Segments hidden by longer segments
- Duration with skips not accounting for segment overlaps
- Duration with skips not accounting for user's skip choices
- Segment category text in preview tooltip overlaps the seek bar
- Segment category text in preview tooltip breaks for timestamps over one hour
- `previewBar.ts` lacks function argument and return types
- Tooltip label not cleaned up on remove
- General code style issues
- [German has pronouns for both familiar/informal and polite/formal forms of address](https://en.wikipedia.org/wiki/German_honorifics). Half of the strings were formulated polite/formal, while the other half was not. Using the polite/formal forms is a little bit overkill for this use case. I've changed all sentences to use the familiar/informal forms.
- former translation was poor, made no sense, was too hard to understand or didn't contain the actual meaning
- affected lines: 77, 137, 149, 158, 203, 290, 347, 425, 428, 489, 516, 522, 528, 543, 547, 599
- general improvements like small fixes, better grammar, easier to read sentences
- applies to all edited lines, including the lines already mentioned above
* New translations messages.json (French)
* New translations messages.json (French)
* New translations messages.json (French)
* New translations messages.json (French)
* New translations messages.json (Turkish)
* New translations messages.json (Czech)
* New translations messages.json (Slovak)
* New translations messages.json (Turkish)
* New translations messages.json (Turkish)
* New translations messages.json (Hungarian)
Submission editing is now broken as well as clicking submit.
Skipping through multiple submissions just treats it as skipping from one (no multiple vote options).
- Fix css when using html5
- Add encoding scheme to html
- Remove font-size change on title on hover. It's jarring
seeing the whole page move when trying to move your mouse
to the options.
- Remove center tags
- Remove unnecessary styles
- Fix some minor grammar
If you make any contributions to SponsorBlock after this file was created, you are agreeing that any code you have contributed will be licensed under LGPL-3.0 or later.
# Building
## Building locally
0. You must have [Node.js 16 or later](https://nodejs.org/) and npm installed. Works best on Linux
2. Copy the file `config.json.example` to `config.json` and adjust configuration as desired.
- Comments are invalid in JSON, make sure they are all removed.
- You will need to repeat this step in the future if you get build errors related to `CompileConfig` or `property does not exist on type ConfigClass`. This can happen for example when a new category is added.
3. Run `npm ci` in the repository to install dependencies.
4. Run `npm run build:dev` (for Chrome) or `npm run build:dev:firefox` (for Firefox) to generate a development version of the extension with source maps.
- You can also run `npm run build` (for Chrome) or `npm run build:firefox` (for Firefox) to generate a production build.
5. The built extension is now in `dist/`. You can load this folder directly in Chrome as an [unpacked extension](https://developer.chrome.com/docs/extensions/mv3/getstarted/#manifest), or convert it to a zip file to load it as a [temporary extension](https://developer.mozilla.org/docs/Tools/about:debugging#loading_a_temporary_extension) in Firefox.
## Developing with a clean profile and hot reloading
Run `npm run dev` (for Chrome) or `npm run dev:firefox` (for Firefox) to run the extension using a clean browser profile with hot reloading. This uses [`web-ext run`](https://extensionworkshop.com/documentation/develop/web-ext-command-reference/#commands).
Known chromium bug: Extension is not loaded properly on first start. Visit `chrome://extensions/` and reload the extension.
For Firefox for Android, use `npm run dev:firefox-android -- --adb-device <ip-addressofthedevice>`. See the [Firefox documentation](https://extensionworkshop.com/documentation/develop/developing-extensions-for-firefox-for-android/#debug-your-extension) for more information.
SponsorBlock is an extension that will skip over sponsored segments of YouTube videos. SponsorBlock is a crowdsourced browser extension that lets anyone submit the start and end times of sponsored segments of YouTube videos. Once one person submits this information, everyone else with this extension will skip right over the sponsored segment.
SponsorBlock is an open-source crowdsourced browser extension to skip sponsor segments in YouTube videos. Users submit when a sponsor happens from the extension, and the extension automatically skips sponsors it knows about. It also supports skipping other categories, such as intros, outros and reminders to subscribe.
See the [Wiki](https://github.com/ajayyy/SponsorBlock/wiki) for important links.
# Server
The backend server code is available here: https://github.com/ajayyy/SponsorBlockServer
It is a simple Sqlite database that will hold all the timing data.
To make sure that this project doesn't die, I have made the database publicly downloadable at https://sponsor.ajay.app/database ([License](https://github.com/ajayyy/SponsorBlock/wiki/Database-and-API-License)). If you are planning on using the database in another project, please read the [API Docs](https://wiki.sponsor.ajay.app/index.php/API_Docs) page for more information.
To make sure that this project doesn't die, I have made the database publicly downloadable at https://sponsor.ajay.app/database.db. So, you can download a backup or get archive.org to take a backup for you if you want.
Hopefully this project can be combined with projects like [this](https://github.com/Sponsoff/sponsorship_remover) and use this data to create a neural network to predict when sponsored segments happen. That project is sadly abandoned now, so I have decided to attempt to revive this idea.
The dataset and API are now being used in some [ports](https://github.com/ajayyy/SponsorBlock/wiki/3rd-Party-Ports) as well as a [neural network](https://github.com/andrewzlee/NeuralBlock).
# API
You can read the API docs [here](https://github.com/ajayyy/SponsorBlockServer#api-docs).
You can read the API docs [here](https://wiki.sponsor.ajay.app/w/API_Docs).
# Build Yourself
You can load this project as an unpacked extension. Make sure to rename the `config.js.example` file to `config.js` before installing.
# Building
See [CONTRIBUTING.md](CONTRIBUTING.md)
# Credit
The awesome [Invidious API](https://github.com/omarroth/invidious/wiki/API) is used to grab the time the video was published.
The awesome [Invidious API](https://docs.invidious.io/) was previously used, and the server is now using [NewLeaf](https://git.sr.ht/~cadence/NewLeaf) as a to get video info from YouTube.
Original code from [YTSponsorSkip](https://github.com/OfficialNoob/YTSponsorSkip), but not much of the code is left.
Originally forked from [YTSponsorSkip](https://github.com/NDevTK/YTSponsorSkip), but very little code remains.
Some icons made by<ahref="https://www.flaticon.com/authors/gregor-cresnar"title="Gregor Cresnar">Gregor Cresnar</a> from <ahref="https://www.flaticon.com/"title="Flaticon">www.flaticon.com</a> and are licensed by <ahref="http://creativecommons.org/licenses/by/3.0/"title="Creative Commons BY 3.0"target="_blank">CC 3.0 BY</a>
Icons made by:
*<ahref="https://www.flaticon.com/authors/gregor-cresnar"title="Gregor Cresnar">Gregor Cresnar</a> from <ahref="https://www.flaticon.com/"title="Flaticon">www.flaticon.com</a> and are licensed by <ahref="https://creativecommons.org/licenses/by/3.0/"title="Creative Commons BY 3.0"target="_blank">CC 3.0 BY</a>
*<ahref="https://www.flaticon.com/authors/freepik"title="Freepik">Freepik</a> from <ahref="https://www.flaticon.com/"title="Flaticon">www.flaticon.com</a> and are licensed by <ahref="https://creativecommons.org/licenses/by/3.0/"title="Creative Commons BY 3.0"target="_blank">CC 3.0 BY</a>
*<ahref="https://iconmonstr.com/about/#creator">Alexander Kahlkopf</a> from <ahref="https://iconmonstr.com/">iconmonstr.com</a> and are licensed by <ahref="https://iconmonstr.com/license/">iconmonstr License</a>
Some icons made by <ahref="https://www.flaticon.com/authors/freepik"title="Freepik">Freepik</a> from <ahref="https://www.flaticon.com/"title="Flaticon">www.flaticon.com</a> are licensed by <ahref="http://creativecommons.org/licenses/by/3.0/"title="Creative Commons BY 3.0"target="_blank">CC 3.0 BY</a>
### License
This project is licensed under GNU LGPL v3 or any later version
"message":"SponsorBlock for YouTube - Skip Sponsorships",
"description":"Name of the extension."
},
"Description":{
"message":"Überspringe die gesponserten Inhalte in YouTube-Videos. Melde gesponsorte Inhalte in den von dir angesehenen Videos und erspare anderen die Zeit.",
"description":"Description of the extension."
},
"helpPage":{
"message":"index_en.html"
},
"400":{
"message":"Ungültige Anforderung"
},
"429":{
"message":"Du hast zu viele Segmente in diesem Video eingereicht. Bist du dir sicher?"
},
"409":{
"message":"Dieser Inhalt wurde bereits eingereicht."
},
"channelWhitelisted":{
"message":"Kanal auf Whitelist gesetzt!"
},
"Sponsor":{
"message":"Sponsor"
},
"Sponsors":{
"message":"Sponsoren"
},
"Segment":{
"message":"gesponsorter Inhalt"
},
"Segments":{
"message":"gesponsorte Inhalte"
},
"noticeTitle":{
"message":"Sponsor übersprungen"
},
"reportButtonTitle":{
"message":"Melden"
},
"reportButtonInfo":{
"message":"Melde dieses Segment als unzulässig."
},
"Dismiss":{
"message":"Abbrechen"
},
"Loading":{
"message":"Laden..."
},
"Mins":{
"message":"Minuten"
},
"Secs":{
"message":"Sekunden"
},
"Hide":{
"message":"Verstecken"
},
"hitGoBack":{
"message":"Klicke Zurück um die Aktion rückgängig zu machen."
},
"unskip":{
"message":"Zurück"
},
"reskip":{
"message":"Vorwärts"
},
"paused":{
"message":"Pausiert"
},
"confirmMSG":{
"message":"\n\nUm einzelne Werte zu löschen oder zu ändern, klicke auf den Info-Button, oder öffne die Erweiterungs-Übersicht, indem du das Erweiterungssymbol in der rechten oberen Ecke anklickst."
},
"clearThis":{
"message":"Bist du sicher, dass du Folgendes löschen möchtest?\n\n"
},
"Unknown":{
"message":"Deine Segmente konnte nicht gesendet werden, bitte versuche es später erneut."
},
"sponsorFound":{
"message":"Die gesponsorten Inhalte dieses Videos befindet sich bereits in der Datenbank!"
},
"sponsor404":{
"message":"Keine Sponsoren gefunden"
},
"sponsorStart":{
"message":"Gesponserter Inhalt beginnt"
},
"sponsorEnd":{
"message":"Gesponserter Inhalt endet"
},
"noVideoID":{
"message":"Keine YouTube-Videos in diesem Tab gefunden. Wenn dies ein Youtube-Tab ist, schließe dieses Pop-up und öffne es erneut. Wenn das nicht hilft, versuche den Tab neu zu laden."
},
"success":{
"message":"Erfolg!"
},
"voted":{
"message":"Abgestimmt!"
},
"voteFail":{
"message":"Du hast bereits so abgestimmt."
},
"serverDown":{
"message":"Der Server ist scheinbar offline. Bitte unverzüglich dem Entwickler melden."
},
"connectionError":{
"message":"Ein Verbindungsfehler ist aufgetreten. Fehlermeldung: "
},
"wantToSubmit":{
"message":"Möchtest du die Segmente für die Video ID senden?"
},
"leftTimes":{
"message":"Scheinbar hast du einige Segmente noch nicht gesendet. Kehre zur Seite zurück um sie zu senden (sie sind noch gespeichert)."
},
"clearTimes":{
"message":"Lösche Auswahl"
},
"openPopup":{
"message":"Öffne SponsorBlock-Popup"
},
"SubmitTimes":{
"message":"Sende Auswahl"
},
"submitCheck":{
"message":"Bist du sicher, dass die Auswahl abgeschickt werden soll?"
},
"whitelistChannel":{
"message":"Kanal auf Whitelist setzen "
},
"removeFromWhitelist":{
"message":"Kanal von Whitelist entfernen"
},
"voteOnTime":{
"message":"Stimme für Zeiten ab"
},
"recordTimes":{
"message":"Lege das Zeitfenster eines gesponsorten Inhalts fest"
},
"soFarUHSubmited":{
"message":"Gemeldet wurden von dir bisher"
},
"savedPeopleFrom":{
"message":"Du hast andere Benutzer bewahrt vor"
},
"viewLeaderboard":{
"message":"Siehe Rangliste"
},
"here":{
"message":"hier"
},
"recordTimesDescription":{
"message":"Klicke den Knopf unten, wenn der gesponsorte Inhalt beginnt und endet, um aufzunehmen und\n einzusenden"
},
"popupHint":{
"message":"Hinweis: In den Optionen lässt sich eine Taste für das Festlegen von Anfang/Ende des gesponsorten Inhalts, sowie für das Einsenden festlegen"
},
"lastTimes":{
"message":"Letzte ausgewählte Zeitabschnitte"
},
"clearTimesButton":{
"message":"Zeiten löschen"
},
"submitTimesButton":{
"message":"Zeiten einsenden"
},
"publicStats":{
"message":"Dies ist wichtig für die öffentliche Nutzerstatistik. Siehe"
},
"setUsername":{
"message":"Alias festlegen"
},
"discordAdvert":{
"message":"Tritt dem offiziellen Discord-Kanal bei und teile Anregungen und Feedback!"
},
"hideThis":{
"message":"Verstecken"
},
"Options":{
"message":"Optionen"
},
"showButtons":{
"message":"Knöpfe in YouTube-Leiste zeigen"
},
"hideButtons":{
"message":"Knöpfe in YouTube-Leiste verstecken"
},
"hideButtonsDescription":{
"message":"Die Einstellung versteckt den Einsende-Knopf in der Youtube-Leiste. Ich kann verstehen, weshalb manchen diese Funktion\n an dieser Stelle stört. Stattdessen kann dafür dieses Pop-up genutzt werden. Um die transparente Benachrichtigung zu verstecken, klicke auf den \"Verstecken\"-Knopf \n der Benachrichtigung. Diese Einstellungen können wieder rückgängig gemacht werden."
},
"showInfoButton":{
"message":"Zeige Info-Knopf in Youtube-Leiste"
},
"hideInfoButton":{
"message":"Verstecke Info-Knopf in Youtube-Leiste"
},
"whatInfoButton":{
"message":"Dieser Knopf öffnet ein Pop-up auf der Youtube-Seite."
},
"hideDeleteButton":{
"message":"Verstecke Löschen-Knopf in Youtube Leiste"
},
"showDeleteButton":{
"message":"Zeige Löschen-Knopf in Youtube Leiste"
},
"whatDeleteButton":{
"message":"Dieser Knopf entfernt sämtlich Segmente in der Youtube-Zeitleiste."
"message":"Diese Funktion hält fest, welche Sponsoren von dir übersprungen wurden und hilft anderen zu erfahren, was ihre Einsendungen bewirkt haben.\n Außerdem dienen die Werte zusammen mit positiven Rückmeldungen als Anti-Spam-Schutz. \n Wenn ein gesponsorter Inhalt übersprungen wird, sendet die Erweiterung eine Nachricht an den Server. \n Hoffentlich wird diese Funktion auch weiterhin genutzt, damit der Algorithmus funktioniert. :)"
},
"showNotice":{
"message":"Benachrichtigung wieder zeigen"
},
"longDescription":{
"message":"SponsorBlock ist eine Erweiterung, die gesponsorte Segmente in YouTube-Videos überspringt. SponsorBlock ist ein Benutzernetzwerk, bei dem jeder Anfang und Ende eines Werbeblocks einreichen kann. Sobald die Information von einem Nutzer eingereicht wurde, überspringen die Erweiterungen der anderen dieses Segment automatisch.",
"description":"Full description of the extension on the store pages."
},
"website":{
"message":"Webseite",
"description":"Used on Firefox Store Page"
},
"sourceCode":{
"message":"Quellcode",
"description":"Used on Firefox Store Page"
},
"noticeUpdate":{
"message":"Die Benachrichtigung wurde verbessert!",
"description":"The first line of the message displayed after the notice was upgraded."
},
"noticeUpdate2":{
"message":"Gefällt dir immer noch nicht? Dann klicke den Verstecken-Knopf.",
"description":"The second line of the message displayed after the notice was upgraded."
},
"setStartSponsorShortcut":{
"message":"Segment aufnehmen Taste festlegen"
},
"setSubmitKeybind":{
"message":"Segment einsenden Taste festlegen"
},
"keybindDescription":{
"message":"Taste drücken, um festzulegen"
},
"keybindDescriptionComplete":{
"message":"Die Taste wurde festgelegt auf: "
},
"0":{
"message":"Verbindungsüberschreibung. Überprüfe deine Internetverbindung. Bist du mit dem Internet verbunden, ist der Server wahrscheinlich offline."
},
"disableSkipping":{
"message":"SponsorBlock ausschalten"
},
"enableSkipping":{
"message":"SponsorBlock einschalten"
},
"yourWork":{
"message":"Deine Statistik",
"description":"Used to describe the section that will show you the statistics from your submissions."
},
"502":{
"message":"Der Server scheint überlastet zu sein. Probiere es in ein paar Sekunden erneut."
},
"errorCode":{
"message":"Fehlermeldung: "
},
"noticeTitleNotSkipped":{
"message":"Sponsor überspringen?"
},
"skip":{
"message":"Überspringen"
},
"disableAutoSkip":{
"message":"Auto-Überspringen deaktivieren"
},
"enableAutoSkip":{
"message":"Auto-Überspringen aktivieren"
},
"autoSkipDescription":{
"message":"Auto-Überspringen überspringt gesponsorte Inhalte für dich. Wenn deaktiviert, fragt die Benachrichtigung, ob übersprungen werden soll."
"message":"SponsorBlock for YouTube - Skip Sponsorships",
"description":"Name of the extension."
},
"Description":{
"message":"Skip over sponsorship on YouTube videos. Report sponsors on videos you watch to save the time of others.",
"description":"Description of the extension."
},
"helpPage":{
"message":"index_en.html"
},
"400":{
"message":"Server said this request was invalid"
},
"429":{
"message":"You have submitted too many sponsor times for this one video, are you sure there are this many?"
},
"409":{
"message":"This has already been submitted before"
},
"channelWhitelisted":{
"message":"Channel Whitelisted!"
},
"Sponsor":{
"message":"sponsor"
},
"Sponsors":{
"message":"sponsors"
},
"Segment":{
"message":"sponsor segment"
},
"Segments":{
"message":"sponsor segments"
},
"noticeTitle":{
"message":"Sponsor Skipped"
},
"reportButtonTitle":{
"message":"Report"
},
"reportButtonInfo":{
"message":"Report this sponsor submission as incorrect."
},
"Dismiss":{
"message":"Dismiss"
},
"Loading":{
"message":"Loading..."
},
"Mins":{
"message":"Minutes"
},
"Secs":{
"message":"Seconds"
},
"Hide":{
"message":"Never Show"
},
"hitGoBack":{
"message":"Hit unskip to get to where you came from."
},
"unskip":{
"message":"Unskip"
},
"reskip":{
"message":"Reskip"
},
"paused":{
"message":"Paused"
},
"confirmMSG":{
"message":"To edit or delete individual values, click the info button or open the extension popup by clicking the extension icon in the top right corner."
},
"clearThis":{
"message":"Are you sure you want to clear this?\n\n"
},
"Unknown":{
"message":"There was an error submitting your sponsor times, please try again later."
},
"sponsorFound":{
"message":"This video's sponsors are in the database!"
},
"sponsor404":{
"message":"No sponsors found"
},
"sponsorStart":{
"message":"Sponsorship Starts Now"
},
"sponsorEnd":{
"message":"Sponsorship Ends Now"
},
"noVideoID":{
"message":"No YouTube video found at this tab. If you know this is a YouTube tab, close this popup and open it again. If that does not work, try reloading the tab."
},
"success":{
"message":"Success!"
},
"voted":{
"message":"Voted!"
},
"voteFail":{
"message":"You have already voted this way before."
},
"serverDown":{
"message":"It seems the sever is down. Contact the dev immediately."
},
"connectionError":{
"message":"A connection error has occured. Error code: "
},
"wantToSubmit":{
"message":"Do you want to submit the sponsor times for video id"
},
"leftTimes":{
"message":"You seem to have left some sponsor times unsubmitted. Go back to that page to submit them (they are not deleted)."
},
"clearTimes":{
"message":"Clear Sponsor Times"
},
"openPopup":{
"message":"Open SponsorBlock Popup"
},
"SubmitTimes":{
"message":"Submit Sponsor Times"
},
"submitCheck":{
"message":"Are you sure you want to submit this?"
},
"whitelistChannel":{
"message":"Whitelist Channel"
},
"removeFromWhitelist":{
"message":"Remove Channel From Whitelist"
},
"voteOnTime":{
"message":"Vote On A Sponsor Time"
},
"recordTimes":{
"message":"Record the times of a sponsorship"
},
"soFarUHSubmited":{
"message":"So far, you've submitted"
},
"savedPeopleFrom":{
"message":"You have saved people from "
},
"viewLeaderboard":{
"message":"View the leaderboard"
},
"here":{
"message":"here"
},
"recordTimesDescription":{
"message":"Click the button below when the sponsorship starts and ends to record and\nsubmit it to the database."
},
"popupHint":{
"message":"Hint: Press the semicolon key while focused on a video report the start/end of a sponsor and quote to submit. (This can be changed in the options)"
},
"lastTimes":{
"message":"Latest Sponsor Message Times Chosen"
},
"clearTimesButton":{
"message":"Clear Times"
},
"submitTimesButton":{
"message":"Submit Times"
},
"publicStats":{
"message":"This is used on the public stats page to show off how much you've contributed. See it"
},
"setUsername":{
"message":"Set Username"
},
"discordAdvert":{
"message":"Come join the official discord server to give suggestions and feedback!"
},
"hideThis":{
"message":"Hide this"
},
"Options":{
"message":"Options"
},
"showButtons":{
"message":"Show Buttons On YouTube Player"
},
"hideButtons":{
"message":"Hide Buttons On YouTube Player"
},
"hideButtonsDescription":{
"message":"This hides the buttons that appear on the YouTube player to submit sponsors. I can see this being annoying for some\n people. Instead of using the button there, this popup can be used to submit sponsors. To hide the notice that appears, \n use the button that appears on the notice saying \"Don't show this again\". You can always enable these settings again later."
},
"showInfoButton":{
"message":"Show Info Button On YouTube Player"
},
"hideInfoButton":{
"message":"Hide Info Button On YouTube Player"
},
"whatInfoButton":{
"message":"This is the button that opens up a popup in the YouTube page."
},
"hideDeleteButton":{
"message":"Hide Delete Button On YouTube Player"
},
"showDeleteButton":{
"message":"Show Delete Button On YouTube Player"
},
"whatDeleteButton":{
"message":"This is the button that allows you to clear all sponsors on the YouTube player."
},
"disableViewTracking":{
"message":"Disable Sponsor Skip Count Tracking"
},
"enableViewTracking":{
"message":"Enable Sponsor Skip Count Tracking"
},
"whatViewTracking":{
"message":"This feature tracks which sponsors you have skipped to let users know how much their submission has helped others and\nused as a metric along with upvotes to ensure that spam doesn't get into the database. The extension sends a message\nto the server each time you skip a sponsor. Hopefully most people don't change this setting so that the view numbers are accurate. :)"
},
"showNotice":{
"message":"Show Notice Again"
},
"longDescription":{
"message":"SponsorBlock is an extension that will skip over sponsored segments of YouTube videos. SponsorBlock is a crowdsourced browser extension that let's anyone submit the start and end time's of sponsored segments of YouTube videos. Once one person submits this information, everyone else with this extension will skip right over the sponsored segment.",
"description":"Full description of the extension on the store pages."
},
"website":{
"message":"Website",
"description":"Used on Firefox Store Page"
},
"sourceCode":{
"message":"Source Code",
"description":"Used on Firefox Store Page"
},
"noticeUpdate":{
"message":"The notice has been upgraded!",
"description":"The first line of the message displayed after the notice was upgraded."
},
"noticeUpdate2":{
"message":"If you still don't like it, hit the never show button.",
"description":"The second line of the message displayed after the notice was upgraded."
},
"setStartSponsorShortcut":{
"message":"Set key for start sponsor keybind"
},
"setSubmitKeybind":{
"message":"Set key for submission keybind"
},
"keybindDescription":{
"message":"Select a key by typing it"
},
"keybindDescriptionComplete":{
"message":"The keybind has been set to: "
},
"0":{
"message":"Connection Timeout. Check your internet connection. If your internet is working, the server is probably overloaded or down."
},
"disableSkipping":{
"message":"Disable SponsorBlock"
},
"enableSkipping":{
"message":"Enable SponsorBlock"
},
"yourWork":{
"message":"Your Work",
"description":"Used to describe the section that will show you the statistics from your submissions."
},
"502":{
"message":"The server seems to be overloaded. Try again in a few seconds."
},
"errorCode":{
"message":"Error Code: "
},
"noticeTitleNotSkipped":{
"message":"Skip Sponsor?"
},
"skip":{
"message":"Skip"
},
"disableAutoSkip":{
"message":"Disable Auto Skip"
},
"enableAutoSkip":{
"message":"Enable Auto Skip"
},
"autoSkipDescription":{
"message":"Auto skip will skip sponsors for you. If disabled, a notice will appear asking if you'd like to skip."
},
"youHaveSkipped":{
"message":"You have skipped "
},
"youHaveSaved":{
"message":"You have saved yourself "
},
"minLower":{
"message":"minute"
},
"minsLower":{
"message":"minutes"
},
"hourLower":{
"message":"hour"
},
"hoursLower":{
"message":"hours"
},
"youHaveSavedTime":{
"message":"You have saved people"
},
"youHaveSavedTimeEnd":{
"message":" of their lives."
},
"guildlinesSummary":{
"message":"- Make sure your segment only contains paid promotion segment, nothing else.\n- Make sure skipping this segment will not skip valuable content\n- If the whole video is a sponsor, please do not report it. A full video reporting system will come out soon.\n- Please do not report disclaimers that could show bias (if a review video is sponsored, don't skip when they mention that)."
},
"statusReminder":{
"message":"Check status.sponsor.ajay.app for server status."
"message":"SponsorBlock pour YouTube - Supprime les messages commerciaux et publicités intégrées",
"description":"Name of the extension."
},
"Description":{
"message":"Passe automatiquement les messages commerciaux intégrés dans les vidéos YouTube. Soumettez les segments commerciaux dans les vidéos que vous regardez pour aidez les autres.",
"description":"Description of the extension."
},
"helpPage":{
"message":"index_en.html"
},
"400":{
"message":"Soumission invalide"
},
"429":{
"message":"Vous cherchez à envoyer beaucoup de segments, y en a-t-il vraiment autant ?"
},
"409":{
"message":"Déja soumis"
},
"channelWhitelisted":{
"message":"Cette chaîne est sur la liste blanche !"
},
"Sponsor":{
"message":"message commercial"
},
"Sponsors":{
"message":"messages commerciaux"
},
"Segment":{
"message":"segment commercial"
},
"Segments":{
"message":"segments commerciaux"
},
"noticeTitle":{
"message":"Message commercial passé"
},
"reportButtonTitle":{
"message":"Incorrect"
},
"reportButtonInfo":{
"message":"Signaler que ce segment commercial est incorrect ou n'existe pas."
},
"Dismiss":{
"message":"Fermer"
},
"Loading":{
"message":"Chargement en cours..."
},
"Mins":{
"message":"Minutes"
},
"Secs":{
"message":"Secondes"
},
"Hide":{
"message":"Ne plus montrer"
},
"hitGoBack":{
"message":"Cliquez sur revenir en arrière pour revenir avant le saut du segment commercial"
},
"unskip":{
"message":"Revenir en arrière"
},
"reskip":{
"message":"Sauter"
},
"paused":{
"message":"En pause"
},
"confirmMSG":{
"message":"\n\nPour modifier ou supprimer des soumissions, cliquez sur le bouton d'info ou ouvrez la fenêtre de l'extension en cliquant sur son icône dans le coin en haut à droite."
},
"clearThis":{
"message":"Êtes-vous certain(e) de vouloir supprimer vos soumissions ?\n\n"
},
"Unknown":{
"message":"Une erreur s'est produite lors de la soumission, veuillez ré-essayer plus tard."
},
"sponsorFound":{
"message":"Les messages commerciaux sont déjà dans notre base de donnée pour cette vidéo !"
},
"sponsor404":{
"message":"Pas de messages commerciaux trouvés"
},
"sponsorStart":{
"message":"Début du message commercial"
},
"sponsorEnd":{
"message":"Fin du message commercial"
},
"noVideoID":{
"message":"Ceci n'est pas un onglet YouTube, ou vous avez cliqué trop tôt. \n Si vous êtes sûr(e) que c'est un onglet YouTube, fermez cette fenêtre et réessayez."
},
"success":{
"message":"Succès !"
},
"voted":{
"message":"A voté !"
},
"voteFail":{
"message":"Vous avez déjà voté pour ce choix."
},
"serverDown":{
"message":"Le serveur ne fonctionne pas. Contactez le développeur."
},
"connectionError":{
"message":"Erreur de connexion. Code d'erreur : "
},
"wantToSubmit":{
"message":"Voulez-vous soumettre les segments commerciaux pour cette vidéo"
},
"leftTimes":{
"message":"Vous avez laissé des segments commerciaux non soumis. Retournez sur la vidéo pour les soumettre (ils ont été conservés)."
},
"clearTimes":{
"message":"Supprimer les segments commerciaux"
},
"openPopup":{
"message":"Ouvrir l'encart SponsorBlock"
},
"SubmitTimes":{
"message":"Soumettre les segments commerciaux"
},
"submitCheck":{
"message":"Êtes-vous sûr de vouloir soumettre ces segments?"
},
"whitelistChannel":{
"message":"Ajouter la chaîne à la liste blanche"
},
"removeFromWhitelist":{
"message":"Supprimer la chaîne de la liste blanche"
},
"whitelistDescription":{
"message":"Ajouter à la liste blanche les chaînes qui publient des messages commerciaux de façon éthique pour encourager les bons comportements, ou qui publient des messages commerciaux divertissants ou drôles. Ou pas, c'est votre choix."
},
"voteOnTime":{
"message":"Voter sur un segment commercial"
},
"recordTimes":{
"message":"Enregistrer un segment commercial"
},
"soFarUHSubmited":{
"message":"Vous avez soumis jusqu'à présent"
},
"savedPeopleFrom":{
"message":"Vous avez fait gagner aux autres "
},
"viewLeaderboard":{
"message":"Consulter le classement"
},
"here":{
"message":"ici"
},
"recordTimesDescription":{
"message":"Cliquez sur le bouton ci-dessous quand le segment commercial commence puis \nse termine pour l'enregistrer et le soumettre à la base de données."
},
"popupHint":{
"message":"Astuce : utilisez la touche point-virgule lorsque la vidéo est sélectionnée pour enregistrer le début et la fin d'un segment commercial; utilisez la touche guillemet pour le soumettre. (Les touches peuvent être modifiées dans les options)"
},
"lastTimes":{
"message":"Derniers temps choisis pour le segment commercial"
},
"clearTimesButton":{
"message":"Supprimer les temps"
},
"submitTimesButton":{
"message":"Soumettre les temps"
},
"publicStats":{
"message":"Affiché sur le classement public pour montrer vos contributions. Voir sur"
},
"setUsername":{
"message":"Choisir pseudo"
},
"discordAdvert":{
"message":"Rejoignez le serveur Discord officiel pour toutes suggestions ou remarques!"
},
"hideThis":{
"message":"Cacher"
},
"Options":{
"message":"Options"
},
"showButtons":{
"message":"Montrer les boutons sur le lecteur YouTube"
},
"hideButtons":{
"message":"Cacher les boutons sur le lecteur YouTube"
},
"hideButtonsDescription":{
"message":"Cela permet de cacher du lecteur YouTube les boutons utilisés pour soumettre des segments commerciaux. Je peux \ncomprendre que certaines personnes les trouvent perturbants. Au lieu d'utiliser ces boutons, cette fenêtre peut être utilisée \npour soumettre des segments commerciaux. Pour cacher la notification, utilisez le bouton \"Ne plus montrer\" sur la notification. Vous pouvez toujours réactiver ces paramètres plus tard."
},
"showInfoButton":{
"message":"Montrer le bouton Info sur le lecteur YouTube"
},
"hideInfoButton":{
"message":"Cacher le bouton Info sur le lecteur YouTube"
},
"whatInfoButton":{
"message":"Il s'agit du bouton qui ouvre l'encart sur la page YouTube."
},
"hideDeleteButton":{
"message":"Cacher le bouton Supprimer sur le lecteur YouTube"
},
"showDeleteButton":{
"message":"Montrer le bouton Supprimer sur le lecteur YouTube"
},
"whatDeleteButton":{
"message":"Il s'agit du bouton qui permet de supprimer tous les segments commerciaux depuis le lecteur YouTube."
},
"disableViewTracking":{
"message":"Désactiver le suivi des vues de segments commerciaux"
},
"enableViewTracking":{
"message":"Activer le suivi des vues de segments commerciaux"
},
"whatViewTracking":{
"message":"Cette fonctionnalité suit quels segments commerciaux vous avez sautés afin de calculer le bénéfice des soumissions des \nautres utilisateurs. Elle est également utilisée comme métrique, avec les haut-votes, afin de s'assurer que les spams \nsont ignorés. L'extension envoie un message au serveur à chauqe fois qu'un segment commercial est sauté. Avec un peu de chance, peu de personnes désactiveront cette fonctionnalité afin d'obtenir des nombres de vues exacts. :)"
},
"showNotice":{
"message":"Afficher la notification"
},
"longDescription":{
"message":"SponsorBlock est une extension qui permet de passer les messages commerciaux des vidéos YouTube. SponsorBlock est une extension pour navigateur basée sur le crowdsourcing permettant à n'importe qui de soumettre le début et la fin des segments commerciaux sur les vidéos YouTube. Dès qu'une personne a soumis ces informations, les autres utilisateurs de l'extension en bénéficieront et verront les messages commerciaux automatiquement sautés.",
"description":"Full description of the extension on the store pages."
},
"website":{
"message":"Site web",
"description":"Used on Firefox Store Page"
},
"sourceCode":{
"message":"Code source",
"description":"Used on Firefox Store Page"
},
"noticeUpdate":{
"message":"La notification a été mise à jour !",
"description":"The first line of the message displayed after the notice was upgraded."
},
"noticeUpdate2":{
"message":"Si elle ne vous plaît pas, cliquez sur le bouton \"Ne plus montrer\"",
"description":"The second line of the message displayed after the notice was upgraded."
},
"setStartSponsorShortcut":{
"message":"Changer le raccourci pour enregistrer un segment"
},
"setSubmitKeybind":{
"message":"Changer le raccourci pour soumettre les segments"
"message":"SponsorBlock per YouTube - Salta gli sponsor",
"description":"Name of the extension."
},
"Description":{
"message":"Salta i contenuti sponsorizzati nei video di YouTube. Segnala gli annunci incorporati nei video che guardi per far risparmiare tempo agli altri.",
"description":"Description of the extension."
},
"helpPage":{
"message":"index_en.html"
},
"400":{
"message":"Richiesta non valida"
},
"429":{
"message":"Stai inviando troppi spezzoni per questo video, sei sicuro che ce ne siano così tanti?"
},
"409":{
"message":"Questo spezzone è già stato inviato"
},
"channelWhitelisted":{
"message":"Canale aggiunto alla whitelist!"
},
"Sponsor":{
"message":"sponsorizzazione"
},
"Sponsors":{
"message":"sponsorizzazioni"
},
"Segment":{
"message":"spezzone sponsorizzato"
},
"Segments":{
"message":"spezzoni sponsorizzati"
},
"noticeTitle":{
"message":"Sponsorizzazione Saltata"
},
"reportButtonTitle":{
"message":"Segnala"
},
"reportButtonInfo":{
"message":"Segnala questo spezzone come non corretto."
},
"Dismiss":{
"message":"Chiudi"
},
"Loading":{
"message":"Caricamento..."
},
"Mins":{
"message":"Minuti"
},
"Secs":{
"message":"Secondi"
},
"Hide":{
"message":"Non mostrare più"
},
"hitGoBack":{
"message":"Premi non saltare per tornare da dove sei venuto."
},
"unskip":{
"message":"Non saltare"
},
"reskip":{
"message":"Salta ancora"
},
"paused":{
"message":"In pausa"
},
"confirmMSG":{
"message":"\n\nPer modificare o eliminare valori specifici, premi il pulsante delle informazioni o apri il popup cliccando l'icona dell'estensione nell'angolo in alto a destra."
},
"clearThis":{
"message":"Sei sicuro di volerlo cancellare?\n\n"
},
"Unknown":{
"message":"Si è verificato un errore durante l'invio dello spezzone sponsorizzato, per favore riprova più tardi."
},
"sponsorFound":{
"message":"I contenuti sponsorizzati di questo video sono nel database!"
},
"sponsor404":{
"message":"Nessuna sponsorizzazione trovata"
},
"sponsorStart":{
"message":"La sponsorizzazione inizia adesso"
},
"sponsorEnd":{
"message":"La sponsorizzazione finisce adesso"
},
"noVideoID":{
"message":"Probabilmente questa non è una scheda di YouTube, oppure hai cliccato troppo presto. \nSe sei sicuro di essere in una scheda di YouTube,\n riapri questo popup."
},
"success":{
"message":"Successo!"
},
"voted":{
"message":"Votato!"
},
"voteFail":{
"message":"Hai già votato."
},
"serverDown":{
"message":"Sembra che il server non funzioni. Contatta subito lo sviluppatore."
},
"connectionError":{
"message":"Si è verificato un errore durante la connessione. Codice errore: "
},
"wantToSubmit":{
"message":"Vuoi inviare gli spezzoni sponsorizzati per il video con id"
},
"leftTimes":{
"message":"Sembra che tu non abbia inviato alcuni spezzoni sponsorizzati. Ritorna alla pagina precedente per inviarli (non sono stati eliminati)."
},
"clearTimes":{
"message":"Cancella gli Spezzoni Sponsorizzati"
},
"openPopup":{
"message":"Apri il Popup di SponsorBlock"
},
"SubmitTimes":{
"message":"Invia gli Spezzoni Sponsorizzati"
},
"submitCheck":{
"message":"Sei sicuro di volerlo inviare?"
},
"whitelistChannel":{
"message":"Aggiungi Canale alla Whitelist"
},
"removeFromWhitelist":{
"message":"Rimuovi Canale dalla Whitelist"
},
"whitelistDescription":{
"message":"Aggiungi alla whitelist i canali che sponsorizzano eticamente per incoraggiare ad un comportamento corretto, oppure se sono semplicemente intrattenenti e divertenti. Oppure non farlo, decidi tu."
},
"voteOnTime":{
"message":"Vota uno Spezzone Sponsorizzato"
},
"recordTimes":{
"message":"Registra uno Spezzone Sponsorizzato"
},
"soFarUHSubmited":{
"message":"Fino ad ora hai inviato"
},
"savedPeopleFrom":{
"message":"Hai salvato le persone da "
},
"viewLeaderboard":{
"message":"Guarda la classifica"
},
"here":{
"message":"qui"
},
"recordTimesDescription":{
"message":"Premi il pulsante qui sotto quando inizia e finisce la sponsorizzazione per registrarla e\ninviarla al database."
},
"popupHint":{
"message":"Suggerimento: Premi il tasto punto e virgola mentre il video è attivo per segnalare l'inizio/fine di una sponsorizzazione e virgolette per inviare."
},
"lastTimes":{
"message":"Ultimi minutaggi sponsorizzati scelti"
},
"clearTimesButton":{
"message":"Cancella Minutaggi"
},
"submitTimesButton":{
"message":"Invia Minutaggi"
},
"publicStats":{
"message":"Viene utilizzato nelle pagine delle statistiche pubbliche che mostrano quanto hai contribuito. Vedi"
},
"setUsername":{
"message":"Imposta Username"
},
"discordAdvert":{
"message":"Entra nel server Discord ufficiale per darci suggerimenti e feedback!"
},
"hideThis":{
"message":"Nascondi"
},
"Options":{
"message":"Opzioni"
},
"showButtons":{
"message":"Mostra i Pulsanti nel Lettore di YouTube"
},
"hideButtons":{
"message":"Nascondi i Pulsanti nel Lettore di YouTube"
},
"hideButtonsDescription":{
"message":"Nasconde i pulsanti che appaiono nel lettore di YouTube per inviare spezzoni sponsorizzati. Capisco che può essere fastidioso per alcune\n persone. Invece di utilizzare quei pulsanti, è possibile utilizzare questo popup per inviare gli spezzoni sponsorizzati. Per nascondere l'avviso che appare, \nusa il bottone \"Non mostrare più\" nell'avviso. Potrai sempre abilitare nuovamente queste impostazioni in futuro."
},
"showInfoButton":{
"message":"Mostra il Pulsante Informazioni nel Lettore di YouTube"
},
"hideInfoButton":{
"message":"Nascondi il Pulsante Informazioni nel Lettore di YouTube"
},
"whatInfoButton":{
"message":"Questo è il pulsante che apre un popup nella pagina YouTube."
},
"hideDeleteButton":{
"message":"Nascondi il Pulsante Elimina nel Lettore di YouTube"
},
"showDeleteButton":{
"message":"Mostra il Pulsante Elimina nel Lettore di YouTube"
},
"whatDeleteButton":{
"message":"Questo è il pulsante che ti permette di cancellare tutti gli spezzoni sponsorizzati nel lettore di YouTube."
},
"disableViewTracking":{
"message":"Disattiva il Monitoraggio delle Sponsorizzazioni"
},
"enableViewTracking":{
"message":"Disattiva il Monitoraggio delle Sponsorizzazioni"
},
"whatViewTracking":{
"message":"Questa funzione tiene traccia di quali sponsorizzazioni hai saltato per far sapere agli utenti quanto è stato d'aiuto agli altri il loro contributo e\nviene utilizzato come metrica assieme ai voti positivi per filtrare lo spam dal database. L'estensione invia un messaggio\nal server ogni volta che salti una sponsorizzazione. Si spera che la maggior parte delle persone non modifichi questa impostazione così i numeri sono accurati. :)"
},
"showNotice":{
"message":"Mostra di Nuovo l'Avviso"
},
"longDescription":{
"message":"SponsorBlock è un'estensione che salta gli spezzoni con contenuti sponsorizzati nei video di YouTube. SponsorBlock è un'estensione crowdsourced per i browser che permette a chiunque di inviare i minutaggi degli spezzoni sponsorizzati nei video di YouTube. Quando una persona avrà inviato questa informazione, tutti gli utenti che utilizzano questa estensione potranno saltare lo spezzone sponsorizzato.",
"description":"Full description of the extension on the store pages."
"message":"SponsorBlock para YouTube - Pule patrocínios",
"description":"Nome da extensão."
},
"Description":{
"message":"Pule patrocinadores em vídeos do YouTube. Reporte patrocinadores em videos que você assiste para salvar o tempo dos outros.",
"description":"Descrição da extensão."
},
"helpPage":{
"message":"index_en.html"
},
"400":{
"message":"O servidor disse que esse pedido foi inválido"
},
"429":{
"message":"Você enviou muitos segmentos para esse vídeo, tem certeza que tem tantos assim?"
},
"409":{
"message":"Isso já foi enviado antes"
},
"channelWhitelisted":{
"message":"Canal adicionado à lista branca!"
},
"Sponsor":{
"message":"patrocinador"
},
"Sponsors":{
"message":"patrocinadores"
},
"Segment":{
"message":"segmento de patrocinador"
},
"Segments":{
"message":"segmentos de patrocinadores"
},
"noticeTitle":{
"message":"Patrocinador pulado"
},
"reportButtonTitle":{
"message":"Reportar"
},
"reportButtonInfo":{
"message":"Reportar essa subimissão como inválida."
},
"Dismiss":{
"message":"Ignorar"
},
"Loading":{
"message":"Carregando..."
},
"Mins":{
"message":"Minutos"
},
"Secs":{
"message":"Segundos"
},
"Hide":{
"message":"Nunca mostrar"
},
"hitGoBack":{
"message":"Aperta reverter pulo para voltar onde estava"
},
"unskip":{
"message":"Reverter pulo"
},
"reskip":{
"message":"Pular novamente"
},
"paused":{
"message":"Pausado"
},
"confirmMSG":{
"message":"\n\nPara editar ou remover linhas individuais, clique com o botão direito ou abra o popup da extensão pelo icone no canto superior direito."
},
"clearThis":{
"message":"Tem certeza que quer limpar isso?\n\n"
},
"Unknown":{
"message":"Teve um erro ao enviar seus segmentos, tente novamente depois."
},
"sponsorFound":{
"message":"Os patrocinadores desse vídeo estão no banco de dados!"
},
"sponsor404":{
"message":"Nenhum patrocinador encontrado"
},
"sponsorStart":{
"message":"Patrocínio começa agora"
},
"sponsorEnd":{
"message":"Patrocínio termina agora"
},
"noVideoID":{
"message":"Isso provavelmente não é uma tab do YouTube, ou você clicou muito cedo. \n Se sabe que é uma tab do YouTube,\n feche esse popup e abra de novo."
},
"success":{
"message":"Sucesso!"
},
"voted":{
"message":"Votado!"
},
"voteFail":{
"message":"Você já votou antes."
},
"serverDown":{
"message":"Parece que o servidor caiu. Contate o desenvolvedor o quanto antes."
},
"connectionError":{
"message":"Um erro de conexão aconteceu: Código: "
},
"wantToSubmit":{
"message":"Quer enviar os segmentos para o vídeo de ID"
},
"leftTimes":{
"message":"Parece que você se esqueceu de enviar alguns segmentos. Volta pra página para os enviar (não foram deletados)."
},
"clearTimes":{
"message":"Apagar intervalos dos patrocínios"
},
"openPopup":{
"message":"Abrir o Popup SponsorBlock"
},
"SubmitTimes":{
"message":"Submeter intervalos dos patrocínios"
},
"submitCheck":{
"message":"Tem a certeza que pretende submeter?"
},
"whitelistChannel":{
"message":"Meter canal na Whitelist"
},
"removeFromWhitelist":{
"message":"Remover canal da Whitelist"
},
"whitelistDescription":{
"message":"Colocar na Whitelist canais com patrocínios éticos que encoragem boas atitude, ou simplesmente canais com patrocínios engraçados. Ou não, é consigo."
},
"voteOnTime":{
"message":"Vote num intervalo de patrocínio"
},
"recordTimes":{
"message":"Registe um intervalo de patrocínio"
},
"soFarUHSubmited":{
"message":"Até agora submeteu"
},
"savedPeopleFrom":{
"message":"Poupaste a outros de "
},
"viewLeaderboard":{
"message":"Ver a leaderboard"
},
"here":{
"message":"aqui"
},
"recordTimesDescription":{
"message":"Carregue neste botão abaixo quando o patrocínio começar e quando\n acabar para registar e submetê-lo à base de dados"
},
"popupHint":{
"message":"Dica: Carregue na tecla ; enquanto num vídeo para registar o começo/fim de um patrocínio e \" para submeter"
},
"lastTimes":{
"message":"Intervalos de Patrocínios Escolhidos mais Recentemente"
},
"clearTimesButton":{
"message":"Limpar Intervalos"
},
"submitTimesButton":{
"message":"Submeter Intervalos"
},
"publicStats":{
"message":"Isto é usado na página pública de estatísticas que mostra o quanto já contríbuíu. Veje-a"
},
"setUsername":{
"message":"Criar nomde de utilizador"
},
"discordAdvert":{
"message":"Junte-se ao discord oficial para sugerir dicas e sugestões!"
},
"hideThis":{
"message":"Esconder isto"
},
"Options":{
"message":"Opções"
},
"showButtons":{
"message":"Mostrar botões no player do Youtube"
},
"hideButtons":{
"message":"Esconder botões no player do Youtube"
},
"hideButtonsDescription":{
"message":"Isto esconde os botões que aparecem no player do Youtube para submeter patrocínios. Entendemos que possa ser\n incómodo a algumas pessoas. Em vez de usar esses botões pode usar os do popup. Para esconder a mensagem que aparece, \n ususe o botão na mesma que diz \"Don't show this again\". Pode sempre reactivar estas definições novamente."
},
"showInfoButton":{
"message":"Mostrar botão de Informações no player do Youtube"
},
"hideInfoButton":{
"message":"Esconder botão de Informações no player do Youtube"
},
"whatInfoButton":{
"message":"Este é o botão que abre o popup na pagina do Youtube."
},
"hideDeleteButton":{
"message":"Esconder botão de Apagar no player do Youtube"
},
"showDeleteButton":{
"message":"Mostrar botão de Apagar no player do Youtube"
},
"whatDeleteButton":{
"message":"Este é o botão que lhe permite saltar todos os patrocínios do player do Youtube."
},
"disableViewTracking":{
"message":"Desactivar registo de visualização de patrocínios"
},
"enableViewTracking":{
"message":"Activar registo de visualização de patrocínios"
},
"whatViewTracking":{
"message":"Esta funcionalidade regista que patrocínios tem saltado para que outros utilizadores saibam o quanto as suas submições têm ajudado outros\n e é usado como métrica de votos para evitar spam na base de dados. A extenção \n envia uma notificação ao servidor sempre que salta um patrocínio. Quanto menos pessoas desactivarem esta funcionalidade mais precisas serão as estimativas :)"
},
"showNotice":{
"message":"Mostrar notificação outra vez"
},
"longDescription":{
"message":"SponsorBlock é uma extensão que salta segmentos patrocinados em vídeos do YouTube. SponsorBlock é uma extenção crowdfunded que permite a qualquer um submeter o início e o fim de segmentos patrocinados. Assim que uma pessoa submete essa informação todos com a extenção poderam saltar automaticamete o patrocínio.",
"description":"Descrição completa da extençao nas lojas dos browsers."
},
"website":{
"message":"Site",
"description":"Usado na pagina da loja do Firefox"
},
"sourceCode":{
"message":"Código fonte",
"description":"Usado na pagina da loja do Firefox"
"message":"SponsorBlock para o YouTube - Salte patrocínios",
"description":"Nome da extensão."
},
"Description":{
"message":"Salte patrocinadores em vídeos do YouTube. Reporte patrocinadores em vídeos que assista para poupar tempo a outros.",
"description":"Descrição da extensão."
},
"helpPage":{
"message":"index_en.html"
},
"400":{
"message":"O servidor disse que este pedido foi inválido"
},
"429":{
"message":"Enviou muitos segmentos para este vídeo, tem certeza que tem assim tantos?"
},
"409":{
"message":"Isso já foi enviado antes"
},
"channelWhitelisted":{
"message":"Canal adicionado à whitelist!"
},
"Sponsor":{
"message":"patrocinador"
},
"Sponsors":{
"message":"patrocinadores"
},
"Segment":{
"message":"segmento de patrocínio"
},
"Segments":{
"message":"segmentos de patrocínio"
},
"noticeTitle":{
"message":"Patrocínio saltado"
},
"reportButtonTitle":{
"message":"Reportar"
},
"reportButtonInfo":{
"message":"Reportar subimissão como inválida."
},
"Dismiss":{
"message":"Ignorar"
},
"Loading":{
"message":"A carregar..."
},
"Mins":{
"message":"Minutos"
},
"Secs":{
"message":"Segundos"
},
"Hide":{
"message":"Nunca mostrar"
},
"hitGoBack":{
"message":"Carregue em reverter salto para voltar a onde estava"
},
"unskip":{
"message":"Reverter salto"
},
"reskip":{
"message":"Saltar novamente"
},
"paused":{
"message":"Pausado"
},
"confirmMSG":{
"message":"\n\nPara editar ou remover linhas individuais, carregue com o botão direito ou abra o popup da extensão pelo icone no canto superior direito."
},
"clearThis":{
"message":"Tem certeza que deseja limpar isto?\n\n"
},
"Unknown":{
"message":"Erro ao enviar os seus segmentos, tente novamente mais tarde."
},
"sponsorFound":{
"message":"Os patrocinadores desse vídeo estão no banco de dados!"
},
"sponsor404":{
"message":"Nenhum patrocinador encontrado"
},
"sponsorStart":{
"message":"Patrocínio começa agora"
},
"sponsorEnd":{
"message":"Patrocínio termina agora"
},
"noVideoID":{
"message":"Isto provavelmente não é uma tab do YouTube, ou pode ter clicado muito cedo. \n Se sabe que é uma tab do YouTube,\n feche este popup e abra de novo."
},
"success":{
"message":"Sucesso!"
},
"voted":{
"message":"Votado!"
},
"voteFail":{
"message":"Já votou antes."
},
"serverDown":{
"message":"Parece que o servidor caiu. Contacte o desenvolvedor o quanto antes."
},
"connectionError":{
"message":"Deu-se um erro de conecção: Código: "
},
"wantToSubmit":{
"message":"Quer enviar os segmentos para o vídeo de ID"
},
"leftTimes":{
"message":"Parece que se esqueceu de enviar alguns segmentos. Retorne à página para os enviar (não foram apagados)."
},
"clearTimes":{
"message":"Apagar intervalos dos patrocínios"
},
"openPopup":{
"message":"Abrir o Popup SponsorBlock"
},
"SubmitTimes":{
"message":"Submeter intervalos dos patrocínios"
},
"submitCheck":{
"message":"Tem a certeza que pretende submeter?"
},
"whitelistChannel":{
"message":"Meter canal na Whitelist"
},
"removeFromWhitelist":{
"message":"Remover canal da Whitelist"
},
"whitelistDescription":{
"message":"Colocar na Whitelist canais com patrocínios éticos que encoragem boas atitude, ou simplesmente canais com patrocínios engraçados. Ou não, é consigo."
},
"voteOnTime":{
"message":"Vote num intervalo de patrocínio"
},
"recordTimes":{
"message":"Registe um intervalo de patrocínio"
},
"soFarUHSubmited":{
"message":"Até agora submeteu"
},
"savedPeopleFrom":{
"message":"Poupaste a outros de "
},
"viewLeaderboard":{
"message":"Ver a leaderboard"
},
"here":{
"message":"aqui"
},
"recordTimesDescription":{
"message":"Carregue neste botão abaixo quando o patrocínio começar e quando\n acabar para registar e submetê-lo à base de dados"
},
"popupHint":{
"message":"Dica: Carregue na tecla ; enquanto num vídeo para registar o começo/fim de um patrocínio e \" para submeter"
},
"lastTimes":{
"message":"Intervalos de Patrocínios Escolhidos mais Recentemente"
},
"clearTimesButton":{
"message":"Limpar Intervalos"
},
"submitTimesButton":{
"message":"Submeter Intervalos"
},
"publicStats":{
"message":"Isto é usado na página pública de estatísticas que mostra o quanto já contríbuíu. Veje-a"
},
"setUsername":{
"message":"Criar nomde de utilizador"
},
"discordAdvert":{
"message":"Junte-se ao discord oficial para sugerir dicas e sugestões!"
},
"hideThis":{
"message":"Esconder isto"
},
"Options":{
"message":"Opções"
},
"showButtons":{
"message":"Mostrar botões no player do Youtube"
},
"hideButtons":{
"message":"Esconder botões no player do Youtube"
},
"hideButtonsDescription":{
"message":"Isto esconde os botões que aparecem no player do Youtube para submeter patrocínios. Entendemos que possa ser\n incómodo a algumas pessoas. Em vez de usar esses botões pode usar os do popup. Para esconder a mensagem que aparece, \n ususe o botão na mesma que diz \"Don't show this again\". Pode sempre reactivar estas definições novamente."
},
"showInfoButton":{
"message":"Mostrar botão de Informações no player do Youtube"
},
"hideInfoButton":{
"message":"Esconder botão de Informações no player do Youtube"
},
"whatInfoButton":{
"message":"Este é o botão que abre o popup na pagina do Youtube."
},
"hideDeleteButton":{
"message":"Esconder botão de Apagar no player do Youtube"
},
"showDeleteButton":{
"message":"Mostrar botão de Apagar no player do Youtube"
},
"whatDeleteButton":{
"message":"Este é o botão que lhe permite saltar todos os patrocínios do player do Youtube."
},
"disableViewTracking":{
"message":"Desactivar registo de visualização de patrocínios"
},
"enableViewTracking":{
"message":"Activar registo de visualização de patrocínios"
},
"whatViewTracking":{
"message":"Esta funcionalidade regista que patrocínios tem saltado para que outros utilizadores saibam o quanto as suas submições têm ajudado outros\n e é usado como métrica de votos para evitar spam na base de dados. A extenção \n envia uma notificação ao servidor sempre que salta um patrocínio. Quanto menos pessoas desactivarem esta funcionalidade mais precisas serão as estimativas :)"
},
"showNotice":{
"message":"Mostrar notificação outra vez"
},
"longDescription":{
"message":"SponsorBlock é uma extensão que salta segmentos patrocinados em vídeos do YouTube. SponsorBlock é uma extenção crowdfunded que permite a qualquer um submeter o início e o fim de segmentos patrocinados. Assim que uma pessoa submete essa informação todos com a extenção poderam saltar automaticamete o patrocínio.",
"description":"Descrição completa da extençao nas lojas dos browsers."
},
"website":{
"message":"Site",
"description":"Usado na pagina da loja do Firefox"
},
"sourceCode":{
"message":"Código fonte",
"description":"Usado na pagina da loja do Firefox"
"description":"Название расширения, не переводится."
},
"fullName":{
"message":"SponsorBlock для YouTube - Пропускайте спонсорские вставки",
"description":"Название расширения."
},
"Description":{
"message":"Пропускайте спонсорские вставки в видео на YouTube. Сообщайте о спонсорских вставках в видео, которые Вы смотрите, чтобы сэкономить время других пользователей.",
"description":"Описание раширения."
},
"helpPage":{
"message":"index_en.html"
},
"400":{
"message":"Сервер отклонил этот запрос."
},
"429":{
"message":"Вы отправили слишком много спонсоров для этого видео. Вы уверены, что их так много?"
},
"409":{
"message":"Этот запрос был отправлен ранее."
},
"channelWhitelisted":{
"message":"Канал добавлен в белый список!"
},
"Sponsor":{
"message":"Спонсор"
},
"Sponsors":{
"message":"Спонсоры"
},
"Segment":{
"message":"спонсорская вставка"
},
"Segments":{
"message":"спонсорские вставки"
},
"noticeTitle":{
"message":"Спонсор пропущен"
},
"reportButtonTitle":{
"message":"Ошибка"
},
"reportButtonInfo":{
"message":"Сообщить, что информация об этом спонсорском сегменте ошибочна."
},
"Dismiss":{
"message":"Закрыть"
},
"Loading":{
"message":"Загрузка..."
},
"Mins":{
"message":"мин"
},
"Secs":{
"message":"сек"
},
"Hide":{
"message":"Не показывать"
},
"hitGoBack":{
"message":"Нажмите «Назад», чтобы вернуться обратно."
},
"unskip":{
"message":"Назад"
},
"reskip":{
"message":"Пропустить"
},
"paused":{
"message":"Пауза"
},
"confirmMSG":{
"message":"\n\nЧтобы изменить или удалить отдельные значения, нажмите кнопку «Информация» или откройте всплывающее окно расширения, щелкнув значок расширения в правом верхнем углу."
},
"clearThis":{
"message":"Вы уверены, что хотите удалить эту информацию?\n\n"
},
"Unknown":{
"message":"При отправке отчета о спонсорском сегменте произошла ошибка. Попытайтесь отправить его позже."
},
"sponsorFound":{
"message":"Спонсоры этого видео уже находятся в базе данных!"
"message":"Возможно, это не вкладка YouTube, или Вы нажали слишком рано. \n Если это вкладка YouTube,\n закройте это всплывающее окно и откройте его снова."
},
"success":{
"message":"Успех!"
},
"voted":{
"message":"Голос засчитан!"
},
"voteFail":{
"message":"Вы уже проголосовали таким образом раньше."
},
"serverDown":{
"message":"Кажется, сервер не работает. Свяжитесь с разработчиком."
},
"connectionError":{
"message":"Ошибка соединения. Код ошибки: "
},
"wantToSubmit":{
"message":"Вы точно хотите отправить отчёт о спонсорских вставках в видео с идентификатором"
},
"leftTimes":{
"message":"Вы ещё не отправили отчёты о некоторых спонсорских вставках. Хотите вернуться на эту страницу, чтобы отправить их (они не удаляются)."
},
"submitCheck":{
"message":"Вы уверены, что хотите отправить эту информацию?"
Come contribute, make some suggestions and help out in the Discord: <ahref="https://discord.gg/QnmVMpU">https://discord.gg/QnmVMpU</a>
</p>
<h1>How skipping works</h1>
<pclass="projectPreview">
<spanclass="projectPreviewImageLarge">
<imgsrc="https://i.imgur.com/caf5Bju.png">
</span>
Videos will automatically be skipped if they are found in the database. You can open the popup by clicking the extension icon to get a preview of what they are.
<br/>
<br/>
Whenever you skip a video, you will get a notice report that submission. If the timing seems wrong, report it! You can also vote in the popup. The extension auto upvotes it if you don't report it, so make sure to report when necessary (this can be disabled in the options).
Submitting can either be done in the popup by hitting the "Sponsorship Starts Now" button or in the video player with the buttons on the player.
<br/>
<br/>
Clicking the play button indicated the start of a sponsorship section and clicking the stop icon indicates the end. You can prepare multiple sponsors before hitting submit. Clicking the upload button will submit. Clicking the garbage can will delete.
</p>
<h1>Editing</h1>
<pclass="projectPreview">
<spanclass="projectPreviewImageLarge">
<imgsrc="https://i.imgur.com/DZHqbsx.gif">
</span>
If you messed up, you can edit or delete your sponsor times in the popup or in the info menu (by hitting the info icon).
</p>
<h1>This is too slow</h1>
<p>
There are hotkeys if you want to use them. You must be focused on the YouTube player to use them. Press the semicolon key to indicate the start/end of a sponsor segment and click the appostrophe to submit.
</p>
<h1>I hate these buttons, they are so ugly</h1>
<p>
All player buttons can be hidden in the options.
</p>
<h1>Can I get a copy of the Database? What happens if you disappear?</h1>
<p>
The database is public and available at <ahref="https://sponsor.ajay.app/database.db">https://sponsor.ajay.app/database.db</a>. The source code is freely available. So, even if something happens to me, your submissions are not lost.
</p>
<h1>News and how it is made</h1>
<p>
See <ahref="https://sponsor.ajay.app/news">https://sponsor.ajay.app/news</a>.
</p>
<h1>I want more features!</h1>
<p>
Ask on Discord or make an Issue on GitHub. I am happy to hear suggestions or improvements you want. You may also contribute code or graphics if you would like.
<p>The awesome <ahref="https://github.com/omarroth/invidious/wiki/API">Invidious API</a> is used to grab the time the video was published.</p>
<p>Some icons made by <ahref="https://www.flaticon.com/authors/gregor-cresnar"title="Gregor Cresnar">Gregor Cresnar</a> from <ahref="https://www.flaticon.com/"title="Flaticon">www.flaticon.com</a> and are licensed by <ahref="http://creativecommons.org/licenses/by/3.0/"title="Creative Commons BY 3.0"target="_blank">CC 3.0 BY</a></p>
<p>Some icons made by <ahref="https://www.flaticon.com/authors/freepik"title="Freepik">Freepik</a> from <ahref="https://www.flaticon.com/"title="Flaticon">www.flaticon.com</a> and are licensed by <ahref="http://creativecommons.org/licenses/by/3.0/"title="Creative Commons BY 3.0"target="_blank">CC 3.0 BY</a></p>
src:local('Source Sans Pro Regular'),local('SourceSansPro-Regular'),url(https://fonts.gstatic.com/s/sourcesanspro/v12/6xK3dSBYKcSV-LCoeQqfX1RYOo3qNa7lqDY.woff2)format('woff2');
src:local('Source Sans Pro Regular'),local('SourceSansPro-Regular'),url(https://fonts.gstatic.com/s/sourcesanspro/v12/6xK3dSBYKcSV-LCoeQqfX1RYOo3qPK7lqDY.woff2)format('woff2');
src:local('Source Sans Pro Regular'),local('SourceSansPro-Regular'),url(https://fonts.gstatic.com/s/sourcesanspro/v12/6xK3dSBYKcSV-LCoeQqfX1RYOo3qNK7lqDY.woff2)format('woff2');
unicode-range:U+1F00-1FFF;
}
/* greek */
@font-face{
font-family:'Source Sans Pro';
font-style:normal;
font-weight:400;
src:local('Source Sans Pro Regular'),local('SourceSansPro-Regular'),url(https://fonts.gstatic.com/s/sourcesanspro/v12/6xK3dSBYKcSV-LCoeQqfX1RYOo3qO67lqDY.woff2)format('woff2');
unicode-range:U+0370-03FF;
}
/* vietnamese */
@font-face{
font-family:'Source Sans Pro';
font-style:normal;
font-weight:400;
src:local('Source Sans Pro Regular'),local('SourceSansPro-Regular'),url(https://fonts.gstatic.com/s/sourcesanspro/v12/6xK3dSBYKcSV-LCoeQqfX1RYOo3qN67lqDY.woff2)format('woff2');
src:local('Source Sans Pro Regular'),local('SourceSansPro-Regular'),url(https://fonts.gstatic.com/s/sourcesanspro/v12/6xK3dSBYKcSV-LCoeQqfX1RYOo3qNq7lqDY.woff2)format('woff2');
src:local('Source Sans Pro Regular'),local('SourceSansPro-Regular'),url(https://fonts.gstatic.com/s/sourcesanspro/v12/6xK3dSBYKcSV-LCoeQqfX1RYOo3qOK7l.woff2)format('woff2');
"licenseText":"MIT License\n\nCopyright (c) Federico Brigante <me@fregante.com> (https://fregante.com)\n\nPermission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the \"Software\"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n"
"licenseText":"MIT License\n\nCopyright (c) Sindre Sorhus <sindresorhus@gmail.com> (https://sindresorhus.com)\n\nPermission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the \"Software\"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n"
},
"js-tokens":{
"ignore":false,
"name":"js-tokens",
"version":"4.0.0",
"authors":"Simon Lydell",
"url":"https://github.com/lydell/js-tokens",
"license":"MIT",
"licenseText":"The MIT License (MIT)\n\nCopyright (c) 2014, 2015, 2016, 2017, 2018 Simon Lydell\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n"
},
"loose-envify":{
"ignore":false,
"name":"loose-envify",
"version":"1.4.0",
"authors":"Andres Suarez <zertosh@gmail.com>",
"url":"https://github.com/zertosh/loose-envify",
"license":"MIT",
"licenseText":"The MIT License (MIT)\n\nCopyright (c) 2015 Andres Suarez <zertosh@gmail.com>\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n"
},
"react-dom":{
"ignore":false,
"name":"react-dom",
"version":"18.2.0",
"url":"https://github.com/facebook/react",
"license":"MIT",
"licenseText":"MIT License\n\nCopyright (c) Facebook, Inc. and its affiliates.\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n"
},
"react":{
"ignore":false,
"name":"react",
"version":"18.2.0",
"url":"https://github.com/facebook/react",
"license":"MIT",
"licenseText":"MIT License\n\nCopyright (c) Facebook, Inc. and its affiliates.\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n"
},
"scheduler":{
"ignore":false,
"name":"scheduler",
"version":"0.23.0",
"url":"https://github.com/facebook/react",
"license":"MIT",
"licenseText":"MIT License\n\nCopyright (c) Facebook, Inc. and its affiliates.\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n"
"licenseText":"MIT License\n\nCopyright (c) Federico Brigante <me@fregante.com> (https://fregante.com)\n\nPermission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the \"Software\"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n"
"licenseText":"MIT License\n\nCopyright (c) Federico Brigante <me@fregante.com> (https://fregante.com)\n\nPermission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the \"Software\"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n"
"licenseText":"MIT License\n\nCopyright (c) Federico Brigante <me@fregante.com> (https://fregante.com)\n\nPermission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the \"Software\"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n"
__MSG_helpPageThanksForInstalling__ By using this extension, you agree to the <ahref="https://gist.github.com/ajayyy/aa9f8ded2b573d4f73a3ffa0ef74f796">Privacy Policy</a> and <ahref="https://gist.github.com/ajayyy/9e8100f069348e0bc062641f34d6af12">Terms of Use</a>.
</p>
<p>
Come contribute, make some suggestions and help out on <ahref="https://discord.gg/SponsorBlock">Discord</a> or on <ahref="https://matrix.to/#/#sponsor:ajay.app?via=ajay.app&via=matrix.org&via=mozilla.org">Matrix</a>.
Thanks to all <ahref="https://github.com/ajayyy/SponsorBlock/graphs/contributors">SponsorBlock contributors</a>,
<ahref="https://github.com/ajayyy/SponsorBlockServer/graphs/contributors">SponsorBlockServer contributors</a> and
<ahref="https://github.com/ajayyy/SponsorBlockSite/graphs/contributors">SponsorBlockSite contributors</a> such
as <ahref="https://github.com/NDevTK">NDev</a>, <ahref="https://github.com/Joe-Dowd">Joe Dowd</a>,
<ahref="https://mchang.name/">Michael Chang</a> and more.
</p>
<p>The awesome <ahref="https://github.com/omarroth/invidious/wiki/API">Invidious API</a> is used to grab the time the video was published.</p>
<p>Some icons made by <ahref="https://www.flaticon.com/authors/gregor-cresnar"title="Gregor Cresnar">Gregor Cresnar</a> from <ahref="https://www.flaticon.com/"title="Flaticon">www.flaticon.com</a> and are licensed by <ahref="https://creativecommons.org/licenses/by/3.0/"title="Creative Commons BY 3.0"target="_blank">CC 3.0 BY</a></p>
<p>Some icons made by <ahref="https://www.flaticon.com/authors/freepik"title="Freepik">Freepik</a> from <ahref="https://www.flaticon.com/"title="Flaticon">www.flaticon.com</a> and are licensed by <ahref="https://creativecommons.org/licenses/by/3.0/"title="Creative Commons BY 3.0"target="_blank">CC 3.0 BY</a></p>
d="m 282.58,568 a 65,65 0 0 1 -34.14,-9.66 C 95.41,463.94 2.54,300.46 0,121 a 64.91,64.91 0 0 1 34,-58.09 522.56,522.56 0 0 1 497.16,0 64.91,64.91 0 0 1 34,58.12 c -2.53,179.43 -95.4,342.91 -248.42,437.3 A 65,65 0 0 1 282.58,568 Z m 0,-548.31 A 502.24,502.24 0 0 0 43.4,80.22 45.27,45.27 0 0 0 19.7,120.75 c 2.44,172.67 91.81,330 239.07,420.83 a 46.19,46.19 0 0 0 47.61,0 C 453.64,450.73 543,293.42 545.45,120.75 A 45.26,45.26 0 0 0 521.75,80.21 502.26,502.26 0 0 0 282.58,19.69 Z"
id="path8"
inkscape:connector-curvature="0"
style="fill:#ffffff"/>
<path
style="fill:#ffffff"
d="M 284.70508 42.693359 A 479.9 479.9 0 0 0 54.369141 100.41992 A 22.53 22.53 0 0 0 42.669922 120.41992 C 45.069922 290.25992 135.67008 438.63977 270.83008 522.00977 A 22.48 22.48 0 0 0 294.32031 522.00977 C 429.48031 438.63977 520.08047 290.25992 522.48047 120.41992 A 22.53 22.53 0 0 0 510.7793 100.41992 A 479.9 479.9 0 0 0 284.70508 42.693359 z M 224.94922 162.35352 L 282.57422 219.98047 L 340.20117 162.35352 L 384.33984 206.49219 L 326.71484 264.11719 L 384.33984 321.74414 L 340.20117 365.88281 L 282.57422 308.25781 L 224.94922 365.88281 L 180.81055 321.74414 L 238.4375 264.11719 L 180.81055 206.49219 L 224.94922 162.35352 z "
d="m 282.58,568 a 65,65 0 0 1 -34.14,-9.66 C 95.41,463.94 2.54,300.46 0,121 a 64.91,64.91 0 0 1 34,-58.09 522.56,522.56 0 0 1 497.16,0 64.91,64.91 0 0 1 34,58.12 c -2.53,179.43 -95.4,342.91 -248.42,437.3 A 65,65 0 0 1 282.58,568 Z m 0,-548.31 A 502.24,502.24 0 0 0 43.4,80.22 45.27,45.27 0 0 0 19.7,120.75 c 2.44,172.67 91.81,330 239.07,420.83 a 46.19,46.19 0 0 0 47.61,0 C 453.64,450.73 543,293.42 545.45,120.75 A 45.26,45.26 0 0 0 521.75,80.21 502.26,502.26 0 0 0 282.58,19.69 Z"
id="path8"
inkscape:connector-curvature="0"
style="fill:#ffffff"/>
<path
style="fill:#ffffff"
d="M 284.70508 42.693359 A 479.9 479.9 0 0 0 54.369141 100.41992 A 22.53 22.53 0 0 0 42.669922 120.41992 C 45.069922 290.25992 135.67008 438.63977 270.83008 522.00977 A 22.48 22.48 0 0 0 294.32031 522.00977 C 429.48031 438.63977 520.08047 290.25992 522.48047 120.41992 A 22.53 22.53 0 0 0 510.7793 100.41992 A 479.9 479.9 0 0 0 284.70508 42.693359 z M 184.84375 113.77344 L 380.30664 113.77344 L 380.30664 161.31836 L 184.84375 161.31836 L 184.84375 113.77344 z M 184.84375 174.45703 L 380.30469 174.45703 L 380.30469 430.16992 L 184.84375 430.16992 L 184.84375 174.45703 z "
d="m 282.58,568 a 65,65 0 0 1 -34.14,-9.66 C 95.41,463.94 2.54,300.46 0,121 a 64.91,64.91 0 0 1 34,-58.09 522.56,522.56 0 0 1 497.16,0 64.91,64.91 0 0 1 34,58.12 c -2.53,179.43 -95.4,342.91 -248.42,437.3 A 65,65 0 0 1 282.58,568 Z m 0,-548.31 A 502.24,502.24 0 0 0 43.4,80.22 45.27,45.27 0 0 0 19.7,120.75 c 2.44,172.67 91.81,330 239.07,420.83 a 46.19,46.19 0 0 0 47.61,0 C 453.64,450.73 543,293.42 545.45,120.75 A 45.26,45.26 0 0 0 521.75,80.21 502.26,502.26 0 0 0 282.58,19.69 Z"
id="path8"
inkscape:connector-curvature="0"
style="fill:#ffffff"/>
<path
style="fill:#ffffff"
d="M 284.70508 42.693359 A 479.9 479.9 0 0 0 54.369141 100.41992 A 22.53 22.53 0 0 0 42.669922 120.41992 C 45.069922 290.25992 135.67008 438.63977 270.83008 522.00977 A 22.48 22.48 0 0 0 294.32031 522.00977 C 429.48031 438.63977 520.08047 290.25992 522.48047 120.41992 A 22.53 22.53 0 0 0 510.7793 100.41992 A 479.9 479.9 0 0 0 284.70508 42.693359 z M 282.57422 112.11133 L 282.87109 112.11133 L 423.75977 365.75391 L 330.30273 365.75391 L 330.30273 409.21094 L 234.84766 409.21094 L 234.84766 365.75391 L 141.39062 365.75391 L 282.57422 112.11133 z "
d="M 52.946,23.348 H 42.834 v 6 h 10.112 c 3.007,0 5.34,1.536 5.34,2.858 v 26.606 c 0,1.322 -2.333,2.858 -5.34,2.858 H 14.724 c -3.007,0 -5.34,-1.536 -5.34,-2.858 V 32.207 c 0,-1.322 2.333,-2.858 5.34,-2.858 h 10.11 v -6 h -10.11 c -6.359,0 -11.34,3.891 -11.34,8.858 v 26.606 c 0,4.968 4.981,8.858 11.34,8.858 h 38.223 c 6.358,0 11.34,-3.891 11.34,-8.858 V 32.207 C 64.286,27.239 59.305,23.348 52.946,23.348 Z"
id="path2"
style="fill:#ffffff"/>
<path
d="m 24.957,14.955 c 0.768,0 1.535,-0.293 2.121,-0.879 l 3.756,-3.756 v 13.028 6 11.494 c 0,1.657 1.343,3 3,3 1.657,0 3,-1.343 3,-3 v -11.494 -6 -13.231 l 3.959,3.959 c 0.586,0.586 1.354,0.879 2.121,0.879 0.767,0 1.535,-0.293 2.121,-0.879 1.172,-1.171 1.172,-3.071 0,-4.242 L 36.078,0.877 C 35.492,0.291 34.725,0 33.958,0 33.95,0 33.943,0 33.935,0 33.927,0 33.92,0 33.912,0 33.145,0 32.378,0.291 31.792,0.877 l -8.957,8.957 c -1.172,1.171 -1.172,3.071 0,4.242 0.587,0.586 1.354,0.879 2.122,0.879 z"
Some files were not shown because too many files have changed in this diff
Show More
Reference in New Issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.