1
0
Fork
You've already forked arc-choice
0
No description
  • Jupyter Notebook 79.6%
  • HTML 8.4%
  • Mermaid 7.8%
  • Python 3.1%
  • JavaScript 0.9%
  • Other 0.2%
Find a file
2020年04月22日 13:39:50 +01:00
01-YT-map fix typos 2019年03月27日 22:22:16 +00:00
02-YT-viz add posters 2020年01月28日 21:45:48 +00:00
03-YT-traces add video preview 2020年04月22日 13:39:50 +01:00
_data re-organsie repo for better documentation 2019年03月27日 17:02:33 +00:00
_graphics modified posters 2020年01月28日 21:44:58 +00:00
.gitignore ignore vscode settings 2019年07月30日 18:42:49 +01:00
BBCTV_env.yml add old conda environment 2019年01月07日 15:06:15 +00:00
LICENSE Add LICENSE 2020年04月02日 12:41:27 +00:00
Pipfile remove bs4 from env 2019年03月27日 17:01:59 +00:00
Pipfile.lock remove bs4 from env 2019年03月27日 17:01:59 +00:00
Readme.md rename readme screenshot png 2019年04月02日 14:30:55 +01:00

Architectures of Choice - Vol.1: Youtube

Any interface to a vast catalog of media is, explicitly or not, an ordering of choices. This project presents a series of experiments in mapping recommendations on the YouTube platform. It acts as a starting point towards a visual understanding of how choice is directed, generated, and controlled by algorithmic systems.

This project was initially commissioned as a partnership between Supra Systems Studio and BBC R&D for Everything Happens So Much, an exhibition at the London College of Communication (London Design Festival, Sept. 2018). The last section on traces is the result of further development and reflection in collaboration with Betti Marenko for the Research Through Design conference (March 2019).

for further information see my website and our Research Through Design paper:

Marenko, B. and Benqué, D. (2019) ‘Speculative diagrams: Experiments in mapping Youtube’, in Method & Critique; frictions and shifts in RTD. Research Through Design, TU Delft. doi: https://doi.org/10.6084/m9.figshare.7855811.v1.

Structure of the repository

Scraping 01-YT-map

Three probes gather Youtube recommendation data, using headless web-browser Selenium. The data are written to a Neo4j graph database (see _data).

ripple.py attempts to map all recommendations for n levels
digger.py logs all recommendations but only follows one random link
simple_digger.py only follows one random link

Visualisation 02-YT-viz

Attempts to visualise data from the graph using tools such as:

  • Neo4j browser
  • Python: matplotlib, networkx, datashader
  • Mermaid.js
  • Gephi

Traces 03-YT-traces

Focused visualisations of single paths through Youtube, showing details of each video such as title, author, and views. These are shown as static images of short traces, and animations of much longer ones.

Installation

Database

Most of this project works with a Neo4j graph database (Community Edition 3.5.1). To install see their manual.

If you do not want to install Neo4j, try the web visualisation in the Traces section which only stores data in .csv files.

Python

The Conda environment provided: BBCTV_env.yml was used for early experiments with various software and is therefore bloated with unused packages. I then moved to Pipenv after failing to replicate the Conda env on a new machine. Pipfile is much leaner but may be missing some packages depending on which scripts you are trying to run.

To install using Pipenv run the following from the repository root:
pipenv install adding --dev to also install an iPython kernel

Most of the Python code is the result of explorations using the Hydrogen package for Atom. This accounts for some of the spaghetti coding style and for the # %% markers that separate notebook cells. The code should still run in other IDEs or from the command line.

Data

Please see the data directory for instructions on how to load the graph database in Neo4j.