Metadata-Version: 2.4
Name: amg-player
Version: 2026.3.3.1
Summary: Browse & play embedded tracks from Angry Metal Guy music reviews
Project-URL: Homepage, https://github.com/desbma/amg-player
Project-URL: Repository, https://github.com/desbma/amg-player
Author: desbma
License-Expression: GPL-3.0-only
License-File: LICENSE
Keywords: angry,bandcamp,extreme,guy,metal,music,player,soundcloud,youtube
Classifier: Development Status :: 4 - Beta
Classifier: Environment :: Console
Classifier: Intended Audience :: End Users/Desktop
Classifier: License :: OSI Approved :: GNU General Public License v3 (GPLv3)
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3 :: Only
Classifier: Topic :: Multimedia :: Sound/Audio :: Players
Classifier: Topic :: Utilities
Requires-Python: >=3.12
Requires-Dist: cssselect>=1.2.0
Requires-Dist: curses-menu==0.5.0
Requires-Dist: lxml>=5.1.0
Requires-Dist: more-itertools>=10.2.0
Requires-Dist: mutagen>=1.47.0
Requires-Dist: pillow>=10.3.0
Requires-Dist: platformdirs>=4.2.0
Requires-Dist: python-magic>=0.4.27
Requires-Dist: requests>=2.31.0
Requires-Dist: tqdm>=4.66.4
Requires-Dist: unidecode>=1.3.8
Requires-Dist: web-cache>=1.1.0
Requires-Dist: yt-dlp>=2026.02.21
Description-Content-Type: text/markdown

# Angry Metal Guy Player

[![Latest version](https://img.shields.io/pypi/v/amg-player.svg?style=flat)](https://pypi.python.org/pypi/amg-player/)
[![CI status](https://img.shields.io/github/actions/workflow/status/desbma/amg-player/ci.yml)](https://github.com/desbma/amg-player/actions)
[![License](https://img.shields.io/github/license/desbma/amg-player.svg?style=flat)](https://pypi.python.org/pypi/amg/)

Angry Metal Guy Player (AMG Player) is a Python multi platform console tool to automatically play or download tracks from [Angry Metal Guy](https://www.angrymetalguy.com/) reviews.

I created this because:

- I like Angry Metal Guy, and discovered great music (both metal and totally non-metal) thanks to their reviews
- I often disagree with their ratings (in fact I disagree more often than I agree), both for overrating and underrating
- Even when I disagree, I like reading their reviews
- I want to listen to the music **before** I read the review, to avoid getting influenced
- To be efficient, I want to listen to the tracks like a radio, and read the review to learn more only when I like something

## Features

- Can work either in interactive mode (manually select tracks) or totally automatic (play new tracks like a radio)
- Supports embedded tracks from: YouTube, Bandcamp, SoundCloud, ReverbNation
- Plays YouTube video if available, or generates a video on the fly with the cover image + audio track(s) (requires FFmpeg)
- Can download tracks (with embedded album art) to play later

## Screenshots

Selection screen:  
[![selection image](https://i.imgur.com/Ijrjd0Am.png)](https://i.imgur.com/Ijrjd0A.png)

Playing a track:  
[![playing image](https://i.imgur.com/pXUScj2m.png)](https://i.imgur.com/pXUScj2.png)

## Installation

Angry Metal Guy Player requires a recent [Python](https://www.python.org/downloads/) version.
Some features are only available if [FFmpeg](https://ffmpeg.org/download.html) is installed.

### From PyPI (with PIP)

1. If you don't already have it, [install pip](https://pip.pypa.io/en/stable/installing/) for Python 3
2. Install Angry Metal Guy Player: `pip3 install amg-player`

### From source

1. If you don't already have it, [install setuptools](https://pypi.python.org/pypi/setuptools#installation-instructions) for Python 3
2. Clone this repository: `git clone https://github.com/desbma/amg-player`
3. Install Angry Metal Guy Player: `python3 setup.py install`

**Angry Metal Guy Player only supports [MPV player](https://mpv.io/) for now.**

## Command line usage

Run `amg -h` to get full command line reference.

### Examples

- Browse and play interactively last 50 reviews:

  `amg -c 50`

- Choose the first track to play, then play all tracks in chronological order:

  `amg -m radio`

- Play last 20 tracks in chronological order, skipping those already played:

  `amg -c 20 -m discover`

## License

[GPLv3](https://www.gnu.org/licenses/gpl-3.0-standalone.html)
