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
Shell scripts made simple 🐚

zxpy Shell scripts made simple 🐚 Inspired by Google's zx, but made much simpler and more accessible using Python. Rationale Bash is cool, and it's ex

Tushar Sadhwani 492 Dec 27, 2022
A numbers check python package

A numbers check python package

Fayas Noushad 3 Nov 28, 2021
A free micro-blog written in Python and powered by Heroku. *Merge requests are appreciated!*

Background Hobo is an ultra-lightweight blog engine written in Python. It has two dependencies, fully integrated into the codebase with no additional

Andrew Nelder 48 Jan 28, 2021
Pyhexdmp - Python hex dump module

Pyhexdmp - Python hex dump module

25 Oct 23, 2022
My solutions for the 2021's Advent of Code

Advent of Code 2021 My solutions for Advent of Code 2021. This year I am practicing Python 🐍 and also trying to develop my own language, Chocolate 🍫

Jakob Erzar 2 Dec 15, 2021
Assignment for python course, BUPT 2021.

pyFuujinrokuDestiny Assignment for python course, BUPT 2021. Notice username and password must be ASCII encoding. If username exists in database, syst

Ellias Kiri Stuart 3 Jun 18, 2021
YourCity is a platform to match people to their prefect city.

YourCity YourCity is a city matching App that matches users to their ideal city. It is a fullstack React App made with a Redux state manager and a bac

Nico G Pierson 6 Sep 25, 2021
python3 scrip for case conversion of source code files writen in fixed form fortran

convert_FORTRAN_case python3 scrip for case conversion of source code files writen in fixed form fortran python3 scrip for case conversion of source c

7 Sep 20, 2022
Covid-ChatBot - A Rapid Response Virtual Agent for Covid-19 Queries

COVID-19 CHatBot A Rapid Response Virtual Agent for Covid-19 Queries Contents What is ChatBot Types of ChatBots About the Project Dataset Prerequisite

NelakurthiSudheer 2 Jan 04, 2022
This repository can help you made a PocketMine-MP Server with Termux apps!

Hello This GitHub repository can made you a Server PocketMine-MP On development! How to Install Open Termux Type "pkg install git && python" If python

1 Mar 04, 2022
This is a far more in-depth and advanced version of "Write user interface to a file API Sample"

Fusion360-Write-UserInterface This is a far more in-depth and advanced version of "Write user interface to a file API Sample" from https://help.autode

4 Mar 18, 2022
It's an .exe file that can notify your chia profit and warning message every time automatically.

chia-Notify-with-Line 警示程式 It's an .exe file that can notify your chia profit and warning message every time automatically. 這是我自行設計的小程式,有轉成.exe檔了,可以在沒

You,Yu 1 Oct 28, 2021
Git Hooks Tutorial.

Git Hooks Tutorial My public talk about this project at Sberloga: Git Hooks Is All You Need 1. Git Hooks 101 Init git repo: mkdir git_repo cd git_repo

Dani El-Ayyass 17 Oct 12, 2022
Python’s bokeh, holoviews, matplotlib, plotly, seaborn package-based visualizations about COVID statistics eventually hosted as a web app on Heroku

COVID-Watch-NYC-Python-Visualization-App Python’s bokeh, holoviews, matplotlib, plotly, seaborn package-based visualizations about COVID statistics ev

Aarif Munwar Jahan 1 Jan 04, 2022
[draft] tools for schnetpack

schnetkit some tooling for schnetpack EXPERIMENTAL/IN DEVELOPMENT DO NOT USE This is an early draft of some infrastructure built around schnetpack. In

Marcel 1 Nov 08, 2021
In this project, we are going to display the battery notification and the time left for the battery to drain out using the battery capacity value.

In this project, we are going to display the battery notification and the time left for the battery to drain out using the battery capacity value.

Ritoban Biswas 1 Dec 20, 2021
A program that lets you use your tablet's tilting to emulate an actual joystick on a Linux computer.

Tablet Tilt Joystick A program that lets you use your tablet's tilting to emulate an actual joystick on a Linux computer. It's called tablet tilt joys

1 Feb 07, 2022
Solutions to the language assignment for Internship in JALA Technologies.

Python Assignment Solutions (JALA Technologies) Solutions to the language assignment for Internship in JALA Technologies. Features Properly formatted

Samyak Jain 2 Jan 17, 2022
An optional component handler for hikari, inspired by discord.py's views.

hikari-miru An optional component handler for hikari, inspired by discord.py's views.

43 Dec 26, 2022
Python 100daysofcode

#python #100daysofcode Python is a simple, general purpose ,high level & object-oriented programming language even it's is interpreted scripting langu

Tara 1 Feb 10, 2022