Repository Analysis

FreeTubeApp/FreeTube

An Open Source YouTube app for privacy

1.8 Likely human-written View on GitHub
1.8
Adjusted Score
1.8
Raw Score
100%
Time Factor
2026-05-29
Last Push
21,081
Stars
Vue
Language
144,393
Lines of Code
428
Files
238
Pattern Hits
2026-05-31
Scan Date

Score History

Severity Breakdown

CRITICAL 0HIGH 0MEDIUM 0LOW 238

Pattern Findings

238 matches across 2 categories. Click a row to expand file-level details.

Hyper-Verbose Identifiers235 hits · 250 pts
SeverityFileLineSnippet
LOWsrc/renderer/App.vue359function handleExternalLinkOpeningPromptAnswer(option) {
LOWsrc/renderer/components/SubscriptionsShorts.vue126function loadVideosFromRemoteFirstPerWindowSometimes() {
LOWsrc/renderer/components/SubscriptionsShorts.vue141function loadVideosFromCacheSometimes() {
LOWsrc/renderer/components/SubscriptionsShorts.vue163function loadVideosFromCacheForAllActiveProfileChannels() {
LOWsrc/renderer/components/SubscriptionsShorts.vue172async function loadVideosForSubscriptionsFromRemote() {
LOWsrc/renderer/components/SubscriptionsShorts.vue283async function getChannelShortsInvidious(channel, failedAttempts = 0) {
LOWsrc/renderer/components/SubscriptionsVideos.vue130function loadVideosFromRemoteFirstPerWindowSometimes() {
LOWsrc/renderer/components/SubscriptionsVideos.vue145function loadVideosFromCacheSometimes() {
LOWsrc/renderer/components/SubscriptionsVideos.vue167function loadVideosFromCacheForAllActiveProfileChannels() {
LOWsrc/renderer/components/SubscriptionsVideos.vue176async function loadVideosForSubscriptionsFromRemote() {
LOWsrc/renderer/components/SubscriptionsVideos.vue250async function getChannelVideosLocalScraper(channel, failedAttempts = 0) {
LOWsrc/renderer/components/SubscriptionsVideos.vue351async function getChannelVideosInvidiousScraper(channel, failedAttempts = 0) {
LOWsrc/renderer/components/SubscriptionsVideos.vue394async function getChannelVideosInvidiousRSS(channel, failedAttempts = 0) {
LOWsrc/renderer/components/PrivacySettings.vue159function updateRememberSearchHistory(value) {
LOWsrc/renderer/components/PrivacySettings.vue169function updateSaveVideoHistoryWithLastViewedPlaylist(value) {
LOWsrc/renderer/components/PrivacySettings.vue186function updateWatchedProgressSavingMode(value) {
LOWsrc/renderer/components/PrivacySettings.vue226function handleRemoveSubscriptions(option) {
LOWsrc/renderer/components/SubscriptionsLive.vue131function loadVideosFromRemoteFirstPerWindowSometimes() {
LOWsrc/renderer/components/SubscriptionsLive.vue146function loadVideosFromCacheSometimes() {
LOWsrc/renderer/components/SubscriptionsLive.vue168function loadVideosFromCacheForAllActiveProfileChannels() {
LOWsrc/renderer/components/SubscriptionsLive.vue177async function loadVideosForSubscriptionsFromRemote() {
LOWsrc/renderer/components/SubscriptionsLive.vue395async function getChannelLiveInvidiousRSS(channel, failedAttempts = 0) {
LOWsrc/renderer/components/ExternalPlayerSettings.vue131function updateExternalPlayerIgnoreWarnings(value) {
LOWsrc/renderer/components/ExternalPlayerSettings.vue138function updateExternalPlayerIgnoreDefaultArgs(value) {
LOWsrc/renderer/components/ExternalPlayerSettings.vue145function updateExternalPlayerExecutable(value) {
LOWsrc/renderer/components/ExternalPlayerSettings.vue152function handleExternalPlayerCustomArgs(args) {
LOWsrc/renderer/components/ExternalPlayerSettings.vue159function handleAddedExternalPayerCustomArgs() {
LOWsrc/renderer/components/ParentalControlSettings.vue72function updateHideUnsubscribeButton(value) {
LOWsrc/renderer/components/ParentalControlSettings.vue86function updateShowFamilyFriendlyOnly(value) {
LOWsrc/renderer/components/SubscriptionsPosts.vue121function loadPostsFromRemoteFirstPerWindowSometimes() {
LOWsrc/renderer/components/SubscriptionsPosts.vue136function loadPostsFromCacheSometimes() {
LOWsrc/renderer/components/SubscriptionsPosts.vue163function loadPostsFromCacheForAllActiveProfileChannels() {
LOWsrc/renderer/components/SubscriptionsPosts.vue176async function loadPostsForSubscriptionsFromRemote() {
LOWsrc/renderer/components/SponsorBlockSettings.vue122function handleUpdateUseDeArrowTitles(value) {
LOWsrc/renderer/components/SponsorBlockSettings.vue129function handleUpdateUseDeArrowThumbnails(value) {
LOWsrc/renderer/components/SponsorBlockSettings.vue136function handleUpdateSponsorBlockShowSkippedToast(value) {
LOWsrc/renderer/components/SponsorBlockSettings.vue143function handleUpdateSponsorBlockUrl(value) {
LOWsrc/renderer/components/SponsorBlockSettings.vue150function handleUpdateDeArrowThumbnailGeneratorUrl(value) {
LOW…enderer/components/GeneralSettings/GeneralSettings.vue221function updateGeneralAutoLoadMorePaginatedItemsEnabled(value) {
LOW…enderer/components/GeneralSettings/GeneralSettings.vue231function updateHideToTrayOnMinimize(value) {
LOW…enderer/components/GeneralSettings/GeneralSettings.vue241function updateEnableSearchSuggestions(value) {
LOW…enderer/components/GeneralSettings/GeneralSettings.vue251function updateOpenDeepLinksInNewWindow(value) {
LOW…enderer/components/GeneralSettings/GeneralSettings.vue375function handleThumbnailPreferenceChange(value) {
LOW…enderer/components/GeneralSettings/GeneralSettings.vue429function updateExternalLinkHandling(value) {
LOW…enderer/components/GeneralSettings/GeneralSettings.vue459function handleInvidiousInstanceInput(input) {
LOW…enderer/components/GeneralSettings/GeneralSettings.vue472function handleSetDefaultInstanceClick() {
LOW…enderer/components/GeneralSettings/GeneralSettings.vue480function handleClearDefaultInstanceClick() {
LOW…/renderer/components/PlayerSettings/PlayerSettings.vue301function updateEnableSubtitlesByDefault(value) {
LOW…/renderer/components/PlayerSettings/PlayerSettings.vue311function updateVideoVolumeMouseScroll(value) {
LOW…/renderer/components/PlayerSettings/PlayerSettings.vue321function updateVideoPlaybackRateMouseScroll(value) {
LOW…/renderer/components/PlayerSettings/PlayerSettings.vue331function updateVideoSkipMouseScroll(value) {
LOW…/renderer/components/PlayerSettings/PlayerSettings.vue374function updateDisplayVideoPlayButton(value) {
LOW…/renderer/components/PlayerSettings/PlayerSettings.vue384function updateEnterFullscreenOnDisplayRotate(value) {
LOW…/renderer/components/PlayerSettings/PlayerSettings.vue515function updateVideoPlaybackRateInterval(value) {
LOW…/renderer/components/PlayerSettings/PlayerSettings.vue537function updateDefaultAutoplayInterruptionIntervalHours(value) {
LOW…/renderer/components/PlayerSettings/PlayerSettings.vue547function updateDefaultSkipInterval(value) {
LOW…/renderer/components/PlayerSettings/PlayerSettings.vue577function updateMaxVideoPlaybackRate(value) {
LOW…/renderer/components/PlayerSettings/PlayerSettings.vue600async function handleUpdateScreenshotFormat(format) {
LOW…/renderer/components/PlayerSettings/PlayerSettings.vue622async function handleUpdateScreenshotMode(mode) {
LOW…/renderer/components/PlayerSettings/PlayerSettings.vue658async function handleScreenshotFilenamePatternChanged(input) {
175 more matches not shown…
Over-Commented Block3 hits · 3 pts
SeverityFileLineSnippet
LOWlefthook.yml21# pre-push:
LOWlefthook.yml41# govet:
LOWsrc/renderer/store/modules/utils.js321 },