Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@
- Granular permission system.
- Support for various notification agents.
- Mobile-friendly design, for when you need to approve requests on the go!
- Support for watchlisting & blacklisting media.
- Support for watchlisting & blocklisting media.

With more features on the way! Check out our [issue tracker](/../../issues) to see the features which have already been requested.

Expand Down
4 changes: 2 additions & 2 deletions cypress/config/settings.cypress.json
Original file line number Diff line number Diff line change
Expand Up @@ -18,8 +18,8 @@
"discoverRegion": "",
"streamingRegion": "",
"originalLanguage": "",
"blacklistedTags": "",
"blacklistedTagsLimit": 50,
"blocklistedTags": "",
"blocklistedTagsLimit": 50,
"trustProxy": false,
"mediaServerType": 1,
"partialRequestsEnabled": true,
Expand Down
2 changes: 1 addition & 1 deletion docs/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ Welcome to the Seerr Documentation.
- Localization into other languages.
- Support for **PostgreSQL** and **SQLite** databases.
- Support for various notification agents.
- Easily **Watchlist** or **Blacklist** media.
- Easily **Watchlist** or **Blocklist** media.
- More features to come!

## We need your help!
Expand Down
2 changes: 1 addition & 1 deletion docs/using-seerr/backups.md
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ These settings are stored in the `settings.json` file located in the Seerr data

## User Data

Apart from the settings, all other data—including user accounts, media requests, blacklist etc. are stored in the database (either SQLite or PostgreSQL).
Apart from the settings, all other data—including user accounts, media requests, blocklist etc. are stored in the database (either SQLite or PostgreSQL).

# Backup

Expand Down
12 changes: 6 additions & 6 deletions docs/using-seerr/settings/general.md
Original file line number Diff line number Diff line change
Expand Up @@ -62,13 +62,13 @@ Set the default display language for Seerr. Users can override this setting in t

These settings filter content shown on the "Discover" home page based on regional availability and original language, respectively. The Streaming Region filters the available streaming providers on the media page. Users can override these global settings by configuring these same options in their user settings.

## Blacklist Content with Tags and Limit Content Blacklisted per Tag
## Blocklist Content with Tags and Limit Content Blocklisted per Tag

These settings blacklist any TV shows or movies that have one of the entered tags. The "Process Blacklisted Tags" job adds entries to the blacklist based on the configured blacklisted tags. If a blacklisted tag is removed, any media blacklisted under that tag will be removed from the blacklist when the "Process Blacklisted Tags" job runs.
These settings blocklist any TV shows or movies that have one of the entered tags. The "Process Blocklisted Tags" job adds entries to the blocklist based on the configured blocklisted tags. If a blocklisted tag is removed, any media blocklisted under that tag will be removed from the blocklist when the "Process Blocklisted Tags" job runs.

The limit setting determines how many pages per tag the job will process, with each page containing 20 entries. The job cycles through all 16 available discovery sort options, querying the defined number of pages to blacklist media that is most likely to appear at the top of each sort. Higher limits will create a more accurate blacklist, but will require more storage.
The limit setting determines how many pages per tag the job will process, with each page containing 20 entries. The job cycles through all 16 available discovery sort options, querying the defined number of pages to blocklist media that is most likely to appear at the top of each sort. Higher limits will create a more accurate blocklist, but will require more storage.

Blacklisted tags are disabled until at least one tag is entered. These settings cannot be overridden in user settings.
Blocklisted tags are disabled until at least one tag is entered. These settings cannot be overridden in user settings.

## Hide Available Media

Expand All @@ -78,9 +78,9 @@ Available media will still appear in search results, however, so it is possible

This setting is **disabled** by default.

## Hide Blacklisted Items
## Hide Blocklisted Items

When enabled, media that has been blacklisted will not appear on the "Discover" home page, for all administrators. This can be useful to hide content that you don't want to see, such as content with specific tags or content that has been manually blacklisted when you have the "Manage Blacklist" permission.
When enabled, media that has been blocklisted will not appear on the "Discover" home page, for all administrators. This can be useful to hide content that you don't want to see, such as content with specific tags or content that has been manually blocklisted when you have the "Manage Blocklist" permission.

This setting is **disabled** by default.

Expand Down
2 changes: 1 addition & 1 deletion gen-docs/blog/2026-02-10/seerr-release.md
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ Seerr brings several features that were previously available in Jellyseerr but m

* **Alternative media solution:** Added support for Jellyfin and Emby in addition to the existing Plex integration.
* **PostgreSQL support**: In addition to SQLite, you can now opt in to using a PostgreSQL database.
* **Blacklist for movies, series, and tags**: Allows permitted users to hide movies, series, or tags from regular users.
* **Blocklist for movies, series, and tags**: Allows permitted users to hide movies, series, or tags from regular users.
* **Override rules**: Adjust default request settings based on conditions such as user, tag, or other criteria.
* **TVDB metadata**: Option to use TheTVDB metadata for series (as in Sonarr) instead of TMDB.
* **DNS caching**: Reduces lookup times and external requests, especially useful when using systems like Pi-Hole/Adguard Home.
Expand Down
156 changes: 138 additions & 18 deletions seerr-api.yml
Original file line number Diff line number Diff line change
Expand Up @@ -38,8 +38,8 @@ tags:
description: Endpoints related to getting service (Radarr/Sonarr) details.
- name: watchlist
description: Collection of media to watch later
- name: blacklist
description: Blacklisted media from discovery page.
- name: blocklist
description: Blocklisted media from discovery page.
servers:
- url: '{server}/api/v1'
variables:
Expand All @@ -48,7 +48,7 @@ servers:

components:
schemas:
Blacklist:
Blocklist:
type: object
properties:
tmdbId:
Expand Down Expand Up @@ -4529,12 +4529,123 @@ paths:
restricted:
type: boolean
example: false
/blocklist:
get:
summary: Returns blocklisted items
description: Returns list of all blocklisted media
tags:
- blocklist
parameters:
- in: query
name: take
schema:
type: number
nullable: true
example: 25
- in: query
name: skip
schema:
type: number
nullable: true
example: 0
- in: query
name: search
schema:
type: string
nullable: true
example: dune
- in: query
name: filter
schema:
type: string
enum: [all, manual, blocklistedTags]
default: manual
responses:
'200':
description: Blocklisted items returned
content:
application/json:
schema:
type: object
properties:
pageInfo:
$ref: '#/components/schemas/PageInfo'
results:
type: array
items:
type: object
properties:
user:
$ref: '#/components/schemas/User'
createdAt:
type: string
example: 2024-04-21T01:55:44.000Z
id:
type: number
example: 1
mediaType:
type: string
example: movie
title:
type: string
example: Dune
tmdbId:
type: number
example: 438631
post:
summary: Add media to blocklist
tags:
- blocklist
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/Blocklist'
responses:
'201':
description: Item succesfully blocklisted
'412':
description: Item has already been blocklisted
/blocklist/{tmdbId}:
get:
summary: Get media from blocklist
tags:
- blocklist
parameters:
- in: path
name: tmdbId
description: tmdbId ID
required: true
example: '1'
schema:
type: string
responses:
'200':
description: Blocklist details in JSON
delete:
summary: Remove media from blocklist
tags:
- blocklist
parameters:
- in: path
name: tmdbId
description: tmdbId ID
required: true
example: '1'
schema:
type: string
responses:
'204':
description: Succesfully removed media item
/blacklist:
get:
summary: Returns blacklisted items
description: Returns list of all blacklisted media
summary: Returns blocklisted items
description: |
**DEPRECATED**: Use `/blocklist` instead. This endpoint will be deprecated soon.
deprecated: true
tags:
- settings
- blocklist
parameters:
- in: query
name: take
Expand All @@ -4558,11 +4669,11 @@ paths:
name: filter
schema:
type: string
enum: [all, manual, blacklistedTags]
enum: [all, manual, blocklistedTags]
default: manual
responses:
'200':
description: Blacklisted items returned
description: Blocklisted items returned
content:
application/json:
schema:
Expand Down Expand Up @@ -4593,25 +4704,31 @@ paths:
type: number
example: 438631
post:
summary: Add media to blacklist
summary: Add media to blocklist
description: |
**DEPRECATED**: Use `/blocklist` instead. This endpoint will be deprecated soon.
deprecated: true
tags:
- blacklist
- blocklist
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/Blacklist'
$ref: '#/components/schemas/Blocklist'
responses:
'201':
description: Item succesfully blacklisted
description: Item succesfully blocklisted
'412':
description: Item has already been blacklisted
description: Item has already been blocklisted
/blacklist/{tmdbId}:
get:
summary: Get media from blacklist
summary: Get media from blocklist
description: |
**DEPRECATED**: Use `/blocklist/{tmdbId}` instead. This endpoint will be deprecated soon.
deprecated: true
tags:
- blacklist
- blocklist
parameters:
- in: path
name: tmdbId
Expand All @@ -4622,11 +4739,14 @@ paths:
type: string
responses:
'200':
description: Blacklist details in JSON
description: Blocklist details in JSON
delete:
summary: Remove media from blacklist
summary: Remove media from blocklist
description: |
**DEPRECATED**: Use `/blocklist/{tmdbId}` instead. This endpoint will be deprecated soon.
deprecated: true
tags:
- blacklist
- blocklist
parameters:
- in: path
name: tmdbId
Expand Down
2 changes: 1 addition & 1 deletion server/constants/media.ts
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,6 @@ export enum MediaStatus {
PROCESSING,
PARTIALLY_AVAILABLE,
AVAILABLE,
BLACKLISTED,
BLOCKLISTED,
DELETED,
}
Loading
Loading