Skip to content
Permalink

Comparing changes

Choose two branches to see what’s changed or to start a new pull request. If you need to, you can also or learn more about diff comparisons.

Open a pull request

Create a new pull request by comparing changes across two branches. If you need to, you can also . Learn more about diff comparisons here.
base repository: isaackd/AnnotationsRestored
Failed to load repositories. Confirm that selected base ref is valid, then try again.
Loading
base: v1.2
Choose a base ref
...
head repository: isaackd/AnnotationsRestored
Failed to load repositories. Confirm that selected head ref is valid, then try again.
Loading
compare: master
Choose a head ref
  • 20 commits
  • 15 files changed
  • 2 contributors

Commits on Sep 15, 2022

  1. Add additional promo images

    isaackd committed Sep 15, 2022
    Copy the full SHA
    ffcf36a View commit details
  2. Update version number

    isaackd committed Sep 15, 2022
    Copy the full SHA
    56b6676 View commit details
  3. Update cors config for Edge

    isaackd committed Sep 15, 2022
    Copy the full SHA
    f98232d View commit details
  4. Add Kofi banner

    isaackd committed Sep 15, 2022
    Copy the full SHA
    97d57f2 View commit details
  5. Copy the full SHA
    8f49ae5 View commit details
  6. Remove outdated information and update

    The annotations restored format no longer works currently.
    isaackd authored Sep 15, 2022
    Copy the full SHA
    888d78c View commit details
  7. Add promo image for Readme

    isaackd committed Sep 15, 2022
    Copy the full SHA
    d9b2575 View commit details
  8. Copy the full SHA
    5030b9f View commit details
  9. Update README.md

    isaackd authored Sep 15, 2022
    Copy the full SHA
    090c535 View commit details

Commits on Sep 24, 2022

  1. Copy the full SHA
    132b227 View commit details

Commits on Jan 1, 2023

  1. Copy the full SHA
    3ae874b View commit details

Commits on Jan 23, 2023

  1. Create messages.json

    Add Brazilian Portuguese locale
    Gersonzao authored Jan 23, 2023
    Copy the full SHA
    1e24a5a View commit details

Commits on Jan 24, 2023

  1. Update messages.json

    Change "Nenhum vídeo tocando" to "Nenhum vídeo reproduzindo"
    Gersonzao authored Jan 24, 2023
    Copy the full SHA
    7636625 View commit details
  2. Copy the full SHA
    fcef2cb View commit details

Commits on Jan 25, 2023

  1. Update README.md

    isaackd authored Jan 25, 2023
    Copy the full SHA
    203856c View commit details

Commits on Feb 15, 2023

  1. Add Polish translation

    isaackd committed Feb 15, 2023
    Copy the full SHA
    e966af0 View commit details
  2. Copy the full SHA
    682649e View commit details

Commits on May 13, 2023

  1. Add Discord server link

    isaackd authored May 13, 2023
    Copy the full SHA
    32efbf4 View commit details

Commits on Jun 22, 2023

  1. Add Discord link to popup

    isaackd committed Jun 22, 2023
    Copy the full SHA
    8a5cd5a View commit details

Commits on Jul 4, 2023

  1. Copy the full SHA
    989ab3e View commit details
87 changes: 44 additions & 43 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,14 +1,18 @@
## Annotations Restored

![Demonstration of Annotations Restored](https://github.com/isaackd/AnnotationsRestored/blob/master/demo.gif)
![Logo and title](https://github.com/isaackd/AnnotationsRestored/blob/master/promo/Marquee_short.png)

On January 15 2019, YouTube decided to discontinue annotations. While the feature was frequently abused, it did have many legitimate use cases, such as games, corrections, and a form of commentary that could be toggled on and off. The removal left many older videos obsolete.

Annotations Restored fixes this by searching for any archived annotation files and displaying them if found.

![Discord Logo](https://img.shields.io/badge/Discord-5865F2?style=for-the-badge&logo=discord&logoColor=white)

Join the Discord! https://discord.gg/v7xMm2r8wH

![Demonstration of Annotations Restored](https://github.com/isaackd/AnnotationsRestored/blob/master/demo.gif)

## Installation

**Google Chrome/Opera/Vivaldi/Chromium**
### Google Chrome / Brave / Opera / Vivaldi

<a href="https://chrome.google.com/webstore/detail/annotations-restored-for/daabpdmgkghdbfljmeahnplkcldbeefg"><img src="https://user-images.githubusercontent.com/585534/107280622-91a8ea80-6a26-11eb-8d07-77c548b28665.png" alt="Get Annotations Restored for Chromium"></a>

@@ -19,7 +23,7 @@ Install from source
2. Go to [chrome://extensions](chrome://extensions), enable the "Developer Mode" option in the top right and reload the page.
4. Drag **ext.zip** onto the window to install it.

**Firefox**
### Firefox

<a href="https://addons.mozilla.org/firefox/addon/annotations-restored/"><img src="https://user-images.githubusercontent.com/585534/107280546-7b9b2a00-6a26-11eb-8f9f-f95932f4bfec.png" alt="Get Annotations Restored for Firefox"></a>

@@ -30,42 +34,39 @@ Install from source
2. Go to [about:debugging#addons](about:debugging#addons), click "Load Temporary Add-on"
3. Select **ext.zip**.

### Microsoft Edge

Install from [Edge Add-ons](https://microsoftedge.microsoft.com/addons/detail/annotations-restored-for-/odldjlabdddambcjhpdahhfgbdifoapp)

## Interesting videos with annotations

* [Mario Menu](https://www.youtube.com/watch?v=6Uwd5w1AwYU)
* [Annotation Tetris](https://www.youtube.com/watch?v=eIIV6a2Pdh4)
* [Ace Attorney Translations](https://www.youtube.com/watch?v=hzQuGq21Dlc&list=PLjRAU3j6cNaixtcLDixVlaz7Vcthm0rmh&index=1) (only the first video was saved unfortunately)
* [SomeGuy Automatic Mario](https://www.youtube.com/watch?v=94tVUfUdCFs)
* [TLOC3 \*SPECIAL EDITION\* Now with Creators' Annotations](https://www.youtube.com/watch?v=rf5ngNUN2yo)
* [Pop-Up Coin-Op: Space Invaders](https://www.youtube.com/watch?v=VP2T3YlTDG8)
* [Super Paper Mario](https://www.youtube.com/watch?v=urTFIWUacmw)

Check out the [wiki for more](https://github.com/isaackd/AnnotationsRestored/wiki/List-of-videos-with-annotations).

## Contributing

### Development

If you'd like to help out by contributing code, you can take a look at the [open issues](https://github.com/isaackd/AnnotationsRestored/issues).

There are also a few issues marked as `help wanted` [here](https://github.com/isaackd/AnnotationsRestored/issues?q=is%3Aissue+is%3Aopen+label%3A%22help+wanted%22).

### Translations

- Brazilian Portuguese added by [@Gersonzao](https://github.com/Gersonzao)
- Polish added by Kamil K

Currently, all other translations in the extension are done by Google Translate and may be inaccurate. Pull requests fixing any incorrect translations or adding new ones are appreciated! The relevant files can be found in the `_locales` directory.

## Donate

Donations are greatly appreciated and will be used to pay for hosting the annotations server.

## Restoring annotations on old videos
If you were able to download your video's annotation data before it was removed, you can use the [conversion tool](https://isaackd.github.io/annotations-converter/) to convert it into a format the extension can understand. **The data put into the description must be in one of the following formats**:
* `[ar_start]CONVERTED_ANNOTATION_DATA[ar_end]` ([example](https://imgur.com/1ubx6B8))
* `[ar_gist_start]username/gist_id[ar_gist_end]`
* `[ar_pastebin_start]pastebin_id[ar_pastebin_end]`

If you don't have access to the annotation data for your videos, you will need to wait for the data dumps from projects such as the [YouTube Annotation Archive](https://www.reddit.com/r/DataHoarder/comments/aa6czg/youtube_annotation_archive/) to become available, then check if the annotations for your video were saved.

## Adding annotations to new videos
As I currently don't have access to a server to store new annotation data, it must be put into the video's description as described above, although **you will have to manually create the data in the extension's format**. If there is enough interest, an annotation creator can be made.

## Documentation of the Annotations Restored format
Annotations Restored uses a different format than YouTube used for annotations. The Annotations Restored format is generally more compact than the YouTube annotations format.

Each videos annotations consist of a list of annotations. Annotations are separated by the `;` character, with no spaces. Each annotation consists of a set of properties, separated by the `,` character, also with no spaces. Between each property and value is a `=` symbol. The properties for annotations are the following:
#### Required Properties.
* `bgc`: the annotation background color in decimal form.
* `bgo`: the opacity of the background as a decimal (range from 0 to 1, inclusive).
* `fgc`: the annotation foreground color in decimal form.
* `txsz`: the size of the text as a percent of the video height.
* `x`: the x coordinate of the annotation in percent of the width of the video.
* `y`: the y coordinate of the annotation in percent of the height of the video.
* `w`: the width of the annotation in percent of the width of the video.
* `h`: the height of the annotation in percent of the height of the video.
* `ts`: the start of the time the annotation is displayed on screen in seconds.
* `te`: the end of the time the annotation is displayed on screen in seconds.
* `tp`: the type of the annotation. Possible values include `text` and `pause`.
* `s` : the style of the annotation. Possible values include `speech`, `popup`, `highlightText`, `anchored`, and `branding`.
* `t`: the text of the annotation. Note that text must be url-encoded (use `%20` for space, etc.).
#### Optional Properties
* `as`: the time in seconds to jump to within a video for an annotation with an in-video link.
* `at`: the action type. Note that text must be url-encoded (use `%20` for space, etc.).
* `au`: the action url. Possible values include `url`.
* `aut`: the action target. Possible values include `new` tab/window and `current` tab/window.
* `sx`: the speech bubble point position x in percent of the width of the video.
* `sy`: the speech bubble point position y in percent of the height of the video.

A `;` character must appear after the final annotation.
[![ko-fi](https://ko-fi.com/img/githubbutton_sm.svg)](https://ko-fi.com/M4M4BMRRU)
77 changes: 77 additions & 0 deletions _locales/pl/messages.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,77 @@
{
"name": {
"message": "Przywrócenie adnotacji dla YouTube™"
},
"shortName": {
"message": "Przywrócone adnotacje"
},
"description": {
"message": "Przywróć obsługę adnotacji w YouTube™!"
},

"statusTextNoVideo": {
"message": "Film nie jest odtwarzany"
},
"statusTextCheckingForVideo": {
"message": "Szukam adnotacji..."
},

"loadAnnotationText": {
"message": "Załaduj plik z adnotacjami"
},
"manageCacheText": {
"message": "Zarządzaj pamięcią podręczną"
},

"annotationCountSingular": {
"message": "Adnotacja"
},
"annotationCountPlural": {
"message": "Adnotacje"
},

"annotationTableType": {
"message": "Typ"
},
"annotationTableText": {
"message": "Tekst"
},
"annotationTableTime": {
"message": "Czas"
},

"annotationNoText": {
"message": "Bez tekstu"
},

"downloadButtonText": {
"message": "Pobierz"
},

"missingAnnotationsHeader": {
"message": "Hmm. Wygląda na to, że nie mamy żadnych adnotacji dla tego filmu"
},
"missingAnnotationsText1": {
"message": "Masz plik adnotacji dla tego filmu?"
},
"missingAnnotationsText2": {
"message": "Wyślij na adres email"
},

"donateButtonText": {
"message": "Kup mi kawę!"
},

"manageCacheHeader": {
"message": "Zarządzaj pamięcią podręczną Przywróconych adnotacji"
},
"manageCacheTotalSizeText": {
"message": "Całkowity rozmiar:"
},
"manageCacheOpenButtonText": {
"message": "Otwórz"
},
"manageCacheDeleteButtonText": {
"message": "Usuń"
}
}
77 changes: 77 additions & 0 deletions _locales/pt_BR/messages.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,77 @@
{
"name": {
"message": "Anotações Restauradas para o YouTube™"
},
"shortName": {
"message": "Anotações Restauradas"
},
"description": {
"message": "Traga o suporte à anotações de volta ao YouTube™!"
},

"statusTextNoVideo": {
"message": "Nenhum vídeo reproduzindo"
},
"statusTextCheckingForVideo": {
"message": "Procurando anotações..."
},

"loadAnnotationText": {
"message": "Carregar Arquivo de Anotação"
},
"manageCacheText": {
"message": "Gerenciar Cache"
},

"annotationCountSingular": {
"message": "Anotação"
},
"annotationCountPlural": {
"message": "Anotações"
},

"annotationTableType": {
"message": "Tipo"
},
"annotationTableText": {
"message": "Texto"
},
"annotationTableTime": {
"message": "Tempo"
},

"annotationNoText": {
"message": "Sem texto"
},

"downloadButtonText": {
"message": "Baixar"
},

"missingAnnotationsHeader": {
"message": "Hmm. Parece que não temos nenhuma anotação para esse vídeo."
},
"missingAnnotationsText1": {
"message": "Você tem o arquivo de anotação?"
},
"missingAnnotationsText2": {
"message": "Envie-me um e-mail em"
},

"donateButtonText": {
"message": "Me compre um café!"
},

"manageCacheHeader": {
"message": "Gerenciar Cache do Anotações Restauradas"
},
"manageCacheTotalSizeText": {
"message": "Tamanho Total:"
},
"manageCacheOpenButtonText": {
"message": "Abrir"
},
"manageCacheDeleteButtonText": {
"message": "Excluir"
}
}
4 changes: 3 additions & 1 deletion cors_config.json
Original file line number Diff line number Diff line change
@@ -2,7 +2,9 @@
{
"origin": [
"chrome-extension://ddollceobbebemnbdagcmgcilgkadcmo",
"chrome-extension://daabpdmgkghdbfljmeahnplkcldbeefg"
"chrome-extension://daabpdmgkghdbfljmeahnplkcldbeefg",
"chrome-extension://hdadelacifoidogimlijapliklanndmb",
"chrome-extension://odldjlabdddambcjhpdahhfgbdifoapp"
],
"method": ["GET"],
"responseHeader": ["Content-Type"],
2 changes: 1 addition & 1 deletion manifest.json
Original file line number Diff line number Diff line change
@@ -2,7 +2,7 @@
"manifest_version": 3,
"name": "__MSG_name__",
"short_name": "__MSG_shortName__",
"version": "1.1",
"version": "1.2",

"description": "__MSG_description__",

2 changes: 1 addition & 1 deletion manifest_firefox.json
Original file line number Diff line number Diff line change
@@ -2,7 +2,7 @@
"manifest_version": 2,
"name": "__MSG_name__",
"short_name": "__MSG_shortName__",
"version": "1.1",
"version": "1.2",

"description": "__MSG_description__",

1 change: 1 addition & 0 deletions popup/discord.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
12 changes: 8 additions & 4 deletions popup/index.css
Original file line number Diff line number Diff line change
@@ -237,7 +237,8 @@ th, td {
#footer {
display: flex;

justify-content: space-between;
justify-content: start;
gap: 1rem;
align-items: center;

bottom: 0;
@@ -258,7 +259,8 @@ th, td {
width: 20px;
}

#coffee-button {
#coffee-button,
#discord-button {
display: flex;
align-items: center;
padding: 0.6rem;
@@ -275,15 +277,17 @@ th, td {
background-color: #e3e3e3;
}

#coffee-button:hover {
#coffee-button:hover,
#discord-button:hover {
background-color: #dedede;
}

#footer a {
color: black;
}

#coffee-logo {
#coffee-logo,
#discord-logo {
width: 20px;
}

7 changes: 7 additions & 0 deletions popup/index.html
Original file line number Diff line number Diff line change
@@ -65,6 +65,13 @@ <h2 id="settings-title">Settings</h2>
</div>
</a>

<a href="https://discord.gg/v7xMm2r8wH" target="_blank">
<button id="discord-button">
<img id="discord-logo" src="discord.svg">
<span id="discord-text">Discord</span>
</button>
</a>

<a href="https://ko-fi.com/isaackd" target="_blank">
<button id="coffee-button">
<img id="coffee-logo" src="coffee.png">
4 changes: 2 additions & 2 deletions popup/index.js
Original file line number Diff line number Diff line change
@@ -36,8 +36,8 @@ emailTextElement.textContent = " afrmtbl@gmail.com";

emptySubtextElement.append(subtextOne, newlineElement, subtextTwo, emailTextElement);

const extensionNameElement = document.getElementById("extension-name");
extensionNameElement.textContent = browser.i18n.getMessage("shortName");
// const extensionNameElement = document.getElementById("extension-name");
// extensionNameElement.textContent = browser.i18n.getMessage("shortName");

const coffeeTextElement = document.getElementById("coffee-text");
coffeeTextElement.textContent = browser.i18n.getMessage("donateButtonText");
Binary file added promo/Large.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added promo/Marquee.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added promo/Marquee_kofi.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added promo/Marquee_short.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added promo/Small.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.