After some investigation I came across the following results:

- the JSInterpreter class in `youtube_dl/jsinterp.py` can run arbitrary
  JavaScript code by converting it to Python code.

  - This can be confirmed by doing at least one of the tests available
    inside `test/test_jsinterp.py`. I have chosen to use `test_call`
    test, and it says that the test was OK, meaning that the return
    string/number at the end is equal to 5, as expected by
    `self.assertEqual`.

- `youtube_dl/extractor/youtube.py` *does* make use of the entire
  JSInterpreter class and calls it the same way test_jsinterp.py does
  (using "JSInterpreter(").

Now the issue is, as Mx. Zaigralin pointed out: how should we categorize
youtube-dl?

a. As a web browser, in which case the GNU FSDG requirement to not
   depend on non-free software doesn't apply to it.

b. Not as a web browser, in which case the GNU FSDG requirement pointed
   in the item above applies.

Reply via email to