Skip to main content

django-overcomingbias-api: an API to Robin Hanson’s content

django-overcomingbias-api is a standalone Django app which lets you create and manage an API to (some of) Robin Hanson’s content.

It scrapes the overcomingbias blog (and other sites) and presents the data in a structured form via a REST API. (I may add a GraphQL API later, too.)

Basic Usage

Legacy blog imports

The obscraper dependency targets the former WordPress blog. Its repository was archived after the blog moved to Substack in 2023, and its live post and edit-date fetching no longer works. This compatibility update preserves access to previously stored content; it does not add a Substack importer. The pull/sync instructions below describe the legacy interface.

Tests of legacy post assembly, database updates and exports use synthetic obscraper.Post responses at the download boundary. They still exercise the real application implementations, but do not verify live blog importing. Other live essay/YouTube/Spotify tests retain their existing credential requirements.

A graphical user interface is provided through the Django admin site.

To initialise a database of all overcomingbias posts, use the “pull” button:

Create and update overcomingbias posts from the admin site

Add new posts with “pull”, and update modified posts with “sync”. (You can also add content from YouTube and Spotify.)

Categorise content according to the “ideas” and “topics” it contains, or by generic “tags”. Use the admin site and custom Admin Actions to manage content.

Link the app in your URL config to access the REST API:

# urls.py

urlpatterns = [
    ...
    path("", include("obapi.urls")),
    ...
]

You should then be able to access the automatic API documentation at URL /api/docs.

Alternatively, provide your own views for each post:

# urls.py
from django.urls import path, register_converter
from obapi.converters import OBPostNameConverter
from myapp.views import ob_detail_view

register_converter(OBPostNameConverter, "ob_name")
urlpatterns = [
    ...
    path(
        "content/overcomingbias/<ob_name:item_id>",
        ob_detail_view, # custom view
        name="obcontentitem_detail",
    ),
    ...
]

Features

Currently, content can be scraped from the following sources:

  • The overcomingbias blog (added automatically)

  • Robin Hanson’s home page

  • YouTube videos (add videos manually using their URLs)

  • Spotify podcast episodes (add episodes manually using their URLs)

Documentation

Read the full documentation here, including the Installation and Getting Started Guide.

Bugs/Requests

Please use the GitHub issue tracker to submit bugs or request features.

Changelog

See the Changelog for a list of fixes and enhancements at each version.

License

Copyright (c) 2022 Christopher McDonald

Distributed under the terms of the MIT license.

All overcomingbias posts are copyright the original authors.

Metadata

Release files for django-overcomingbias-api 0.7.0

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

Source distribution (sdist)

Source distribution for django-overcomingbias-api 0.7.0
File Size Uploaded
django_overcomingbias_api-0.7.0.tar.gz 293.0 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for django-overcomingbias-api 0.7.0
File Interpreter ABI Platform
django_overcomingbias_api-0.7.0-py3-none-any.whl Python 3 none any Details

Total release size: 335.0 kB

Release files / django_overcomingbias_api-0.7.0.tar.gz

Download URL django_overcomingbias_api-0.7.0.tar.gz
Size 293.0 kB
Tags Source
SHA-256 checksum
How to use checksums
202ddb3d4b732fdb8b96b26c0c21098ac552776273845114d8ae571955b83461
BLAKE2b-256 checksum
How to use checksums
cce8c1a7e1b0adbb535b1b4a729dbb52f995ee558d679185d82402d96047105a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.14

Release files / django_overcomingbias_api-0.7.0-py3-none-any.whl

Download URL django_overcomingbias_api-0.7.0-py3-none-any.whl
Size 42.0 kB
Tags Python 3
SHA-256 checksum
How to use checksums
dbb1c0467828be2ecb18dbb80cba2c8979037c79caa115ab796a953dd9a68e80
BLAKE2b-256 checksum
How to use checksums
1f0a475c191cb4a96ae5cdb5c873309f0751facbf18b8d77c5ef0cb34de08461
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.14

Release history Release notifications | RSS feed

This release

0.7.0 This release

2 release files

0.6.3

2 release files

0.6.2

2 release files

0.6.1

2 release files

0.6.0

2 release files

0.5.0

2 release files

0.4.5

2 release files

0.3.3

2 release files

0.3.2

2 release files

0.3.1

2 release files

0.3.0

2 release files

0.2.5

2 release files

0.2.4

2 release files

0.2.3

2 release files

0.2.2

2 release files

0.2.0

2 release files

0.1.0

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