{"id":18005574,"url":"https://github.com/eikek/meth","last_synced_at":"2025-10-08T08:14:53.488Z","repository":{"id":141852523,"uuid":"87637764","full_name":"eikek/meth","owner":"eikek","description":"Commandline client for mediathekview","archived":false,"fork":false,"pushed_at":"2022-06-18T19:52:26.000Z","size":402,"stargazers_count":6,"open_issues_count":0,"forks_count":1,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-03-21T15:39:57.500Z","etag":null,"topics":["command-line-tool","mediathek","mediathekview"],"latest_commit_sha":null,"homepage":null,"language":"Scala","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/eikek.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":"2017-04-08T13:59:19.000Z","updated_at":"2024-12-26T06:57:49.000Z","dependencies_parsed_at":null,"dependency_job_id":"bf9a97ea-fbf3-4abc-838d-13e9965364c3","html_url":"https://github.com/eikek/meth","commit_stats":null,"previous_names":[],"tags_count":8,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/eikek%2Fmeth","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/eikek%2Fmeth/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/eikek%2Fmeth/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/eikek%2Fmeth/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/eikek","download_url":"https://codeload.github.com/eikek/meth/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":245637118,"owners_count":20648095,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","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":["command-line-tool","mediathek","mediathekview"],"created_at":"2024-10-30T00:20:20.228Z","updated_at":"2025-10-08T08:14:48.446Z","avatar_url":"https://github.com/eikek.png","language":"Scala","funding_links":[],"categories":[],"sub_categories":[],"readme":"meth\n====\n\nThe name “meth” is short for “mediathek”, a german online media portal.\nMeth is a command line tool that allows to query, play and download\nmedia from various state channels. It uses the files build by [ZDF\nMediathek](https://mediathekview.de). It cannot work without it.\n\nInstall\n-------\n\nClone the repo and build it using [sbt](http://scala-sbt.org):\n\n``` {.shell .rundoc-block rundoc-language=\"shell\" rundoc-exports=\"code\"}\nsbt assembly\n```\n\nThen link the resulting executable `target/scala-2.12/meth-*` somewhere\nin your `$PATH`. For example:\n\n``` {.shell .rundoc-block rundoc-language=\"shell\" rundoc-exports=\"both\"}\nln -snf target/scala-2.12/meth-* ~/bin/meth\n```\n\nUsage\n-----\n\nThere are 3 main commands: query, play and download. The `query` command\naccepts a search string and prints the results. `Play` and `download`\nuse external tools `mpv` and `curl`, respectively.\n\n### Query\n\nThe search syntax is quite simple. There are few basic forms:\n\n1.  `key:value`\n2.  `value`\n3.  `dow:[sun|mon|tue|wed|thu|fri|sat]`\n4.  `\u003eX` or `\u003cX`\n\nThe first matches when `value` is contained in the field named `key`.\nAvailable keys are\n\n-   station\n-   subject\n-   title\n-   description\n-   date\n-   time\n-   new\n\nThe second variant matches when `value` is contained in either `subject`\nor `title`. Then it is possible to find shows aired on a specific\nweekday. Form 4 can be used to match shows with a duration greater or\nsmaller `X` minutes.\n\nThese forms can be combined with `or`, `and` and `not`:\n\n-   and: `(\u0026 ...)`\n-   or: `(| ...)`\n-   not: `-...`\n\nThe `-` in front of any term negates it. If many forms are separated by\nspace they are combined via `and`.\n\nExample: `meth refugee '\u003e10' dow:fri`\n\n### Download\n\nInstead of printing the results of a query, you can download these shows\nusing the download command. By default this calls out to the `curl`\nprogram. This can be configured in the config file. See the\n`reference.conf` file in `src/main/resources`.\n\nThe command allows to specify a filename using a pattern. The pattern is\nsimply a string with placeholders for data that is obtained from a show:\n\n-   station\n-   title\n-   subject\n-   year\n-   month\n-   day\n-   hour\n-   min\n-   date\n-   time\n\nA placeholder is specified by putting it inside a `%[]`. Example:\n`%[subject]-%[title]`. Note that any placeholder can evaluate to the\nempty string if there is no value (i.e. if it is mispelled).\n\nQuite often it is necessary to append or prepend text only if a\nplaceholder evaluates to non-empty. This can be achieved by this syntax:\n`%[subject|prepend-%[subject]-append]`. This means “check if there is a\nsubject value and if so evaluate the pattern after |”.\n\nThe default pattern is: `%[subject|%[subject]-%]%[title]-%[date]`.\n\n1.  thetvdb.com\n\n    Note: this is a very experimental feature.\n\n    It is possible to extend the set of placeholder variables by\n    searching the site \u003chttp://thetvdb.com\u003e. This allows to use\n    placeholders in the output file pattern with the information from\n    thetvdb.com. This can be useful to get e.g. the episode number to\n    generate file names that can be recognized by certain players like\n    kodi.\n\n    For this to work, you must register at thetvdb.com and add the\n    apikey to the config file. Also the series id of the series to\n    search must be supplied to the download command. At last there is\n    only one way to search: using the date of a show as the `firstAired`\n    date. But this must be selected explicitely using the\n    `--tvdb-firstaired` option.\n\n    All placeholders are prefixed by `tvdb.`.\n\n    Example: `s%[year]e%[tvdb.airedEpisodeNumber]_%[tvdb.episodeName]`\n\nConfigure\n---------\n\nYou can configure it via a file `~/.config/meth/meth.conf`. Every\nsetting there can be overriden by setting a system property. Use the\nenvironment variable `METH_JAVA_OPTS` for this.\n\nExample: `METH_JAVA_OPTS=-Dmeth.directory=/tmp/meth meth`\n\nThe [Config](https://github.com/typesafe/config) library is used. Please\nsee its documentation fo find out more. Please see the default config at\n`src/main/resources` for all options.\n\nExample\n-------\n\n![](./example.gif)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Feikek%2Fmeth","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Feikek%2Fmeth","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Feikek%2Fmeth/lists"}