Skip to content

Latest commit

 

History

5 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 

Repository files navigation

The Metropolitan Opera Livestream Getter by mp3li

Terminal helper for saving permitted public, non-DRM Metropolitan Opera livestream broadcast audio as a local .mp3 music album with Jellyfin-ready metadata and cover art.

Status Platform Interface Source Output

Table of Contents

Open Table of Contents

About the Project

The Metropolitan Opera Livestream Getter by mp3li is a focused terminal tool for saving a permitted public, non-DRM Metropolitan Opera livestream broadcast as local MP3 audio with Jellyfin-style metadata and available artwork.

This tool was created for educational and accommodation purposes, including but not limited to helping provide offline audio access on MP3 players for disabled and elderly individuals. It is not intended or able to bypass DRM, encryption, access controls, subscriptions, or other protections.

The practical workflow is simple:

  • paste the currently available Metropolitan Opera broadcast page link
  • open the page in a temporary headless Chromium-based browser session
  • capture the public HLS playlist requests needed for that one broadcast
  • stop if the playlist shows an obvious encryption or DRM marker
  • save the audio as a singular .mp3, album.nfo, and cover image into a composer-organized music-album folder

It is not a general-purpose stream downloader and it does not save HLS playlist files as part of the finished result.

What the Tool Does

  • Accepts a valid https://ondemand.metopera.org/broadcast/... link.
  • Handles one broadcast at a time, matching the single currently available livestream workflow.
  • Uses a fresh temporary browser profile and temporary playlist files.
  • Selects the highest-bitrate detected audio stream when available.
  • Creates a 192 kbps local .mp3 file with embedded ID3 music metadata, the complete generated album NFO XML, and the cover as front-cover album art when available.
  • Keeps the finished output folder free of playlists/, master.m3u8, and rendition.m3u8 files.

Metadata and Artwork Saved

For every successful broadcast, the tool writes a Jellyfin-style album.nfo alongside the MP3. When the public Metropolitan Opera page provides the information, the NFO includes:

  • title and source link
  • short page description as <outline>
  • longer <plot> with the short description, full act-by-act synopsis, and world-premiere line
  • performance date and year
  • runtime
  • composer, conductor, librettist, and cast with roles
  • The Metropolitan Opera as studio
  • Metropolitan Opera ID
  • current track and track count
  • Full Synopsis URL

When available, the tool also saves cover.jpg (or the source image's supported extension). It does not save backdrops, banners, or landscape artwork.

The MP3 carries the same music information as ID3 tags: title, album, performers, album artist, composer, conductor, librettist, sung language, date, genre, and disc/track number. The full language name is saved as <language> in album.nfo, while the MP3 uses the standard three-letter ID3 code (for example, eng, fra, or deu). The complete album.nfo XML is also retained in the MP3's NFO_XML tag, and cover.jpg is embedded as the MP3's front-cover album art.

Requirements

This current release is for macOS.

  • Python 3
  • ffmpeg and ffprobe available in your Terminal PATH
  • Google Chrome, Chromium, Microsoft Edge, Brave, or Opera installed

The script uses only Python's standard library; there is no Python package-install step. Windows and Linux versions are coming soon.

How to Run

cd "/Users/stellar/MyWork/The Metropolitan Opera Livestream Getter by mp3li"
python3 the_metropolitan_opera_livestream_getter.py

The default output location is set in settings.json:

Output

Set output_directory to an absolute path or a path relative to the project folder to save the library elsewhere.

How to Use the Tool

When the tool starts, paste the one valid Metropolitan Opera broadcast page link that is currently available:

Paste your The Metropolitan Opera livestream broadcast link:

The tool captures the temporary playlist information, checks it for clear encryption markers, and saves the supported result into the configured music library folder.

Output Structure and Jellyfin Naming

Each successful broadcast is saved as a one-track music album, grouped under its composer:

Output/Metropolitan Opera 24 Hour Livestreamed Operas/
Output/Metropolitan Opera 24 Hour Livestreamed Operas/Giacomo Puccini/
Output/Metropolitan Opera 24 Hour Livestreamed Operas/Giacomo Puccini/Madama Butterfly - Giacomo Puccini - 1904 (IT)/
Output/Metropolitan Opera 24 Hour Livestreamed Operas/Giacomo Puccini/Madama Butterfly - Giacomo Puccini - 1904 (IT)/Madama Butterfly - Giacomo Puccini - 1904 (IT).mp3
Output/Metropolitan Opera 24 Hour Livestreamed Operas/Giacomo Puccini/Madama Butterfly - Giacomo Puccini - 1904 (IT)/album.nfo
Output/Metropolitan Opera 24 Hour Livestreamed Operas/Giacomo Puccini/Madama Butterfly - Giacomo Puccini - 1904 (IT)/cover.jpg

The final suffix is the verified sung-language code, such as (EN), (FR), (DE), or (IT). The tool leaves it off if the Metropolitan Opera synopsis does not provide a recognized sung language.

Captured HLS playlists exist only in a temporary system folder while the conversion runs. They are deleted automatically and do not appear in the final title folder.

Project Structure

The Metropolitan Opera Livestream Getter by mp3li/
  the_metropolitan_opera_livestream_getter.py
  settings.json                    # output-directory preference
  README.md
  .gitignore
  Output/                         # created locally and gitignored

Known Limitations

  • Only Metropolitan Opera links in the /broadcast/ path are accepted.
  • This release requires macOS, a Chromium-based browser, and ffmpeg/ffprobe.
  • Broadcast availability, artwork, metadata fields, and audio-stream details depend on what the public source page provides at the time of capture.
  • Protected or encrypted streams are not processed.
  • Windows and Linux support are planned for future versions.

Documentation Map

  • README.md - public project overview, setup, workflow, metadata, output details, and responsible-use information
  • the_metropolitan_opera_livestream_getter.py - standalone application script
  • .gitignore - publication guardrails for generated and local files

Responsible Use and Accommodation Disclaimer

This tool is intended only for permitted public, non-DRM Metropolitan Opera livestream broadcasts. It was created for educational and accommodation purposes, including offline listening on MP3 players for disabled and elderly individuals.

It does not bypass DRM, encryption, subscriptions, access controls, logins, or other protections. If a captured playlist contains an obvious encryption or DRM marker, the tool stops before audio processing. Users are responsible for ensuring that their use complies with the source's terms and all applicable law.

About

A macOS terminal tool for saving permitted public, non-DRM Metropolitan Opera livestream audio as a Jellyfin-ready local MP3 folder with metadata and artwork. It captures the current public broadcast, saves an MP3 with NFO metadata and available art, and does not bypass DRM or access controls.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages