{"id":30456469,"url":"https://github.com/paulrosset/subtitles-anywhere-web","last_synced_at":"2025-08-23T16:33:11.678Z","repository":{"id":42954113,"uuid":"233048130","full_name":"PaulRosset/subtitles-anywhere-web","owner":"PaulRosset","description":"Add your own SRT, VTT, SAMI, or TTML subtitles to your preferred service streaming web platform.","archived":false,"fork":false,"pushed_at":"2023-01-07T13:35:39.000Z","size":1119,"stargazers_count":10,"open_issues_count":11,"forks_count":3,"subscribers_count":3,"default_branch":"master","last_synced_at":"2024-12-31T04:02:44.081Z","etag":null,"topics":["chrome-extension","rx-player","sami","srt-subtitles","subtitles","ttml","video","video-player","vtt-subtitles"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/PaulRosset.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2020-01-10T13:02:35.000Z","updated_at":"2024-06-16T05:35:29.000Z","dependencies_parsed_at":"2023-02-07T07:42:56.709Z","dependency_job_id":null,"html_url":"https://github.com/PaulRosset/subtitles-anywhere-web","commit_stats":null,"previous_names":[],"tags_count":4,"template":false,"template_full_name":null,"purl":"pkg:github/PaulRosset/subtitles-anywhere-web","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/PaulRosset%2Fsubtitles-anywhere-web","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/PaulRosset%2Fsubtitles-anywhere-web/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/PaulRosset%2Fsubtitles-anywhere-web/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/PaulRosset%2Fsubtitles-anywhere-web/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/PaulRosset","download_url":"https://codeload.github.com/PaulRosset/subtitles-anywhere-web/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/PaulRosset%2Fsubtitles-anywhere-web/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":271755686,"owners_count":24815459,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-08-23T02:00:09.327Z","response_time":69,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["chrome-extension","rx-player","sami","srt-subtitles","subtitles","ttml","video","video-player","vtt-subtitles"],"created_at":"2025-08-23T16:33:11.048Z","updated_at":"2025-08-23T16:33:11.668Z","avatar_url":"https://github.com/PaulRosset.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# \u003cimg src=\"src/medias/icon.png\" width=\"45\" height=\"45\" align=\"left\"\u003e SubAny\n\n\u003e A **Chrome extension** that allow you to provide **SRT**, **TTML**, **VTT**, or **SAMI** subtitles to any video on the web.\n\n## Install\n\n- [**Chrome** extension](https://chrome.google.com/webstore/detail/subany-web/japfodgakhloekokcjbapdodojbhnnkc) [\u003cimg valign=\"middle\" src=\"https://img.shields.io/chrome-web-store/v/japfodgakhloekokcjbapdodojbhnnkc.svg?label=%20\"\u003e](https://chrome.google.com/webstore/detail/subany-web/japfodgakhloekokcjbapdodojbhnnkc)\n\n### Context\n\nThe streaming world has never been so exciting. Many companies are investing a large number of resources to deliver video on the web. This is changing how we get entertained.\n\nHowever, depending on the country you live, you may face some limitations of right about specific video content that can be delivered. This also concerns subtitles.\n\nTo answer these problems, you can now provide your subtitles.\nThus, for example, if you stay in a country where the streaming provider can't have access to the captions you wish, you can use that extension.\n\nThis is also useful for people that don't like subtitles that the services are providing and so providing your captions.\n\n### How it works ?\n\nThe magic behind is the [rx-player's tools](https://github.com/canalplus/rx-player).\n\nWhich will do the hard work:\n\n- **Parse** the subtitles types in format that can be understand by Javascript\n- **Display** the subtitles. It's using his own internal logic to display the subtitles at the right moment.\n\n### How to use the extension\n\nUsing the **chrome-extension** is very easy to do.\n\nOnce downloaded the extension:\n\n- You should go at the **Options** of the app (right click on the icon -\u003e options).\n- Then a popup will appear.\n- Finally, you can follow on to display you own subtitles.\n\n### Subtitles (SRT,TTML,VTT,SAMI)\n\nWe are currently supporting four differents types of subtitles:\n\n- **SRT**:\n  This is the most common type of subtitles on the web\n  Ex:\n\n  ```\n  1\n  00:00:01,600 --\u003e 00:00:04,200\n  English (US)\n\n  2\n  00:00:05,900 --\u003e 00:00:07,999\n  This is a subtitle in American English\n\n  3\n  00:00:10,000 --\u003e 00:00:14,000\n  Adding subtitles is very easy to do\n  ```\n\n- **TTML**:\n  This is a subtitle that is expressed in XML markup language\n\n  ```xml\n  \u003ctt xml:lang=\"en\" xmlns=\"http://www.w3.org/ns/ttml\"\n    xmlns:tts=\"http://www.w3.org/ns/ttml#styling\"\u003e\n  \u003chead\u003e\n  \u003clayout\u003e\n   \u003cregion xml:id=\"rTop\"    tts:origin=\"10% 10%\" tts:extent=\"80% 20%\"/\u003e\n   \u003cregion xml:id=\"rMiddle\" tts:origin=\"10% 40%\" tts:extent=\"80% 20%\"/\u003e\n   \u003cregion xml:id=\"rBottom\" tts:origin=\"10% 70%\" tts:extent=\"80% 20%\"/\u003e\n  \u003c/layout\u003e\n  \u003c/head\u003e\n  \u003cbody\u003e\n  \u003cdiv xml:lang=\"en\"\u003e\n    \u003cp begin=\"0.76s\" end=\"3.20s\" region=\"rTop\"\u003e\n      I sent a message to the fish:\n    \u003c/p\u003e\n    \u003cp begin=\"3.20s\" end=\"6.61s\" region=\"rMiddle\"\u003e\n      I told them \"This is what I wish.\"\n    \u003c/p\u003e\n    \u003cp begin=\"6.61s\" end=\"9.93s\" region=\"r1Bottom\"\u003e\n      The little fishes of the sea,\n    \u003c/p\u003e\n    \u003cp begin=\"9.93s\" end=\"12.35s\" region=\"r2Middle\"\u003e\n      They sent an answer back to me.\n    \u003c/p\u003e\n  \u003c/div\u003e\n  \u003c/body\u003e\n  \u003c/tt\u003e\n  ```\n\n- **VTT**:\n  Also know as **WEBVtt**\n\n```\nWEBVTT\n\n00:00:00.500 --\u003e 00:00:02.000\nThe Web is always changing\n\n00:00:02.500 --\u003e 00:00:04.300\nand the way we access it is changing\n```\n\n- **SAMI**:\n\n```\n\u003cSAMI\u003e\n\n\u003cHEAD\u003e\n\u003cTITLE\u003eSAMI Example\u003c/TITLE\u003e\n\n\u003cSAMIParam\u003e\n Media {cheap44.wav}\n Metrics {time:ms;}\n Spec {MSFT:1.0;}\n\u003c/SAMIParam\u003e\n\n\u003cSTYLE TYPE=\"text/css\"\u003e\n\u003c!--\n P { font-family: Arial; font-weight: normal; color: white; background-color: black; text-align: center; }\n\n #Source {color: red; background-color: blue; font-family: Courier; font-size: 12pt; font-weight: normal; text-align: left; }\n\n .ENUSCC { name: English; lang: en-US ; SAMIType: CC ; }\n .FRFRCC { name: French;  lang: fr-FR ; SAMIType: CC ; }\n--\u003e\n\u003c/STYLE\u003e\n\n\u003c/HEAD\u003e\n\n\u003cBODY\u003e\n\n\u003c!-- Open play menu, choose Captions and Subtiles, On if available --\u003e\n\u003c!-- Open tools menu, Security, Show local captions when present --\u003e\n\n\u003cSYNC Start=0\u003e\n \u003cP Class=ENUSCC ID=Source\u003eThe Speaker\u003c/P\u003e\n \u003cP Class=ENUSCC\u003eSAMI 0000 text\u003c/P\u003e\n\n \u003cP Class=FRFRCC ID=Source\u003eLe narrateur\u003c/P\u003e\n \u003cP Class=FRFRCC\u003eTexte SAMI 0000\u003c/P\u003e\n\u003c/SYNC\u003e\n\n\u003cSYNC Start=1000\u003e\n \u003cP Class=ENUSCC\u003eSAMI 1000 text\u003c/P\u003e\n \u003cP Class=FRFRCC\u003eTexte SAMI 1000\u003c/P\u003e\n\u003c/SYNC\u003e\n\n\u003cSYNC Start=2000\u003e\n \u003cP Class=ENUSCC\u003eSAMI 2000 text\u003c/P\u003e\n \u003cP Class=FRFRCC\u003eTexte SAMI 2000\u003c/P\u003e\n\u003c/SYNC\u003e\n\n\u003cSYNC Start=3000\u003e\n \u003cP Class=ENUSCC\u003eSAMI 3000 text\u003c/P\u003e\n \u003cP Class=FRFRCC\u003eTexte SAMI 3000\u003c/P\u003e\n\u003c/SYNC\u003e\n\n\u003c/BODY\u003e\n\u003c/SAMI\u003e\n```\n\n### License\n\nMIT\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpaulrosset%2Fsubtitles-anywhere-web","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpaulrosset%2Fsubtitles-anywhere-web","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpaulrosset%2Fsubtitles-anywhere-web/lists"}