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
A Notifier Program that Notifies you to relax your eyes Every 15 Minutes👀

Every 15 Minutes is an application that is used to Notify you to Relax your eyes Every 15 Minutes, This is fully made with Python and also with the us

FSP Gang s' YT 2 Nov 11, 2021
A simple python project which control paint brush in microsoft paint app

Paint Buddy In Python A simple python project which control paint brush in micro

Ordinary Pythoneer 1 Dec 27, 2021
Leveraging pythonic forces to defeat different coding challenges 🐍

Pyforces Leveraging pythonic forces to defeat different coding challenges! Table of Contents Pyforces Tests Pyforces Pyforces is a study repo with a c

Igor Grillo Peternella 8 Dec 14, 2022
A fluid medium for storing, relating, and surfacing thoughts.

Conceptarium A fluid medium for storing, relating, and surfacing thoughts. Read more... Instructions The conceptarium takes up about 1GB RAM when runn

115 Dec 19, 2022
Funchacks - Fun module which is a small set of utilities

funchacks 👋 Introduction Funchacks is a fun module that provides a small packag

DenyS 6 Aug 04, 2022
Sikulix with Ubuntu Calculator Automation

CalculatorAutomation Sikulix with Ubuntu Calculator Automation STEP 1: DOWNLOAD and INSTALL SIKULIX https://raiman.github.io/SikuliX1/downloads.html T

Bedirhan Sayakci 2 Oct 27, 2021
API moment - LussovAPI

LussovAPI TL;DR: py API container, pip install -r requirements.txt, example, main configuration Long version: Install Dependancies Download file requi

William Pedersen 1 Nov 30, 2021
Package pyVHR is a comprehensive framework for studying methods of pulse rate estimation relying on remote photoplethysmography (rPPG)

Package pyVHR (short for Python framework for Virtual Heart Rate) is a comprehensive framework for studying methods of pulse rate estimation relying on remote photoplethysmography (rPPG)

PHUSE Lab 261 Jan 03, 2023
A collection of examples of using cocotb for functional verification of VHDL designs with GHDL.

At the moment, this repo is in an early state and serves as a learning tool for me. So it contains a a lot of quirks and code which can be done much better by cocotb-professionals.

T. Meissner 7 Mar 10, 2022
A webapp for taking fast notes, designed for business, school, and collaboration with groups.

JOTS Journal of the Session A webapp for taking fast notes, designed for business, school, and collaboration with groups.

Zebadiah S. Taylor 2 Jun 10, 2022
Simple plug-and-play installer for users who want to LineageOS from stock firmware, or from another custom ROM.

LineageOS for the Teracube 2e Simple plug-and-play installer for users who want to LineageOS from stock firmware, or from another custom ROM. Dependen

Gagan Malvi 5 Mar 31, 2022
An addin for Autodesk Fusion 360 that lets you view your design in a Looking Glass Portrait 3D display

An addin for Autodesk Fusion 360 that lets you view your design in a Looking Glass Portrait 3D display

Brian Peiris 12 Nov 02, 2022
Created a Python Keylogger script.

Python Script Simple Keylogger Script WHAT IS IT? Created a Python Keylogger script. HOW IT WORKS Once the script has been executed, it will automatic

AC 0 Dec 12, 2021
A simple assembly- and brainfuck-inspired stack-based language

asm-stackfuck A simple assembly- and brainfuck-inspired stack-based language. The language has a few goals: Be stack-based Look like assembly Have a s

Nils Trinity 1 Feb 06, 2022
An application for automation of the mining function in the game Alienworlds.IO

alienautomation A Python script made to automate the tidious job of mining on AlienWorlds This script: Automatically opens the browser Automatically l

anonieXdev 42 Dec 03, 2022
Block when attacker want to bypass the limit of request

Block when attacker want to bypass the limit of request

iFanpS 1 Dec 01, 2021
Pattern Matching for Python 3.7+ in a simple, yet powerful, extensible manner.

Awesome Pattern Matching (apm) for Python pip install awesome-pattern-matching Simple Powerful Extensible Composable Functional Python 3.7+, PyPy3.7+

Julian Fleischer 97 Nov 03, 2022
Collapse a set of redundant kmers to use IUPAC degenerate bases

kmer-collapse Collapse a set of redundant kmers to use IUPAC degenerate bases Overview Given an input set of kmers, find the smallest set of kmers tha

Alex Reynolds 3 Jan 06, 2022
Python module for creating the circuit simulation definitions for Elmer FEM

elmer_circuitbuilder Python module for creating the circuit simulation definitions for Elmer FEM. The circuit definitions enable easy setup of coils (

5 Oct 03, 2022
Pacman - A suite of tools for manipulating debian packages

Overview Repository is a suite of tools for manipulating debian packages. At a h

Pardis Pashakhanloo 1 Feb 24, 2022