Repository Analysis

jellyfin/jellyfin

The Free Software Media System - Server Backend & API

3.9 Likely human-written View on GitHub
3.9
Adjusted Score
3.9
Raw Score
100%
Time Factor
2026-05-29
Last Push
52,695
Stars
C#
Language
362,860
Lines of Code
2367
Files
1397
Pattern Hits
2026-05-31
Scan Date

Score History

Severity Breakdown

CRITICAL 1HIGH 0MEDIUM 12LOW 1384

Pattern Findings

1397 matches across 7 categories. Click a row to expand file-level details.

Over-Commented Block1366 hits · 1348 pts
SeverityFileLineSnippet
LOWMediaBrowser.Providers/MediaInfo/MediaInfoResolver.cs41 /// <summary>
LOWMediaBrowser.Providers/MediaInfo/AudioFileProber.cs41 private readonly IMediaStreamRepository _mediaStreamRepository;
LOWMediaBrowser.Providers/Music/AlbumMetadataService.cs21/// <summary>
LOWMediaBrowser.Providers/Plugins/MusicBrainz/Plugin.cs61 public override string Name => "MusicBrainz";
LOWMediaBrowser.Providers/Plugins/Omdb/OmdbProvider.cs121 /// <summary>Gets data about an episode.</summary>
LOW…diaBrowser.Providers/Plugins/Tmdb/TmdbClientManager.cs581 return GetUrl(Plugin.Instance.Configuration.PosterSize, posterPath);
LOW…diaBrowser.Providers/Plugins/Tmdb/TmdbClientManager.cs601 => ConvertToRemoteImageInfo(images, Plugin.Instance.Configuration.PosterSize, ImageType.Primary, requestLang
LOW…diaBrowser.Providers/Plugins/Tmdb/TmdbClientManager.cs621 /// <summary>
LOW…ders/Plugins/Tmdb/Configuration/PluginConfiguration.cs21 /// <summary>
LOW…ders/Plugins/Tmdb/Configuration/PluginConfiguration.cs41 /// <summary>
LOW…ders/Plugins/Tmdb/Configuration/PluginConfiguration.cs61 /// <summary>
LOW…gins/ListenBrainz/Configuration/SimilarityAlgorithm.cs1namespace MediaBrowser.Providers.Plugins.ListenBrainz.Configuration;
LOWMediaBrowser.Providers/TV/SeriesMetadataService.cs21
LOWMediaBrowser.Providers/Manager/MetadataService.cs601 return updateType;
LOWMediaBrowser.Providers/Manager/ItemImageProvider.cs261
LOWMediaBrowser.Providers/Manager/ImageSaver.cs341 if (!saveLocally || (_config.Configuration.ImageSavingConvention == ImageSavingConvention.Legacy))
LOWMediaBrowser.Providers/Manager/ImageSaver.cs361 private ItemImageInfo GetCurrentImage(BaseItem item, ImageType type, int imageIndex)
LOWMediaBrowser.Providers/Manager/ImageSaver.cs381
LOW…n.Server.Implementations/Trickplay/TrickplayManager.cs41 private readonly IPathManager _pathManager;
LOWJellyfin.Server.Implementations/Item/BaseItemMapper.cs21using BaseItemDto = MediaBrowser.Controller.Entities.BaseItem;
LOW…er.Implementations/Item/BaseItemRepository.Querying.cs181 .ToArray()!;
LOW…yfin.Server.Implementations/Item/BaseItemRepository.cs81 return BaseItemMapper.Map(entity, dto, appHost);
LOWEmby.Naming/Video/ExtraResult.cs1using MediaBrowser.Model.Entities;
LOWEmby.Naming/Video/CleanDateTimeResult.cs21 /// <summary>
LOWEmby.Naming/Video/ExtraRuleType.cs1namespace Emby.Naming.Video
LOWEmby.Naming/Video/VideoFileInfo.cs1using System;
LOWEmby.Naming/Video/VideoFileInfo.cs41 /// Gets or sets the path.
LOWEmby.Naming/Video/VideoFileInfo.cs61 /// <value>The year.</value>
LOWEmby.Naming/Video/VideoFileInfo.cs81
LOWEmby.Naming/Video/VideoInfo.cs21 AlternateVersions = [];
LOWEmby.Naming/AudioBook/AudioBookInfo.cs1using System.Collections.Generic;
LOWEmby.Naming/AudioBook/AudioBookInfo.cs41 /// <value>The files.</value>
LOWEmby.Naming/AudioBook/AudioBookFileInfo.cs21 PartNumber = partNumber;
LOWEmby.Naming/TV/EpisodeInfo.cs1namespace Emby.Naming.TV
LOWEmby.Naming/TV/EpisodeInfo.cs21 public string Path { get; set; }
LOWEmby.Naming/TV/EpisodeInfo.cs41 /// <summary>
LOWEmby.Naming/TV/EpisodeInfo.cs61 /// </summary>
LOWEmby.Naming/TV/SeasonPathParserResult.cs1namespace Emby.Naming.TV
LOWEmby.Naming/TV/EpisodePathParserResult.cs1namespace Emby.Naming.TV
LOWEmby.Naming/TV/EpisodePathParserResult.cs21 public int? EndingEpisodeNumber { get; set; }
LOWEmby.Naming/TV/SeriesInfo.cs1namespace Emby.Naming.TV
LOWEmby.Naming/ExternalFiles/ExternalPathParserResult.cs21 }
LOWEmby.Naming/ExternalFiles/ExternalPathParserResult.cs41 /// <summary>
LOWEmby.Naming/ExternalFiles/ExternalPathParser.cs21 /// Initializes a new instance of the <see cref="ExternalPathParser"/> class.
LOWEmby.Naming/Common/EpisodeExpression.cs41 /// Gets or sets a value indicating whether gets or sets property indicating if date can be find in expression.
LOWEmby.Naming/Common/MediaType.cs1namespace Emby.Naming.Common
LOWEmby.Naming/Common/NamingOptions.cs781 }
LOWEmby.Naming/Common/NamingOptions.cs801 public string[] MediaForcedFlags { get; set; }
LOWEmby.Naming/Common/NamingOptions.cs821 public string[] ArtistSubfolders { get; set; }
LOWEmby.Naming/Common/NamingOptions.cs841 public string[] VideoFileExtensions { get; set; }
LOWEmby.Naming/Common/NamingOptions.cs861 public StubTypeRule[] StubTypes { get; set; }
LOWEmby.Naming/Common/NamingOptions.cs881 public string[] CleanDateTimes { get; set; }
LOWEmby.Naming/Book/BookFileNameParserResult.cs21 /// <summary>
LOWMediaBrowser.Model/Dto/DisplayPreferencesDto.cs21 }
LOWMediaBrowser.Model/Dto/DisplayPreferencesDto.cs41 /// <summary>
LOWMediaBrowser.Model/Dto/DisplayPreferencesDto.cs61 /// </summary>
LOWMediaBrowser.Model/Dto/DisplayPreferencesDto.cs81 public bool ShowBackdrop { get; set; }
LOWMediaBrowser.Model/Dto/ImageInfo.cs1#nullable disable
LOWMediaBrowser.Model/Dto/ImageInfo.cs21 public int? ImageIndex { get; set; }
LOWMediaBrowser.Model/Dto/ImageInfo.cs41 /// Gets or sets the height.
1306 more matches not shown…
AI Slop Vocabulary11 hits · 33 pts
SeverityFileLineSnippet
MEDIUMJellyfin.Api/Controllers/AudioController.cs42 /// <param name="deviceProfileId">Optional. The dlna device profile id to utilize.</param>
MEDIUMJellyfin.Api/Controllers/AudioController.cs206 /// <param name="deviceProfileId">Optional. The dlna device profile id to utilize.</param>
MEDIUMJellyfin.Api/Controllers/DynamicHlsController.cs115 /// <param name="deviceProfileId">Optional. The dlna device profile id to utilize.</param>
MEDIUMJellyfin.Api/Controllers/DynamicHlsController.cs354 /// <param name="deviceProfileId">Optional. The dlna device profile id to utilize.</param>
MEDIUMJellyfin.Api/Controllers/DynamicHlsController.cs530 /// <param name="deviceProfileId">Optional. The dlna device profile id to utilize.</param>
MEDIUMJellyfin.Api/Controllers/DynamicHlsController.cs697 /// <param name="deviceProfileId">Optional. The dlna device profile id to utilize.</param>
MEDIUMJellyfin.Api/Controllers/DynamicHlsController.cs868 /// <param name="deviceProfileId">Optional. The dlna device profile id to utilize.</param>
MEDIUMJellyfin.Api/Controllers/DynamicHlsController.cs1038 /// <param name="deviceProfileId">Optional. The dlna device profile id to utilize.</param>
MEDIUMJellyfin.Api/Controllers/DynamicHlsController.cs1222 /// <param name="deviceProfileId">Optional. The dlna device profile id to utilize.</param>
MEDIUMJellyfin.Api/Controllers/VideosController.cs266 /// <param name="deviceProfileId">Optional. The dlna device profile id to utilize.</param>
MEDIUMJellyfin.Api/Controllers/VideosController.cs504 /// <param name="deviceProfileId">Optional. The dlna device profile id to utilize.</param>
Verbosity Indicators10 hits · 18 pts
SeverityFileLineSnippet
LOW…er.Implementations/Item/BaseItemRepository.Querying.cs213 // Step 1: Find the top N series with recently added content, ordered by most recent addition
LOW…er.Implementations/Item/BaseItemRepository.Querying.cs265 // Step 3: Analyze each series to identify recent additions within the time window
LOW…er.Implementations/Item/BaseItemRepository.Querying.cs306 // Step 4: Batch fetch counts - episodes per season and seasons per series
LOW…er.Implementations/Item/BaseItemRepository.Querying.cs328 // Step 5: Apply the container selection logic for each series.
LOW…er.Implementations/Item/BaseItemRepository.Querying.cs384 // Step 6: Fetch the Season/Series entities we decided to return
LOW…er.Implementations/Item/BaseItemRepository.Querying.cs393 // Step 7: Build final results, preferring Season > Series > Episode.
LOW…nes/20260115120000_FixIncorrectOwnerIdRelationships.cs55 // Step 1: Find and remove duplicate database entries (same Path, different IDs)
LOW…nes/20260115120000_FixIncorrectOwnerIdRelationships.cs58 // Step 2: Clear incorrect OwnerId for video/movie items that are children of other video/movie items
LOW…nes/20260115120000_FixIncorrectOwnerIdRelationships.cs61 // Step 3: Reassign orphaned extras to correct parents
LOW…nes/20260115120000_FixIncorrectOwnerIdRelationships.cs64 // Step 4: Populate PrimaryVersionId for alternate version children
Hallucination Indicators1 hit · 10 pts
SeverityFileLineSnippet
CRITICALJellyfin.Api/Helpers/FileStreamResponseHelpers.cs51 requestMessage.Headers.Range = System.Net.Http.Headers.RangeHeaderValue.Parse(rangeString);
Fake / Example Data6 hits · 9 pts
SeverityFileLineSnippet
LOWtests/Jellyfin.LiveTv.Tests/RecordingHelperTests.cs89 "Lorem ipsum dolor sit amet: consect 2018_12_06_21_06_00",
LOWtests/Jellyfin.LiveTv.Tests/RecordingHelperTests.cs89 "Lorem ipsum dolor sit amet: consect 2018_12_06_21_06_00",
LOWtests/Jellyfin.LiveTv.Tests/RecordingHelperTests.cs92 Name = "Lorem ipsum dolor sit amet: consect",
LOWtests/Jellyfin.LiveTv.Tests/RecordingHelperTests.cs92 Name = "Lorem ipsum dolor sit amet: consect",
LOWtests/Jellyfin.LiveTv.Tests/RecordingHelperTests.cs96 EpisodeTitle = "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incidi
LOWtests/Jellyfin.LiveTv.Tests/RecordingHelperTests.cs96 EpisodeTitle = "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incidi
Hyper-Verbose Identifiers2 hits · 2 pts
SeverityFileLineSnippet
LOW….Server.Implementations/Library/ExternalDataManager.cs18public class ExternalDataManager : IExternalDataManager
LOWEmby.Server.Implementations/Library/UserDataManager.cs26 public class UserDataManager : IUserDataManager
Self-Referential Comments1 hit · 2 pts
SeverityFileLineSnippet
MEDIUM…Server.Implementations/AppBase/BaseApplicationPaths.cs118 + "# This file is a cache directory tag created by Jellyfin.\n"