{"id":13586980,"url":"https://github.com/TeamPiped/sponsorblock-mirror","last_synced_at":"2025-04-07T18:35:18.724Z","repository":{"id":103405937,"uuid":"555826302","full_name":"TeamPiped/sponsorblock-mirror","owner":"TeamPiped","description":"An implementation of a mirror SponsorBlock server in Rust.","archived":false,"fork":false,"pushed_at":"2024-10-28T20:24:55.000Z","size":241,"stargazers_count":52,"open_issues_count":4,"forks_count":9,"subscribers_count":2,"default_branch":"main","last_synced_at":"2024-10-29T12:33:59.928Z","etag":null,"topics":["rust","sponsorblock"],"latest_commit_sha":null,"homepage":"https://sponsorblock.kavin.rocks","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"agpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/TeamPiped.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,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2022-10-22T12:25:29.000Z","updated_at":"2024-10-28T20:24:59.000Z","dependencies_parsed_at":null,"dependency_job_id":"3634838b-2e9a-458f-8f95-c37d6599e670","html_url":"https://github.com/TeamPiped/sponsorblock-mirror","commit_stats":{"total_commits":231,"total_committers":7,"mean_commits":33.0,"dds":"0.22077922077922074","last_synced_commit":"40f628915e124786bf4587841fbaf6108cad42c5"},"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TeamPiped%2Fsponsorblock-mirror","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TeamPiped%2Fsponsorblock-mirror/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TeamPiped%2Fsponsorblock-mirror/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TeamPiped%2Fsponsorblock-mirror/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/TeamPiped","download_url":"https://codeload.github.com/TeamPiped/sponsorblock-mirror/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247657243,"owners_count":20974348,"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","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":["rust","sponsorblock"],"created_at":"2024-08-01T15:05:56.867Z","updated_at":"2025-04-07T18:35:18.705Z","avatar_url":"https://github.com/TeamPiped.png","language":"Rust","funding_links":[],"categories":["Rust"],"sub_categories":[],"readme":"# sponsorblock-mirror\n\nThis is a Rust-based mirror of the [SponsorBlock](https://sponsor.ajay.app) API.\n\nIt also uses [sb-mirror](https://github.com/mchangrh/sb-mirror) for mirroring the CSV dumps via rsync.\n\n## Instances\n\n-   [sponsorblock.kavin.rocks](https://sponsorblock.kavin.rocks) - 🇩🇪 (main instance)\n-   [sponsorblock.gleesh.net](https://sponsorblock.gleesh.net) - 🇩🇪\n-   [sponsorblock.2255.me](https://sponsorblock.2255.me) - 🇵🇱\n-   [sponsorblock.hostux.net](https://sponsorblock.hostux.net) - :fr:\n\nFeel free to add your instance to this list by making a pull request.\n\nYou can also configure Piped-Backend to use your mirror by changing the `SPONSORBLOCK_SERVERS` configuration value.\n\n## Compatibility\n\nThis implementation does not implement the full SponsorBlock server API. It supports hash-based queries to `/api/skipSegments/\u003chash\u003e`, with optional `categories` parameter, and queries to `/api/skipSegments` with required `videoID` and optional `categories` parameters.\n\nThe browser extension works with only the hash-based query endpoint, but other clients, such as the one in ReVanced, require the video ID endpoint, and additionally query `/api/userInfo` and `/api/isUserVip`. Right now there are stub implementations for these. ReVanced had not yet been verified as compatible.\n\n## Using with Docker Compose\n\nTo run the server under Docker Compose, run:\n\n```\ndocker compose up\n```\n\nThis starts the API server, a database, and a mirroring service to download the SponsorBlock data from the `sponsorblock.kavin.rocks` mirror and keep it up to date.\n\nThe API will be available on `http://localhost:8000`. For example, you can try `http://localhost:8000/api/skipSegments/aabf` or `http://localhost:8000/api/skipSegments?videoID=eQ_8F4nzyiw`. **It will take a few minutes at least for the database to download and import,** so these will not return data on the first run.\n\n## Building\n\nTo make a local release build, use `cargo build --release`. This will produce a binary in `target/release/sponsorblock-mirror`.\n\nTo make a Docker container, you need to do a BuildKit Docker build, not a normal Docker build. Make sure you have `buildx` available in your Docker, and run:\n```bash\ndocker buildx build --load -t 1337kavin/sponsorblock-mirror .\n```\n\n## Troubleshooting\n\n* If the linker complains about a missing `-lpq`, make sure you have the PostgreSQL development libraries, which may be in a `libpq-dev` package or your distribution's equivalent.\n\n* If Docker complains that `the --mount option requires BuildKit`, make sure you are building with `docker buildx build` and not `docker build`.\n\n* To access the PostgreSQL database directly, you can `docker exec -ti postgres-sb-mirror bash -c 'psql $POSTGRES_DB $POSTGRES_USER'`.\n\n* Requests for videos not in the database are forwarded to `https://sponsor.ajay.app/`, which may be down or malfunctioning. A response of the string `Internal Server Error` is likely to be from there, rather than from this application.\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FTeamPiped%2Fsponsorblock-mirror","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FTeamPiped%2Fsponsorblock-mirror","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FTeamPiped%2Fsponsorblock-mirror/lists"}