Posted
almost 4 years
ago
by
Manuel Laggner
tinyMediaManager offers an (experimental) official docker image based on Debian Buster (for maximum compatibility). This image includes all needed components (up to date libmediainfo, FFmpeg, …) for the best experience. This image should work on any
... [More]
x86_64 device. Using this image, you will get a fully working instance of tinyMediaManager which is accessible remotely (via web/VNC). Instructions Map any local port to 4000 for web access (via noVNC) Map a local volume/folder to /data where all local data from tinyMediaManager is stores (like data, logs, cache and backups) Map local volumes/folders/mounts to /media/xxx where all media will be accessed. E.g.: /mnt/movies -> /media/movies /mnt/tvshows -> /media/tvshows Sample run command: docker run \ --name=tinymediamanager \ -p 4000:4000 \ -v :/data \ -v :/media/movies \ -v :/media/tvshows \ tinymediamanager/tinymediamanager:latest After starting the container, you can access tinyMediaManager via http://your-host-ip:4000. Data volumes You should map the following folders to a volume/folder on the host: /data: where all local data of tinyMediaManager will be stores. If you do not map this out of the container, all your data/settings will be lost on an upgrade of tinyMediaManager /media: contains all your data sources You need read/write access to all mapped volumes! Configuration This image offers some special configuration parameters which can be passed to docker by using environment variables Variable Description Default USER_ID ID of the user tinyMediaManager runs as. See below for an example how to use this. 1000 GROUP_ID ID of the group tinyMediaManager runs as. See below for an example how to use this. 1000 PASSWORD Password for remote access Permissions When using using data volumes (-v flags for /data and media), permissions issues can occur between the host and the container (tinyMediaManager). For example, the user within the container may not exist on the host or does not match the right user on the host. This could prevent the container from properly accessing files and folders on the shared volume and vice versa. To avoid any problem, you can specify the user tinyMediaManager should run as. This is done by passing the user ID and group ID to the container via the USER_ID and GROUP_ID environment variables. To find the right IDs to use, issue the following command on the host, with the user owning the data volume on the host: id Which gives an output like this one: uid=1000(myuser) gid=1000(myuser) groups=1000(myuser),4(adm),24(cdrom),27(sudo),46(plugdev),113(lpadmin) The value of uid (user ID) and gid (group ID) are the ones that you should be given the container. Clipboard Because of security restrictions in the browser, your client clipboard cannot be synchronized to the clipboard of tinyMediaManager. To copy data from/to the remote connection of tinyMediaManager, you need to invoke the clipboard feature from noVNC. Just open the control panel of noVNC from the left side of the window and use the clipboard feature from there to copy the data. [Less]
|
Posted
almost 4 years
ago
by
Manuel Laggner
+ updated libmediainfo to 21.03 #1309 x enhanced cleaning of filenames on import #950 x some fixes for detecting/handling pt-BR subtitles
|
Posted
almost 4 years
ago
by
Manuel Laggner
tinyMediaManager’s next release (4.2) will introduce an interface for third party scrapers. Using this interface any developer can create a scraper and publish it. The user just needs to download the generated .jar file and put it into the subfolder
... [More]
addons of the tinyMediaManager installation. After the next restart, tinyMediaManager will be able to use this scraper the same way as internal scrapers. To create a custom scraper you can use (fork or clone) the template repository https://gitlab.com/tinyMediaManager/scraperaddonsample which already offers the right structure for a custom scraper. This repository has one special class and some other examples. Scraper loader SampleAddonProvider.java - this class is the main connector between the custom scraper and tinyMediaManager itself. The Method getAddonClasses will offer tinyMediaManager a list of classes which offer scraper functions. The scraper classes itself need to implement the corresponding interfaces to tell tinyMediaManager which scraper functionalities are provided. To enable the Java Service Provider (SPI) you also need to create a file called META-INF/services/org.tinymediamanager.scraper.spi.IAddonProvider containing the path to the loader class. In our example this file just needs one entry: org.tinymediamanager.scraper.spisample.SampleAddonProvider. Interfaces to be implemented The third party scraper just needs to implement the interfaces where data can be provided. E.g. if the scraper just provides meta data for TV shows only the interface ITvShowMetadataProvider needs to be implemented. Available interfaces: IMovieMetadataProvider - the class offers scraping of meta data for movies (example: SampleMovieMetadataProvider.java) IMovieArtworkProvider - the class offers scraping of artwork for movies (example: SampleMovieArtworkProvider.java) IMovieTrailerProvider - the class offers scraping of trailers for movies (example: SampleMovieTrailerProvider.java) IMovieSubtitleProvider - the class offers scraping of subtitles for movies (example: SampleMovieSubtitleProvider.java) ITvShowMetadataProvider - the class offers scraping of meta data for TV shows (example: SampleTvShowMetadataProvider.java) ITvShowArtworkProvider - the class offers scraping of artwork for TV shows (example: SampleTvShowArtworkProvider.java) ITvShowTrailerProvider - the class offers scraping of trailers for TV shows (example: SampleTvShowTrailerProvider.java) ITvShowSubtitleProvider - the class offers scraping of subtitles for TV shows (example: SampleTvShowSubtitleProvider.java) MediaProviderInfo If you create an own scraper, you need some meta data for the scraper in addition to the pure code. This meta data is displayed in tinyMediaManager itself (scraper selection, settings, …) and consist of: Scraper Id (do not re-use this id across different scrapers!) Scraper Sub-Id (especially interesting if you want to differentiate settings in the areas of the scraper. E.g. the movie meta data area needs other settings than the movie artwork area) Scraper Name Description (will be displayed in the settings) Logo (will be described in the settings and scraper drop downs) Configuration parameters (for fine tuning your scraper - e.g. custom API key, language selection, …) The meta data will be included in the MediaProviderInfo of the scraper: @Override protected MediaProviderInfo createMediaProviderInfo() { MediaProviderInfo providerInfo = new MediaProviderInfo("spi-sample", "movie", "SPI Sample", "A sample for a dynamic movie metadata scraper", SampleMovieMetadataProvider.class.getResource("/org/tinymediamanager/scraper/spisample/tmm_logo.svg")); // create configuration properties providerInfo.getConfig().addText("text", "", false); providerInfo.getConfig().addBoolean("boolean", true); providerInfo.getConfig().addInteger("integer", 10); providerInfo.getConfig().addSelect("select", new String[]{"A", "B", "C"}, "A"); // load any existing values from the storage providerInfo.getConfig().load(); return providerInfo; } Available libs/tools A creator of a third party library can use all libraries which tinyMediaManager uses itself. For a detailed list of used libraries please refer to the pom.xml of the tinyMediaManager project. When there are extra libraries needed, you need to package them into the jar file using the maven shade plugin. [Less]
|
Posted
almost 4 years
ago
by
Manuel Laggner
tinyMediaManager’s next release (v4.2) will introduce an interface for third party scrapers. Using this interface any developer can create a scraper and publish it. The user just needs to download the generated .jar file and put it into the subfolder
... [More]
addons of the tinyMediaManager installation. After the next restart, tinyMediaManager will be able to use this scraper the same way as internal scrapers. To create a custom scraper you can use (fork or clone) the template repository https://gitlab.com/tinyMediaManager/scraperaddonsample which already offers the right structure for a custom scraper. This repository has one special class and some other examples. Scraper loader SampleAddonProvider.java - this class is the main connector between the custom scraper and tinyMediaManager itself. The Method getAddonClasses will offer tinyMediaManager a list of classes which offer scraper functions. The scraper classes itself need to implement the corresponding interfaces to tell tinyMediaManager which scraper functionalities are provided. To enable the Java Service Provider (SPI) you also need to create a file called META-INF/services/org.tinymediamanager.scraper.spi.IAddonProvider containing the path to the loader class. In our example this file just needs one entry: org.tinymediamanager.scraper.spisample.SampleAddonProvider. Interfaces to be implemented The third party scraper just needs to implement the interfaces where data can be provided. E.g. if the scraper just provides meta data for TV shows only the interface ITvShowMetadataProvider needs to be implemented. Available interfaces: IMovieMetadataProvider - the class offers scraping of meta data for movies (example: SampleMovieMetadataProvider.java) IMovieArtworkProvider - the class offers scraping of artwork for movies (example: SampleMovieArtworkProvider.java) IMovieTrailerProvider - the class offers scraping of trailers for movies (example: SampleMovieTrailerProvider.java) IMovieSubtitleProvider - the class offers scraping of subtitles for movies (example: SampleMovieSubtitleProvider.java) ITvShowMetadataProvider - the class offers scraping of meta data for TV shows (example: SampleTvShowMetadataProvider.java) ITvShowArtworkProvider - the class offers scraping of artwork for TV shows (example: SampleTvShowArtworkProvider.java) ITvShowTrailerProvider - the class offers scraping of trailers for TV shows (example: SampleTvShowTrailerProvider.java) ITvShowSubtitleProvider - the class offers scraping of subtitles for TV shows (example: SampleTvShowSubtitleProvider.java) MediaProviderInfo If you create an own scraper, you need some meta data for the scraper in addition to the pure code. This meta data is displayed in tinyMediaManager itself (scraper selection, settings, …) and consist of: Scraper Id (do not re-use this id across different scrapers!) Scraper Sub-Id (especially interesting if you want to differentiate settings in the areas of the scraper. E.g. the movie meta data area needs other settings than the movie artwork area) Scraper Name Description (will be displayed in the settings) Logo (will be described in the settings and scraper drop downs) Configuration parameters (for fine tuning your scraper - e.g. custom API key, language selection, …) The meta data will be included in the MediaProviderInfo of the scraper: @Override protected MediaProviderInfo createMediaProviderInfo() { MediaProviderInfo providerInfo = new MediaProviderInfo("spi-sample", "movie", "SPI Sample", "A sample for a dynamic movie metadata scraper", SampleMovieMetadataProvider.class.getResource("/org/tinymediamanager/scraper/spisample/tmm_logo.svg")); // create configuration properties providerInfo.getConfig().addText("text", "", false); providerInfo.getConfig().addBoolean("boolean", true); providerInfo.getConfig().addInteger("integer", 10); providerInfo.getConfig().addSelect("select", new String[]{"A", "B", "C"}, "A"); // load any existing values from the storage providerInfo.getConfig().load(); return providerInfo; } Available libs/tools A creator of a third party library can use all libraries which tinyMediaManager uses itself. For a detailed list of used libraries please refer to the pom.xml of the tinyMediaManager project. When there are extra libraries needed, you need to package them into the jar file using the maven shade plugin. [Less]
|
Posted
almost 4 years
ago
by
Manuel Laggner
Haenlein Software has made a video on YouTube which shows how to integrate the results of tinyMediaManager in DVR-Provider 3:
|
Posted
almost 4 years
ago
by
Manuel Laggner
+ (movies/TV shows) “add a new data source” has been added to the “update data sources” menu + (movies/TV shows) view NFO files and play music theme files in the mediafiles tab + (TV shows) added IMDB id to the TV show renamer #1344 + (movies) added
... [More]
renamer fields for production company/studio (thx @DirtyRacer) x (movies/TV shows) reduced CPU usage of MVStore x (movies/TV shows) reduced loading time of the databases x (movies/TV shows) eager creation of .actors folder #1343 x (movies/TV shows) prevent errors when closing dialogs #1348 x (movies) Subtitles: detect and rename hearing impaired SDH ones x (movies/TV shows) prevent custom sort prefixes from crashing TMDB searches #1349 x (movies/TV shows) improved performance of displaying the Kodi menu x (movies) added sorting via title as second sort order x (movies) set original file name for single movie folders too x (movies/TV shows) compare date added on the date part only x (movies/TV shows) fixed reading existing NFO files from disc folders x (movies/TV shows) catch more errors on failed scrape x (movies/TV shows) exchange data source between windows and unix style #1364 x (movie sets) do not delete the artwork folder when all movie sets get removed #1371 [Less]
|
Posted
almost 4 years
ago
by
Manuel Laggner
+ added an enhanced aspect ratio detector (thx @icebaer72 and @All-Ex) + heavily reworked the Kodi integration #335, #966, #971, #1151, #1303 + added a filter for movie sets containing missing movies #1279 + (movie) added year to the bulk editor +
... [More]
automatically restore a backup if a damaged database has been detected on startup + support for scraping adult TV shows #1307 x new macOS icon that matches the BigSur style #1333 (thx @titanicbobo) x fixed loading of license module on UNC paths #1227 x partly reverted changes to the database management #1315 #1316 #1291 #1306 x reworked memory usage visualization in the status bar x do not pre-set artwork types in the (background) scrape dialogs, when automatic artwork download is disabled x allow more season/episode variants to be detected #1302 x enhanced check for missing artwork to extrafanart/extrathumbs too #1320 x (TMDB) enhanced language fallback for es_MX, pt_BR and fr_CA #1326 x reverted splitting playcount from watched state #1296 x (movies/TV shows) make sure the actors folder exists prior to moving files #1331 x (TV shows) do not remove “season-all-*” artwork on rename #1327 [Less]
|
Posted
almost 4 years
ago
by
Manuel Laggner
tinyMediaManager included a basic implementation of the Kodi JSON-RPC API for a long time, but with release 4.1.5 this API has been reworked in several areas.
|
Posted
almost 4 years
ago
by
Manuel Laggner
tinyMediaManager’s newest release (4.1.5) added automatic detection of the “real” aspect ratio of movies and TV shows. Many video files are encoded in 16:9 (1.78:1) aspect ratio even if the production was shot in a wider format (e.g. widescreen
... [More]
2.40:1). In this case the video file includes black bars above and below the actual image. So far, the aspect ratio and video resolution of the encoded video were included in media information data instead of the real values. [Less]
|
Posted
almost 4 years
ago
by
Manuel Laggner
tinyMediaManager’s newest release (v4.1.5) added automatic detection of the “real” aspect ratio of movies and TV shows. Many video files are encoded in 16:9 (1.78:1) aspect ratio even if the production was shot in a wider format (e.g. widescreen
... [More]
2.40:1). In this case the video file includes black bars above and below the actual image. So far, the aspect ratio and video resolution of the encoded video were included in media information data instead of the real values. [Less]
|