Skip to main content

wumb-to-sqlite

PyPI Changelog Tests License

Scrape WUMB playlists to SQLite.

WUMB is a public radio station based at UMass Boston. It's awesome and you should support it if you like great music with no ads. This is a personal project, however, and not associated with WUMB or UMass Boston in any way.

The station puts its daily playlist online here: http://wumb.org/cgi-bin/playlist1.pl. I often want to look up a song I heard in the car, or remember something that played last week. I'm also just curious about the music mix. So this is a tool to scratch that itch.

Installation

Install this tool using pip:

pip install wumb-to-sqlite

Or install globally with pipx:

pipx install wumb-to-sqlite

Usage

Scrape today's playlist:

wumb-to-sqlite playlist wumb.db

That will use (or create) a SQLIte database called wumb.db and a table called playlist. Change the table name by passing a --table option.

Scrape a specific date, with a custom table name:

wumb-to-sqlite playlist wumb.db --table songs --date 2020-09-01

That will get songs from Sept. 1, 2020, and use a table called songs.

Scrape all daily playlists from Oct. 1 to Oct. 11, 2020:

wumb-to-sqlite playlist wumb.db --since 2020-10-01 --until 2020-10-01 --delay 1

That will pull down playlists for each day between Oct. 1 and 11, inclusive. It adds a one second delay (which is the default) between days, as a courtesy to WUMB's servers.

Downloaded pages are cached locally, so subsequent runs don't keep re-fetching the same data. By default, it's located at $HOME/.wumb-to-sqlite/.

Development

To contribute to this tool, first checkout the code. Then create a new virtual environment:

cd wumb-to-sqlite
python -mvenv venv
source venv/bin/activate

Or if you are using pipenv:

pipenv shell

Now install the dependencies and tests:

pip install -e '.[test]'

To run the tests:

pytest

Please note that scraping tests should be run against the included HTML file tests/wumb-2020-10-10.html, not against the live site. Again, this is a small public radio station. Please be nice.

Metadata

Release files for wumb-to-sqlite 0.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for wumb-to-sqlite 0.1
File Size Uploaded
wumb-to-sqlite-0.1.tar.gz 4.3 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for wumb-to-sqlite 0.1
File Interpreter ABI Platform
wumb_to_sqlite-0.1-py3-none-any.whl Python 3 none any Details

Total release size: 13.4 kB

Release files / wumb-to-sqlite-0.1.tar.gz

Download URL wumb-to-sqlite-0.1.tar.gz
Size 4.3 kB
Tags Source
SHA-256 checksum
How to use checksums
3c7aa9e1e250f859295be11821fe23ab44f81081347b2357d4eb3d96e97251fa
BLAKE2b-256 checksum
How to use checksums
d7ee13aae389b28327481122bfc7078665d7a06f30c8694b26294c827f1e7a53
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.2.0 pkginfo/1.5.0.1 requests/2.24.0 setuptools/41.2.0 requests-toolbelt/0.9.1 tqdm/4.50.2 CPython/3.7.5

Release files / wumb_to_sqlite-0.1-py3-none-any.whl

Download URL wumb_to_sqlite-0.1-py3-none-any.whl
Size 9.1 kB
Tags Python 3
SHA-256 checksum
How to use checksums
9ef9897ed39755d5b1ec35715c78cb42c6f1e8d5e428070602967f07d6bf2eef
BLAKE2b-256 checksum
How to use checksums
49d683eb284707b1f425923c1fe310404fdd79647fd8bb31c043c91fe6e1296c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.2.0 pkginfo/1.5.0.1 requests/2.24.0 setuptools/41.2.0 requests-toolbelt/0.9.1 tqdm/4.50.2 CPython/3.7.5

Release history Release notifications | RSS feed

This release

0.1 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page