This indicator allows you to launch an instance of MiniDLNA
as a normal user, without the need to edit configuration files as
root, or restart by command the
application if you have changed the configuration.
Some of the features this indicator provides are:
- Detect if the process has died, using a background thread
- Auto generation of a port and uuid to avoid conflicts with the default configuration (check this to know the problem about uuid)
- Auto configuration when first run (adding the pictures, music, videos and downloads folder of the user, if the exist, and generating a random, non-default, port)
Tested operating systems:
- Ubuntu 16.04 (Xenial Xerus)
- Linux Mint 17.3 (Rosa)
- Fedora 26 (with the KStatusNotifierItem/AppIndicator Support Gnome Shell extension)
It should work with any operating system that supports Python 3.5+, AppIndicator and the required dependencies. If you have problems, please, open an issue.
Tested from these devices (tests from more devices are welcome):
What is MiniDLNA?
In brief, MiniDLNA is a small program that allows you to share multimedia content (audio, video, pictures, etc.) easily with DLNA/UPnP compatible devices (for example, smart TVs, phones, XBMC, etc.). This also could be done with some type of share services, like Windows/Samba/CIFS, NFS, etc. but DLNA is easier to configure (you just need to run the program and select the folders you want to share); it is faster, no need to configure security.
You will need this software to run the indicator, considering a standard initial installation of Ubuntu/Mint:
sudo apt install minidlna python3-setuptools python3-pip python3-gi python3-psutil
For Fedora, you will need RPM Fusion repository:
sudo dnf install https://download1.rpmfusion.org/free/fedora/rpmfusion-free-release-$(rpm -E %fedora).noarch.rpm https://download1.rpmfusion.org/nonfree/fedora/rpmfusion-nonfree-release-$(rpm -E %fedora).noarch.rpm
And then install these dependencies:
sudo dnf install minidlna python3-setuptools python3-pip python3-gobject python3-psutil libappindicator-gtk3
Also remember to install the KStatusNotifierItem/AppIndicator Support Gnome Shell extension from the web or using these commands:
sudo dnf install chrome-gnome-shell gnome-tweak-tool jq curl -s https://raw.githubusercontent.com/okelet/minidlnaindicator/master/gnome-ext-install.md | bash -s -- install firstname.lastname@example.org
rpm packages available; only from PyPi; if someone wants to contribute, it will be welcome.
python3 -m pip install --user --upgrade minidlnaindicator
pip will create a shortcut in the applications menu.
The configuration is very basic. It will detect an existing user configuration in the
file, check it, and use it. If it doesn't exist, it will generate a new one with the user images, music, videos and
downloads folder of the current user.
The default application configuration, will launch the MiniDLNA process when the indicator starts, and it will be stopped when the indicator finishes. Also, the own indicator will configure itself to run on every user logon. All these 3 settings can be changed from the indicator configuration menu.
The MiniDLNA configuration has to be done by hand, but there are some shortcuts to open the file and edit it. You can also open from the menu the LOG. If you change the configuration, please remember to restart the MiniDLNA process.
How it looks
Entry in the applications menu (Ubuntu 16.04):
Indicator menu (in spanish):
I don't know. This is a very small program done for myself and published just to help other people with the same problems.
In brief, this is my idea. You can use the program freely; you don't have to pay me or somebody anything. You can modify it, and redistribute it, as long as you keep this "license", attach the base source code, and mention the original author (me).
Anyway, I wish (but this is not mandatory, as long as you accomplish the previous sentence) there weren't lots of forks spread over Internet, so, I would prefer if you have fixes or new features, do a pull request; this is something just to have the code centralized and ordered; I hate when I search a program or library and there are lots of forks, each one with different fixes or features.
Additionaly, as I do, you can't sell this program or get any economic benefit of it.
If you like the program, you can send a bottle of good wine (I don't like beer
Fixes or suggestions about this "license" are welcome.
- Translators needed
- Detect external MiniDLNA configuration changes
- Allow some basic MiniDLNA configuration (media folders, port)
Validated with MyPy:
mypy --python-version 3.5 --ignore-missing-imports --strict .
Website (in spanish): https://okelet.github.io