Subscribe, listen and (in the future) download your favorite podcasts, quickly and easily.

Overview

Minimal Podcasts Player

https://github.com/son-link/minimal-podcasts-player

Minimal Podcasts Player screenshoot

Subscribe, listen and (in the future) download your favorite podcasts, quickly and easily.

Available for Linux, Windows and Mac.

Licensed under GNU/GPL3 or higher.

Note: this project is still under development, so some features are not yet available or complete.

Install

From source code:

  • Clone the repo, download the zip under Code -> Download ZIP or download the last release.

  • Open a terminal and go to the project folder.

  • Install the dependencies:

    • From PIP (with administration permissions): pip install -r requirements.txt

    • Debian/Ubuntu/Mint/MX Linux:

      • apt: apt install python3-pyqt5, python3-pyqt5.qtmultimedia, libqt5multimedia5, libqt5multimedia5-plugins
      • Pypi: pip3 install podcastparser
    • Arch Linux/Manjaro:

      • pacman: python-pip python-podcastparser python-pyqt5 qt5-multimedia
      • Pypi pip install
    • Copy bin/minimal-podcasts-player.desktop to /usr/share/applications

    • Copy bin/minimal-podcasts-player.svg to /usr/share/pixmaps

    • Windows:

      • Install Python, or Conda/Miniconda.
      • Open a terminal (cmd or Poweshell) and execute pip install -r requirements.txt

    Note: if you use Conda/Miniconda, DON'T install the package pyqt from conda and conda-forge repositories, install it from Pypi, since the one installed from them does not include the libraries for multimedia playback.

From Pypi:

pip install minimal-podcasts-player

Executables:

You can download a AppImage for GNU/Linux and executable for Windows on releases page

If you use Arch Linux, Manjaro or other Arch based distros a package is avaliable on AUR

Other credits:

Especial mentions:

  • Engels Tercero from the Telegram group SystemInside, for helping me package the Mac OS X application.
  • Thanks to David Linares, member of SystemInside's Telegram group for report the bug and provide several ideas.
Comments
  • Cannot subscribe to rss feed, cannot launch anymore

    Cannot subscribe to rss feed, cannot launch anymore

    Hello @son-link, I am looking for a small Podcast player for use with helloSystem.

    When trying to subscribe to https://feeds.fireside.fm/bsdnow/rss, I get a crash:

    % /var/run/user/1001/_home_user_Desktop_minimal-podcasts-player-master.zip/minimal-podcasts-player-master/minimal-podcasts-player      
    error: XDG_RUNTIME_DIR not set in the environment.
    error: XDG_RUNTIME_DIR not set in the environment.
    error: XDG_RUNTIME_DIR not set in the environment.
    error: XDG_RUNTIME_DIR not set in the environment.
    QKqueueFileSystemWatcherEngine::addPaths: open: No such file or directory
    Traceback (most recent call last):
      File "/var/run/user/1001/_home_user_Desktop_minimal-podcasts-player-master.zip/minimal-podcasts-player-master/mpp/db.py", line 38, in run
        data = parseFeed(self.url)
      File "/var/run/user/1001/_home_user_Desktop_minimal-podcasts-player-master.zip/minimal-podcasts-player-master/mpp/utils.py", line 12, in parseFeed
        with urlopen(url) as response:
      File "/usr/local/lib/python3.7/urllib/request.py", line 222, in urlopen
        return opener.open(url, data, timeout)
      File "/usr/local/lib/python3.7/urllib/request.py", line 531, in open
        response = meth(req, response)
      File "/usr/local/lib/python3.7/urllib/request.py", line 641, in http_response
        'http', request, response, code, msg, hdrs)
      File "/usr/local/lib/python3.7/urllib/request.py", line 569, in error
        return self._call_chain(*args)
      File "/usr/local/lib/python3.7/urllib/request.py", line 503, in _call_chain
        result = func(*args)
      File "/usr/local/lib/python3.7/urllib/request.py", line 649, in http_error_default
        raise HTTPError(req.full_url, code, msg, hdrs, fp)
    urllib.error.HTTPError: HTTP Error 403: Forbidden
    zsh: abort   
    

    When I then try to run the application again, it does not even start anymore:

    % /var/run/user/1001/_home_user_Desktop_minimal-podcasts-player-master.zip/minimal-podcasts-player-master/minimal-podcasts-player
    Traceback (most recent call last):
      File "/var/run/user/1001/_home_user_Desktop_minimal-podcasts-player-master.zip/minimal-podcasts-player-master/minimal-podcasts-player", line 3, in <module>
        mpp.init()
      File "/var/run/user/1001/_home_user_Desktop_minimal-podcasts-player-master.zip/minimal-podcasts-player-master/mpp/__init__.py", line 324, in init
        if config['theme'] != 'system':
    KeyError: 'theme'
    

    At this point, I have to delete ~/.local/share/mpp/ to be able to launch the application again.

    bug 
    opened by probonopd 12
  • Default to system theme

    Default to system theme

    Please default to system theme theme = system and make the "System" selectable in the configuration window.

    Most users want applications to look "native", and to follow the look and feel of the rest of the system (buttons, fonts, colors, etc.). In my example:

    enhancement Testing 
    opened by probonopd 9
  • Search podcasts

    Search podcasts

    Please add a way to search podcasts, e.g., on iTunes.

    Perhaps these are useful?

    • https://github.com/nalgeon/podsearch-py
    • https://github.com/tkem/mopidy-podcast
    Working on it Testing 
    opened by probonopd 5
  • appimage on kubuntu 21.04

    appimage on kubuntu 21.04

    It worked to start it the first time then it crashed and now it gives me this output.... Just get that search function going and make a new release ... then this software is right there ... beautiful little thing this is

    ./Minimal_Podcasts_Player-0.2.0-x86_64.AppImage Traceback (most recent call last): File "/tmp/.mount_Minima4JgQk6/usr/bin/minimal-podcasts-player", line 3, in mpp.init() File "/tmp/.mount_Minima4JgQk6/usr/conda/lib/python3.8/site-packages/mpp/init.py", line 333, in init if config['theme'] != 'system': KeyError: 'theme'

    duplicate 
    opened by datamaskinen 2
  • sqlite3.OperationalError: near

    sqlite3.OperationalError: near "t": syntax error

    Nice project!

    I managed to add one of my podcasts but could not add all of them. For example, when adding podcast https://www.spreaker.com/show/5634537/episodes/feed this exception occurred:

    Traceback (most recent call last):
      File "minimal-podcasts-player/mpp/db.py", line 52, in run
        lastid, episodes = insertPodcast(self.url, data)
      File "minimal-podcasts-player/mpp/db.py", line 564, in insertPodcast
        )
    sqlite3.OperationalError: near "t": syntax error
    
    opened by joergmlpts 1
  • Remove stylesheets

    Remove stylesheets

    Fixes https://github.com/son-link/minimal-podcasts-player/issues/3#issuecomment-802148841 and makes the application look native like all other Qt based applications in the system

    opened by probonopd 1
  • fix for UI issues, issue #17

    fix for UI issues, issue #17

    These changes fix the two UI issues:

    • sysExit() is called when Disable confirm close dialogue is on.
    • While the podcasts are updated, the Update menu entry is disabled. This prevents multiple concurrent updates.
    opened by joergmlpts 0
  • two UI issues

    two UI issues

    • When Disable confirm close dialogue is on, the tool does not quit anymore. It closes the main window but continues running; it does not exit.
    • When I updated my podcasts the same new podcast was added twice to the database and to the UI. The happend when I clicked Update while an update was still in progress.
    opened by joergmlpts 0
  • Appimage crash when I change download's folder

    Appimage crash when I change download's folder

    I tried Appimage in linux. In the setting I try to change the default download folder to /home/XXX/Música/Podcast/ and I click OK, then app crash.

    Note that the "Música" folder has an accent character.

    Crash message:

    Traceback (most recent call last):
      File "/tmp/.mount_MinimaogaD0R/usr/conda/lib/python3.9/site-packages/mpp/conf.py", line 87, in saveConf
        parser.set('mpp', 'rename_download', rename_download)
    UnboundLocalError: local variable 'rename_download' referenced before assignment
    /tmp/.mount_MinimaogaD0R/AppRun: línea 7:  9551 Abortado                "$this_dir"/usr/bin/python "$this_dir"/usr/bin/minimal-podcasts-player "$@"
    

    My system: Operating System: KDE neon 5.22 KDE Plasma Version: 5.22.4 KDE Frameworks Version: 5.84.0 Qt Version: 5.15.3 Kernel Version: 5.8.0-63-generic (64-bit) Graphics Platform: X11

    Working on it 
    opened by franciscot 0
Releases(continuous)
Owner
Alfonso Saavedra "Son Link"
Alfonso Saavedra
APC Power Usage is an application which shows power consuption overtime for UPS units manufactured by APC.

APC Power Usage Introduction APC Power Usage is an application which shows power consuption overtime for UPS units manufactured by APC. Screenshoots G

Stefan Kondinski 3 Oct 08, 2021
Demo of a WAM Prolog implementation in Python

Prol: WAM demo This is a simplified Warren Abstract Machine (WAM) implementation for Prolog, that showcases the main instructions, compiling, register

Bruno Kim Medeiros Cesar 62 Dec 26, 2022
Easy way to build a SaaS application using Python and Dash

EasySaaS This project will be attempt to make a great starting point for your next big business as easy and efficent as possible. This project will cr

xianhu 3 Nov 17, 2022
Contains a Jupyter Notebook for calculating remaining plants required based on field/lathhouse data.

Davis-Sunflowers-Su21 Project goals: Plants influence their reproduction and mating system in many ways. Various factors such as time of flowering, ab

1 Feb 10, 2022
Convert ldapdomaindump to Bloodhound

ldd2bh Usage usage: ldd2bh.py [-h] [-i INPUT_FOLDER] [-o OUTPUT_FOLDER] [-a] [-u] [-c] [-g] [-d] Convert ldapdomaindump to Bloodhoun

64 Oct 30, 2022
This suite consists of two different scripts, made to automate attacks against NoSQL databases.

NoSQL-Attack-Suite This suite consists of two different scripts, made to automate attacks against NoSQL databases. The first one looks for a NoSQL Aut

16 Dec 26, 2022
Google Foobar challenge solutions from my experience and other's on the web.

Google Foobar challenge Google Foobar challenge solutions from my experience and other's on the web. Note: Problems indicated with "Mine" are tested a

Islam Ayman 6 Jan 20, 2022
A turtlebot auto controller allows robot to autonomously explore environment.

A turtlebot auto controller allows robot to autonomously explore environment.

Yuliang Zhong 1 Nov 10, 2021
A proof-of-concept package manager for Cairo contracts/libraries

glyph A proof-of-concept package manager for Cairo contracts/libraries. Distribution through pypi. Installation through existing package managers -- p

Sam Barnes 11 Jun 06, 2022
[arXiv 2020] Video Representation Learning with Visual Tempo Consistency

Video Representation Learning with Visual Tempo Consistency [Paper] [Project Page] News Full codebae is coming soon Pretained Models For now, we provi

DeciForce: Crossroads of Machine Perception and Autonomy 24 Nov 23, 2022
An example of python package

An example of python package Why use packages? It is a good practice to not code the same function twice, and to reuse common code from one python scr

10 Oct 18, 2022
A basic interpreted programming language written in python

shin A basic interpreted programming language written in python. extension You can use our own extension ".shin". Example: main.shin How to start Clon

12 Nov 04, 2022
Force you (or your user) annotate Python function type hints.

Must-typing Force you (or your user) annotate function type hints. Notice: It's more like a joke, use it carefully. If you call must_typing in your mo

Konge 13 Feb 19, 2022
A(Sync) Interface for internal Audible API written in pure Python.

Audible Audible is a Python low-level interface to communicate with the non-publicly Audible API. It enables Python developers to create there own Aud

mkb79 192 Jan 03, 2023
Simple control of Thorlabs Elliptec devices from Python.

Elliptec Simple control of Thorlabs Elliptec devices. No docs yet » Get started · Report a bug · Request a feature About The Project ThorLabs Elliptec

David Roesel 8 Sep 22, 2022
A random cat fact python module

A random cat fact python module

Fayas Noushad 4 Nov 28, 2021
An ongoing curated list of frameworks, libraries, learning tutorials, software and resources in Python Language.

Python Development Welcome to the world of Python. An ongoing curated list of frameworks, libraries, learning tutorials, software and resources in Pyt

Paul Veillard 2 Dec 24, 2021
Just a simple python script to generate graphs of salt state requisites.

saltstatevis Just a simple python script to generate graphs of salt state requisites. Installation Requirements You will need to install graphviz to r

Dwayn Matthies 3 May 04, 2022
EloGGs 🎮 is a 1v1.LOL Trophy Boosting Program (PATCHED)

EloGGs 🎮 is an old patched 1v1.LOL boosting program I developed months ago, My team made around $1000 total off of this, but now it's been patched by the developers.

doop 1 Jul 22, 2022
Design-by-contract in Python3 with informative violation messages and inheritance

icontract icontract provides design-by-contract to Python3 with informative violation messages and inheritance. It also gives a base for a flourishing

275 Jan 02, 2023