⚠️ UNFINISHED PROJECT ⚠️
This project were not finsihed because pyqt5 development was a huge pain and I didn't saw the need for such a software anymore. Nevertheless, it runs and works partly.
Athnos
With Athnos you can store media files like videos, audios or images
(called clip
) structured / sorted.
Every clip has a link or file path to the (media) file, a name, description and can have several tags.
Additionally, a clip can have a source
. For example, if the clip is a 10-second clip from a movie, the movie can be set as the source
and each time you select the clip, you can see where it came from.
This makes Athnos the perfect tool for video creators who often use many and different clips/scenes, audio, images, etc. in their videos and currently have dozens of different folders and cryptic-looking file names to somehow bring order to the pile of files. But it's also useful for 'normal' people, like you and me, who just want to store their images or videos centrally.
Download the latest executables:
-
Linux
-
Windows
The installation and other stuff (besides Todo and License) below are just for the people, who want to compile the code themselves and doesn't use the executables linked above.
If you only have a 32 bit, arm, etc. processor, window 8 or another reason why you can't use the already compiled versions linked above, you have to download the source code and execute / compile it yourself. The instructions are below.
Known issues
Linux
-
FileNotFoundError: [Errno 2] No such file or directory 'objcopy'
when compiling the code with pyinstallerCause: PyInstaller doesn't find the
objcopy
commandSolution: Run
apt install binutils
, which installsobjcopy
-
staticx: Couldn't find 'patchelf'. Is 'patchelf' installed?
when 're-building' the pyinstaller executable with staticxCause: staticx doesn't find the
patchelf
moduleSolution: Run
apt install patchelf
, which installspatchelf
-
...dlopen: /lib/x86_64-linux-gnu/libc.so.6: version ``GLIBC_2.x' not found...
when try to runCause: This means that the file was compiled with a newer
glibc
version, than the one on your system. Usually happens if you compile the file on your computer and try to execute it on another one with an olderglibc
version.Solution: If you compiled the file yourself, re-compile it and after that follow the instructions here. If you downloaded the file from here, download it again (latest version) and if the is still there when running the new file, open a new issue
-
[12345] Cannot open self /tmp/staticx-*/main or archive /tmp/staticx-*/main.pkg
when try to runCause: When a pyinstaller executable was 're-built' with staticx. Usually happens if pyinstaller creates a executable, which can't be 're-build' correctly with staticx
Solution: If you compiled the file yourself, use pyinstaller version 4.0, instead of the newest version an then compile it again If you downloaded the file from here, download it again (latest version) and if the is still there when running the new file, open a new issue
Installation🎰
Linux
-
Install the required apt packages. Note: The python3 version must be 3.6 or higher!
apt install git apt install python3 apt install python3-pip apt install python3-pyqt5 apt install python3-pyqt5.qtsql
-
Then clone the repository and install its requirements
git clone https://github.com/ByteDream/athnos.git cd athnos/ pip3 install -r requirements.txt
Windows
-
Download the latest python version from here (at least version 3.6 or higher) and install it.
-
Download the repository and unzip it (e.g. with 7zip).
-
Open the unzipped folder in the cmd.
-
Install PyQt5 and the requirements
pip install pyqt5 pip install -r requirements.txt
Run🚀
After the setup is done, you can run athnos via
python3 main.py
on Linuxpython main.py
on Windows (or just double clickmain.py
)
Compile🔨
If you want to compile independent executables, the installation has to be done first.
Linux
-
Go into the
athnos
folder and execute the following commandspip3 install pyinstaller pyinstaller --noconsole --onefile main.py
The path of the generated executable is
dist/main
.Note that if you share the file with other systems, the other systems
glibc
version must be equal or higher than the one on your system, because some python libraries packed in themain
file rely on them. If you want to make the file 'real' independent, see the next paragraph
Create real independent file
If you want to share the executable file with another systems which has a lower glibc
version
(can be obtained if you run the ldd --version
command), you need to 'rebuild' the generated main
file.
The following method currently only works on 64-bit machines / with 64-bit executables and has some disadvantages:
It takes longer to startup and causes higher cpu load on startup. An alternate method is, to re-run the steps above on the oldest
system you can find / with the oldest glibc
version.
To build the real independent file, you have to execute the following commands
apt install patchelf
pip3 install staticx
staticx dist/main dist/static_main
The now generated dist/static_main
file is the independent file.
Windows
-
Open the cmd in the
athnos
folder and execute the following commandspip install pyinstaller pyinstaller --noconsole --onefile main.py
-
The generated executable
main.exe
is in the new createddist
folder
Note: If a new major python3 version has been released lately, and you've installed this version, PyInstaller may not work. See here for all supported python3 version of PyInstaller
If there is any issue while compiling or when you try to launch the compiled file, look at the known issues. When your issue isn't listed there or the given solution not works, feel free to open a new issue
Successfully compiled (staticx and non-staticx executables) on
- Pop!_OS 20.10 with
python3.8.6
,pyqt 5.15.0
,pyinstaller 4.0
,staticx 0.12.0
,glibc 2.32
- Ubuntu 20.04 with
python3.8.5
,pyqt 5.14.1
,pyinstaller 4.0
,staticx 0.12.0
,glibc 2.31
- Manjaro 20.2 with
python3.8.6
,pyqt 5.15.2
,pyinstaller 4.0
,staticx 0.12.0
,glibc 2.32
Additional components
Todo
- Tags for the source
- Colored tags
- Clip column hide
- Database driver download options
- Server software
- Custom style
- Optional plugins (e.g. direct download a youtube video by its link)
Licence
This project is licensed under the GNU General Public License v3.0 (GPL-3.0) - see the LICENSE file for more details