Skip to content

Add Parental Control toggle to disable channel link from videos#8502

Open
ozrendev wants to merge 20 commits into
FreeTubeApp:developmentfrom
ozrendev:toggle-disable-channel-link-video
Open

Add Parental Control toggle to disable channel link from videos#8502
ozrendev wants to merge 20 commits into
FreeTubeApp:developmentfrom
ozrendev:toggle-disable-channel-link-video

Conversation

@ozrendev
Copy link
Copy Markdown
Contributor

@ozrendev ozrendev commented Jan 9, 2026

Pull Request Type

  • Bugfix
  • Feature Implementation
  • Documentation
  • Other

Related issue

closes #8375

Description

Adds a toggle under Parental Control that allows the user to disable the channel link from video thumbnails.

Testing

Go to Settings -> Parental Control -> Enabled "Disable Channel Link on Videos"
View any video thumbnail and see that channel link can't be clicked and no longer appears as a link

Additional context

The original issue called for also hiding the "Channels" button in the side bar, but I feel like this should be a separate PR since I think it makes the most sense to be another toggle under "Distraction Free -> Side Bar"
I'm not 100% sure on this, so wanted to add this here for feedback?

@github-actions github-actions Bot added the PR: waiting for review For PRs that are complete, tested, and ready for review label Jan 9, 2026
@FreeTubeBot FreeTubeBot enabled auto-merge (squash) January 9, 2026 10:35
@github-actions
Copy link
Copy Markdown
Contributor

This pull request has conflicts, please resolve those before we can evaluate the pull request.

@github-actions github-actions Bot added PR: merge conflicts / rebase needed and removed PR: waiting for review For PRs that are complete, tested, and ready for review labels Jan 21, 2026
@efb4f5ff-1298-471a-8973-3d47447115dc
Copy link
Copy Markdown
Member

The original issue called for also hiding the "Channels" button in the side bar, but I feel like this should be a separate PR since I think it makes the most sense to be another toggle under "Distraction Free -> Side Bar"
I'm not 100% sure on this, so wanted to add this here for feedback?

indeed best to kept separate and add it to the Side bar

@github-actions
Copy link
Copy Markdown
Contributor

github-actions Bot commented Feb 8, 2026

This PR is stale because it has been open 14 days with no activity. Remove stale label or comment or this will be closed in 14 days.

@github-actions
Copy link
Copy Markdown
Contributor

github-actions Bot commented Feb 9, 2026

Conflicts have been resolved. A maintainer will review the pull request shortly.

Comment thread src/renderer/store/modules/settings.js Outdated
defaultViewingMode: 'default',
defaultVideoFormat: 'dash',
disableSmoothScrolling: false,
disableChannelLink: false,
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think this name is quite ambiguous coz I can clearly see channel links in watch page...
Need something more specific

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

How about something like disableChannelLinkOnVideoThumbnail?

Comment thread static/locales/en-US.yaml Outdated
Hide Uploader on Watch page: Hide Uploader on Watch page
Show Family Friendly Only: Show Family Friendly Only
Hide Search Bar: Hide Search Bar
Disable Channel Link on Videos : Disable Channel Link on Vidoes
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is not copy and paste!? (key > value)
Also got the same issue on where does this apply (basically the same as above)

Suggested change
Disable Channel Link on Videos : Disable Channel Link on Vidoes
Disable Channel Link on Videos : Disable Channel Link on Videos

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Oops, my bad! Same as above too, Disable Channel Link on Video Thumbnails?

@efb4f5ff-1298-471a-8973-3d47447115dc
Copy link
Copy Markdown
Member

So im not really sure if this even needs to be implemented. Isnt it possible to limit this kind of access with our existing settings?

Just and FYI for the team below is the usecase listed in the issue

I want to limit my child's access to the back catalogue of the channels I am subscribed to. You can limit the number of videos in the subscription list but clicking on the channel name or going to the channels tab allows you unrestricted access to all of the videos

@ozrendev
Copy link
Copy Markdown
Contributor Author

So im not really sure if this even needs to be implemented. Isnt it possible to limit this kind of access with our existing settings?

Just and FYI for the team below is the usecase listed in the issue

I want to limit my child's access to the back catalogue of the channels I am subscribed to. You can limit the number of videos in the subscription list but clicking on the channel name or going to the channels tab allows you unrestricted access to all of the videos

How would you limit it with existing settings? I had a look but couldn't find a way to do it so I'm curious to test it out.

I think overall the toggle can be useful, ie for kids controls, extra control for stopping binge watching a whole channel's content? But having an option to also hide the channel in the sidebar would be necessary I think, am happy to open another PR for that.

@PikachuEXE
Copy link
Copy Markdown
Member

I think Hide Uploader on Watch page is the closes we have for toggling that
But it hides not just disable the link on watch page (and also it said watch page only...)
But I can't think of a better option to group these 2 together (or even should they be grouped

Is there another option this "link hiding" can fall under? Or do we need the new option to be used for more behaviour (which might be implemented yet? Discuss~

@ozrendev
Copy link
Copy Markdown
Contributor Author

I think Hide Uploader on Watch page is the closes we have for toggling that But it hides not just disable the link on watch page (and also it said watch page only...) But I can't think of a better option to group these 2 together (or even should they be grouped

Is there another option this "link hiding" can fall under? Or do we need the new option to be used for more behaviour (which might be implemented yet? Discuss~

Can you please clarify which page you are describing when you say Watch Page? This PR should be active when you search and see a list of videos, or when viewing a video and seeing the "recommended" videos in the side bar. I am happy with whichever wording, either Hide or Disable is fine - I would say "disable" because you can still see the channel name but not click the link, but either is fine in my opinion.

I think the option for toggling hide/show link here should stay in Parental Controls, since it's a restrictive option that limits function, like most other toggles in that category. The option for hiding the "Channel" button in the Side Bar would make more sense to me to be grouped with Distraction Free -> Side Bar (with the rest of the side bar button toggles)

@PikachuEXE
Copy link
Copy Markdown
Member

Hide Uploader on Watch page is an existing option, not a suggestion for naming this new option, just to be clear

Watch Page should mean watch video page (coz what else can be watched)

If this new option applies to all "video boxes" then I dunno what to name it yet.
Disable Channel Link on Videos sounds fine but I am not sure if the link in the watch page should be disabled too or not (are there other places with channel links tied to video(s)? dunno)

@ozrendev
Copy link
Copy Markdown
Contributor Author

ozrendev commented Feb 16, 2026

Ah okay, thanks for making it clear!

Yeah I see what you mean. The component name is ft-list-video, but I'd call those thumbnails so maybe something like Disable Channel Link on Video Thumbnails or Disable Link on Thumbnails to keep it short?

@PikachuEXE
Copy link
Copy Markdown
Member

Actually I think this option can (not sure should) be used to disable channel link in watch page

(bottom left
image

From #8375

I want to limit my child's access to the back catalogue of the channels I am subscribed to. You can limit the number of videos in the subscription list but clicking on the channel name or going to the channels tab allows you unrestricted access to all of the videos

I know we can hide channel name on watch page, but maybe disabling the link and still showing the channel link with this option is good too?

I know we have #7514 but disable might be a better implementation

Comment thread src/renderer/store/modules/settings.js Outdated
@ozrendev
Copy link
Copy Markdown
Contributor Author

I know we can hide channel name on watch page, but maybe disabling the link and still showing the channel link with this option is good too?

I know we have #7514 but disable might be a better implementation

Yeah, I feel like since there is already an option under Parental Controls, the user could just toggle both in order to achieve this. I like the granular approach to locking down little bits at a time, so you can very finely tune the level of control.

But disabling the channel link also makes sense, especially for this option and it's more clear that ALL channel links will be disabled by the toggle. My preference would go to the first option using both toggles, but I think both are good approaches.

What do some of the other reviewers think about these approaches?

auto-merge was automatically disabled March 11, 2026 11:42

Head branch was pushed to by a user without write access

Co-authored-by: PikachuEXE <git@pikachuexe.net>
@FreeTubeBot FreeTubeBot enabled auto-merge (squash) March 11, 2026 11:42
@efb4f5ff-1298-471a-8973-3d47447115dc
Copy link
Copy Markdown
Member

Sorry for the late response. Reading everything back and maybe we should combine this feature with the hide watch page one? Meaning that the watch page one will be visible but can't be clicked and no longer appears as link?

@PikachuEXE
Copy link
Copy Markdown
Member

Agreed and the old setting should be migrated (if too difficult I can do the setting migration in a separate PR
Though in this PR the channel link on watch page should be disabled
Also the translation typo not fixed yet~

auto-merge was automatically disabled March 12, 2026 11:39

Head branch was pushed to by a user without write access

@FreeTubeBot FreeTubeBot enabled auto-merge (squash) March 29, 2026 08:32
@ozrendev
Copy link
Copy Markdown
Contributor Author

As I was making the above changes, the manually copying/pasting depending on enableChannelLinks seemed a bit tedious and prone to error/future edits. I went looking for a solution and found this workaround for <router-view>

I just made commit c46623f so that it's easier to show the difference in context. What does everyone think? Keep it or revert back to previous method?

auto-merge was automatically disabled March 29, 2026 08:35

Head branch was pushed to by a user without write access

@FreeTubeBot FreeTubeBot enabled auto-merge (squash) March 29, 2026 08:35
PikachuEXE
PikachuEXE previously approved these changes Mar 30, 2026
Copy link
Copy Markdown
Member

@PikachuEXE PikachuEXE left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It works but I have no idea if others are fine with this style of conditional component

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM, but i would like @absidue to check it out first

@efb4f5ff-1298-471a-8973-3d47447115dc efb4f5ff-1298-471a-8973-3d47447115dc added PR: waiting for review For PRs that are complete, tested, and ready for review and removed PR: changes requested labels Mar 30, 2026
Comment thread static/locales/en-US.yaml Outdated
Comment on lines +677 to +683
Download Settings:
Download Settings: Download
Ask Download Path: Ask for download path
Choose Path: Choose Path
Download Behavior: Download Behavior
Download in app: Download in app
Open in web browser: Open in web browser
Copy link
Copy Markdown
Member

@absidue absidue Apr 11, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Even if this came from a merge, the fact that it is still here means the merge wasn't clean and as those download strings no longer exist on the development branch, merging this pull request as is would add those strings back.

{{ channelName }}
</RouterLink>
<div
v-if="!enableChannelLinks"
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
v-if="!enableChannelLinks"
v-else

Comment on lines +132 to +133
<img
class="channelThumbnail"
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The channel thumbnail wasn't here before, because when YouTube doesn't return a channel link here it also doesn't return a thumbnail, so you need to wrap the channel thumbnail in a if statement.

Suggested change
<img
class="channelThumbnail"
<img
v-if="channelThumbnail"
class="channelThumbnail"

</h3>
</router-link>
<div
v-if="!enableChannelLinks"
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
v-if="!enableChannelLinks"
v-else

>
</router-link>
<div
v-if="!enableChannelLinks"
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
v-if="!enableChannelLinks"
v-else

Comment on lines +58 to +71
<router-link
v-if="handle !== null"
v-if="handle !== null && enableChannelLinks"
class="handle"
dir="auto"
:to="`/channel/${id}`"
>
{{ handle }}
</router-link>
<bdi
v-if="handle !== null && !enableChannelLinks"
class="handle"
>
{{ handle }}
</bdi>
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It would probably be better to wrap both of these tags in a <template> tag with a v-if that checks the handle variable, then inside of it just use a v-if and v-else for the enableChannelTags variable.

@absidue absidue added PR: changes requested and removed PR: waiting for review For PRs that are complete, tested, and ready for review labels Apr 11, 2026
auto-merge was automatically disabled April 22, 2026 00:08

Head branch was pushed to by a user without write access

@FreeTubeBot FreeTubeBot enabled auto-merge (squash) April 22, 2026 00:08
@efb4f5ff-1298-471a-8973-3d47447115dc
Copy link
Copy Markdown
Member

@ozrendev anything else left todo?

@ozrendev
Copy link
Copy Markdown
Contributor Author

@ozrendev anything else left todo?

Yeah, that should be it. I tested it all again and don't think I missed anything

@efb4f5ff-1298-471a-8973-3d47447115dc
Copy link
Copy Markdown
Member

Somehow the playlist controls moved

VirtualBoxVM_QtPDhXPDeU

auto-merge was automatically disabled April 24, 2026 10:10

Head branch was pushed to by a user without write access

@FreeTubeBot FreeTubeBot enabled auto-merge (squash) April 24, 2026 10:10
@ozrendev
Copy link
Copy Markdown
Contributor Author

That should be fixed now! Thanks for always testing it so thoroughly, didn't expect that one

@efb4f5ff-1298-471a-8973-3d47447115dc
Copy link
Copy Markdown
Member

only thing i can find is this. It makes me think i can click on this but i clearly cant

VirtualBoxVM_SU0hd6DU6h.mp4

@github-actions
Copy link
Copy Markdown
Contributor

This PR is stale because it has been open 14 days with no activity. Remove stale label or comment or this will be closed in 14 days.

@PikachuEXE
Copy link
Copy Markdown
Member

Can you fix? should be just style @ozrendev

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[Feature Request]: Remove/limit access to channels.

4 participants