Parental Controls
Parental controls let you create restricted profiles for children with age-based content filtering, per-title overrides, PIN protection, and screen time tracking.
Managed profiles
Section titled “Managed profiles”A user account can have multiple managed profiles — one for each child. Each profile has its own content restrictions that are enforced across the entire app.
Creating a profile
Section titled “Creating a profile”- Go to Settings > Parental Controls
- Click Create Profile
- Set the profile name and configure restrictions:
- Age limit — Maximum content age rating allowed
- Block unrated content — Whether to hide content without a rating
- Preferred rating country — Which country’s rating system to use (US, UK, etc.)
- Kids UI — Simplified navigation for younger children
- Save the profile
How content filtering works
Section titled “How content filtering works”Filtering is enforced at the database query level — restricted content never reaches the API response. This means:
- Search results only show allowed content
- Browse views are pre-filtered
- Collections respect the active profile’s restrictions
- Continue watching only shows allowed items
- No client-side bypass is possible
Rating systems
Section titled “Rating systems”Dubby supports multiple country-specific rating systems. Each maps ratings to a minimum age:
US (MPAA): G → 0, PG → 8, PG-13 → 13, R → 17, NC-17 → 18
US TV: TV-Y → 0, TV-Y7 → 7, TV-G → 0, TV-PG → 8, TV-14 → 14, TV-MA → 17
UK (BBFC): U → 0, PG → 8, 12A → 12, 15 → 15, 18 → 18
Set a preferred country on each profile to use that country’s ratings. If a title has ratings from multiple countries, the preferred country is checked first with fallback to the strictest rating.
Per-title overrides
Section titled “Per-title overrides”For fine-grained control beyond age ratings:
- Go to Settings > Parental Controls > Title Restrictions
- Search for a specific movie or show
- Choose Allow (override age restriction) or Block (block regardless of rating)
Per-title overrides take precedence over age-based filtering. This is useful for:
- Allowing a specific PG-13 movie for a profile with an age-10 limit
- Blocking a specific show that’s technically within the age limit
PIN protection
Section titled “PIN protection”Set a PIN to prevent children from switching back to the parent account:
- Go to Settings > Parental Controls > PIN Setup
- Set a 4-6 digit PIN
When switching from a managed profile back to the parent account, the PIN entry modal appears. The profile switch only completes after correct PIN entry.
Profile switching
Section titled “Profile switching”A profile switcher appears in the navigation bar showing the current profile with an avatar and name.
To switch profiles:
- Click your profile avatar in the navigation
- Select a managed profile from the dropdown — switches immediately
- To switch back to the parent account — click the parent entry and enter your PIN
The active profile is tracked on the current session, so all API calls respect the active profile’s content restrictions.
Profile templates
Section titled “Profile templates”Create reusable restriction templates to quickly configure new profiles:
- Set age limits, screen time limits, and blocked genres
- Apply a template when creating a managed profile
- Templates can be edited and reused across profiles
Screen time
Section titled “Screen time”Track and limit how much time each profile spends watching content:
Viewing screen time
Section titled “Viewing screen time”Go to Settings > Parental Controls > Screen Time to see:
- Total minutes watched for the selected period (today, this week, this month)
- Daily average minutes
- Daily breakdown table showing usage per day
Select a specific profile from the dropdown to view its individual screen time data.
Activity log
Section titled “Activity log”The activity log shows what each managed profile has been doing:
- Playback events — What was watched and when
- Blocked attempts — Content that was blocked by restrictions
- Time limit events — When screen time limits were reached
View the log from Settings > Parental Controls > Activity Log with a profile selector and pagination.
# Set up a PINcurl -X POST -H "Authorization: Bearer $TOKEN" \ -H "Content-Type: application/json" \ -d '{"pin": "1234"}' \ http://localhost:3000/v1/parental-controls/pin
# Create a managed profilecurl -X POST -H "Authorization: Bearer $TOKEN" \ -H "Content-Type: application/json" \ -d '{"name": "Kids", "maxContentAge": 10, "blockUnrated": true, "preferredCountry": "US"}' \ http://localhost:3000/v1/parental-controls/profiles
# Switch to a profilecurl -X POST -H "Authorization: Bearer $TOKEN" \ -H "Content-Type: application/json" \ -d '{"profileId": "profile-id"}' \ http://localhost:3000/v1/parental-controls/switch-profile
# List profilescurl -H "Authorization: Bearer $TOKEN" \ http://localhost:3000/v1/parental-controls/profiles