url-rewrite is an elisp library for rewriting URLs. Usecases include redirecting to an random alternative client (e.g. invidious and nitter), removing tracking queries (e.g. utm parameters), replace a link by its redirect url which is encoded in one of its queries, converting a zoom link to a dial-in number, etc, etc.


One way to use it would be utilising the collection of building block functions for URL rewriting, like url-rw-replace-random-host and url-rw-remove-query.

Another, more streamlined usage would be:

  1. Declare rewriting rules in url-rw-rules (see url-rw-example-rules for example)
  2. Then declare some ad-hoc rewriting functions and add them to url-rw-extra-rewriters. An example is url-rw-example-zoom-to-dial.
  3. Eval (url-rw-refresh) to populate the rewrite function list url-rw-rewriters.
  4. The function url-rw can now be used on any url you wish to rewrite.

Copyright and contact

url-rewrite is maintained by Yuchen Pei <id@ypei.org> and covered by GNU AGPLv3+. You may find the license text in a file named COPYING.agpl3 in the project tree. For comments, bug reports or patches, please use the mailing list ~ycp/gym@lists.sr.ht.