jackdbd / fosdem-dl

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

fosdem-dl (FOSDEM talks downloder)

CI/CD

Download all talks from a FOSDEM conference track in a specific year.

Installation

This project is available on GitHub Releases as an uberjar and a Babashka uberjar.

Usage

This project strives to follow the Command Line Interface Guidelines.

The CLI has two commands: talks and tracks.

FOSDEM Downloader

Usage: fosdem-dl <command> [options]
Available commands: tracks, talks

This is the help for the talks command.

FOSDEM Downloader (talks)

Download all talks given at a conference track at FOSDEM a given year.

Options:
  -a, --attachments       Whether to download each talk's attachments (PDFs, slides, etc)
  -f, --format      :webm Video format #{:webm :mp4}
  -h, --help              Help
      --timeout     10000 HTTP connection timout in milliseconds
  -t, --track             Conference track (e.g. databases)
  -y, --year              Year of FOSDEM

Examples:
fosdem-dl talks -y 2020 --track databases [options]

This is the help for the tracks command.

FOSDEM Downloader (tracks)

List the tracks at FOSDEM a given year.

Options:
  -h, --help Help
  -y, --year Year of FOSDEM

Examples:
fosdem-dl tracks -y 2020

Tip

You can invoke the help of each command with -h, --help, :h, or :help.

Examples

List all FOSDEM 2020 conference tracks.

fosdem-dl tracks -y 2020

Download all videos of the FOSDEM 2018 python track, in WebM format.

fosdem-dl talks -y 2018 -t python

Download all videos and attachments of the FOSDEM 2020 web performance track, in MP4 format.

fosdem-dl talks -y 2020 -t web_performance -f mp4 -a

Development

The file devenv.nix declares a developer environment for this project. This file is used by devenv to create such environment. If you don't use devenv you can ignore this file, or use it to understand which dependencies are required by this project.

This project uses a bb.edn file to define a few Babashka tasks. You can type bb tasks to view them.

Download an unregistered version of pod-jackdbd-jsoup

A specific version of pod-jackdbd-jsoup might not be registered on the Babashka pod registry, but you can always download that pod from GitHub Releases.

Make sure to set the environment variable POD_JACKDBD_JSOUP_VERSION to the desired version, then run this script (you will need to have the GitHub CLI installed).

./download_pod_jackdbd_jsoup.sh

Note

pod-jackdbd-jsoup is available both as a binary and as an uberjar. This script will download both.

Namespace dependency graph

Dependency graph of the namespaces, generated with clj-hiera

Tests

Run all tests with either one of the following commands:

./test_runner.clj
bb test

TODO

  1. Bundle pod-jackdbd-jsoup in the binary compiled with GraamVM native-image.
  2. Make the destination directory configurable, to let the user decide where to download the files.
  3. Include the talk's links too? Maybe write them in a text/markdown file?
  4. Show a progress bar. See here.
  5. Consider implementing a GUI with pod-babashka-lanterna?

About


Languages

Language:Clojure 73.9%Language:Dockerfile 11.5%Language:Shell 9.2%Language:Nix 5.4%