{"id":15392684,"url":"https://github.com/jackdbd/fosdem-dl","last_synced_at":"2026-01-31T02:07:35.130Z","repository":{"id":82381032,"uuid":"338183712","full_name":"jackdbd/fosdem-dl","owner":"jackdbd","description":"CLI to download videos and slides from FOSDEM websites","archived":false,"fork":false,"pushed_at":"2024-10-10T18:30:02.000Z","size":4066,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-06-11T00:05:53.368Z","etag":null,"topics":["babashka","babashka-pods","cli","clojure","fosdem"],"latest_commit_sha":null,"homepage":"","language":"Clojure","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/jackdbd.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2021-02-11T23:53:30.000Z","updated_at":"2024-10-11T18:41:18.000Z","dependencies_parsed_at":"2024-10-19T00:17:15.757Z","dependency_job_id":"4823107d-36d0-4afb-b5ca-47691bb1542f","html_url":"https://github.com/jackdbd/fosdem-dl","commit_stats":{"total_commits":8,"total_committers":1,"mean_commits":8.0,"dds":0.0,"last_synced_commit":"71dee652f9744a371ac83aaf5fc7786243568839"},"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/jackdbd/fosdem-dl","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jackdbd%2Ffosdem-dl","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jackdbd%2Ffosdem-dl/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jackdbd%2Ffosdem-dl/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jackdbd%2Ffosdem-dl/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/jackdbd","download_url":"https://codeload.github.com/jackdbd/fosdem-dl/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jackdbd%2Ffosdem-dl/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28926633,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-30T22:32:35.345Z","status":"online","status_checked_at":"2026-01-31T02:00:09.179Z","response_time":128,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["babashka","babashka-pods","cli","clojure","fosdem"],"created_at":"2024-10-01T15:15:40.609Z","updated_at":"2026-01-31T02:07:35.112Z","avatar_url":"https://github.com/jackdbd.png","language":"Clojure","funding_links":[],"categories":[],"sub_categories":[],"readme":"# fosdem-dl (FOSDEM talks downloder)\n\n![CI/CD](https://github.com/jackdbd/fosdem-dl/actions/workflows/ci-cd.yaml/badge.svg)\n\nDownload all talks from a [FOSDEM](https://fosdem.org/) conference track in a specific year.\n\n## Installation\n\nfosdem-dl is distributed as an uberjar, a [Babashka uberjar](https://book.babashka.org/#_uberjar) and a container image.\n\n## Babashka uberjar (recommended)\n\nIf you have [Babashka](https://babashka.org/) installed on your machine, the recommended way to run this project is to download the Babashka uberjar from [GitHub Releases](https://github.com/jackdbd/fosdem-dl/releases) (it's the `.jar` without the `-standalone` suffix) and run it. For example, for version `0.1.0-RC.1`:\n\n```sh\nbb fosdem-dl-0.1.0-RC.1.jar\n```\n\n## Uberjar\n\nIf you prefer the \"standard\" uberjar, you can download it from [GitHub Releases](https://github.com/jackdbd/fosdem-dl/releases) and run it like this:\n\n```sh\njava -jar fosdem-dl-0.1.0-RC.1-standalone.jar\n```\n\n## Container image\n\nIn alternative, you can also pull the container image from [GitHub Packages](https://github.com/jackdbd/fosdem-dl/pkgs/container/fosdem-dl)...\n\n```sh\ndocker pull ghcr.io/jackdbd/fosdem-dl:latest\n```\n\n...and run it like this:\n\n```sh\ndocker run --rm ghcr.io/jackdbd/fosdem-dl:latest\n```\n\n\u003e [!TIP]\n\u003e You could create a bash alias instead of having to type that `docker run` command every single time.\n\n## Binary [TODO]\n\n\u003e [!WARNING]\n\u003e GraalVM native-image can generate a Linux binary from the uberjar, but it immediately crashes at runtime. I'm investigating the issue.\n\n## Usage\n\nThis project strives to follow the [Command Line Interface Guidelines](https://clig.dev/).\n\nThe CLI has two commands: `talks` and `tracks`.\n\n```sh\nFOSDEM Downloader\n\nUsage: fosdem-dl \u003ccommand\u003e [options]\nAvailable commands: tracks, talks\n```\n\nThis is the help for the `talks` command.\n\n```sh\nFOSDEM Downloader (talks)\n\nDownload all talks given at a conference track at FOSDEM a given year.\n\nOptions:\n  -a, --attachments       Whether to download each talk's attachments (PDFs, slides, etc)\n  -f, --format      :webm Video format #{:webm :mp4}\n  -h, --help              Help\n      --timeout     10000 HTTP connection timout in milliseconds\n  -t, --track             Conference track (e.g. databases)\n  -y, --year              Year of FOSDEM\n\nExamples:\nfosdem-dl talks -y 2020 --track databases [options]\n```\n\nThis is the help for the `tracks` command.\n\n```sh\nFOSDEM Downloader (tracks)\n\nList the tracks at FOSDEM a given year.\n\nOptions:\n  -h, --help Help\n  -y, --year Year of FOSDEM\n\nExamples:\nfosdem-dl tracks -y 2020\n```\n\n\u003e [!TIP]\n\u003e You can invoke the help of each command with `-h`, `--help`, `:h`, or `:help`.\n\n### Examples\n\nList all [FOSDEM 2020 conference tracks](https://archive.fosdem.org/2020/schedule/tracks/).\n\n```sh\nfosdem-dl tracks -y 2020\n```\n\nDownload all videos of the [FOSDEM 2018 python track](https://archive.fosdem.org/2018/schedule/track/python/), in WebM format.\n\n```sh\nfosdem-dl talks -y 2018 -t python\n```\n\nDownload all videos and attachments of the [FOSDEM 2020 web performance track](https://archive.fosdem.org/2020/schedule/track/web_performance/), in MP4 format.\n\n```sh\nfosdem-dl talks -y 2020 -t web_performance -f mp4 -a\n```\n\n## Development\n\n### Developer environment\n\nThe file [`devenv.nix`](./devenv.nix) declares a developer environment for this project. This file is used by [devenv](https://github.com/cachix/devenv) to create such environment. If you're cloning this repository and not using devenv, you can safely ignore this file. However, you can still use it as a reference to understand the project's required dependencies.\n\n### Tasks to manage the project\n\nThis project uses a [`bb.edn`](./bb.edn) file to define a few [Babashka tasks](https://book.babashka.org/#tasks). You can type `bb tasks` to view them. Some tasks might work only on Linux.\n\n### Download an unregistered version of `pod-jackdbd-jsoup`\n\nA specific version of `pod-jackdbd-jsoup` might not be *registered* on the [Babashka pod registry](https://github.com/babashka/pod-registry), but it might be available on [GitHub Releases](https://github.com/jackdbd/pod-jackdbd-jsoup/releases), so you can download it from there.\n\nMake 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](https://cli.github.com/) installed).\n\n```sh\n./download_pod_jackdbd_jsoup.sh\n```\n\n\u003e [!NOTE]\n\u003e `pod-jackdbd-jsoup` is available both as a binary and as an uberjar. This script will download both.\n\n### Namespace dependency graph\n\nThis graph represents the dependencies between the namespaces of this project. The graph was generated by [clj-hiera](https://github.com/greglook/clj-hiera).\n\n![Dependency graph of the namespaces, generated with clj-hiera](./resources/img/namespaces.png)\n\n### Tests\n\nRun all tests with either one of the following commands:\n\n```sh\n./test_runner.clj\nbb test\n```\n\n## TODO\n\n1. Bundle [pod-jackdbd-jsoup](https://github.com/jackdbd/pod-jackdbd-jsoup) in the binary compiled with GraamVM native-image.\n1. Make the destination directory configurable, to let the user decide where to download the files.\n1. Consider scraping each talk's links. Maybe write them in a text/markdown/JSON file.\n1. Show a progress bar. See [here](https://github.com/babashka/babashka.curl/issues/34).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjackdbd%2Ffosdem-dl","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjackdbd%2Ffosdem-dl","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjackdbd%2Ffosdem-dl/lists"}