PyMiniRacer
tube-get
Our great sponsors
PyMiniRacer | tube-get | |
---|---|---|
4 | 1 | |
692 | 7 | |
2.9% | - | |
3.7 | 10.0 | |
5 days ago | over 1 year ago | |
Python | Python | |
ISC License | - |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
PyMiniRacer
-
YouTube-dl has a JavaScript interpreter written in 870 lines of Python
Embedding V8 can work quite well: https://github.com/sqreen/PyMiniRacer
You probably have to emulate some of the DOM, but you can interact directly with whatever obfuscated/packed scripts in a more lightweight and secure way than driving an entire browser.
-
connecting languages
First learn what forms computer code can be in. Source code combine js and python or to combine c and C++ object code with a linker or at runtime if you want to shell out and run from the prompt
-
Web Browser Engineering
If you want battle-hardened, I figure you can't do better than V8. Here's a Python wrapper that I've poked at a bit (it's not quite 100% feature-complete but it seems to essentially work): https://github.com/sqreen/PyMiniRacer
tube-get
-
YouTube-dl has a JavaScript interpreter written in 870 lines of Python
To understand why, I have a far simpler tool that focuses on a subset of sites (adult content video aggregators)
https://github.com/kristopolous/tube-get
It too deals with this problem but does so in a way that'd be easy to maliciously sabotage
Look right about here https://github.com/kristopolous/tube-get/blob/master/tube-ge...
Add to why this exists, this was originally written between about 2010-2015 or so so it technically predates the yt-* ecosystem.
The tool still works fine and it's not a strict subset of yt-dlp or YouTube-dl because being a different approach, although it's overall site coverage is smaller, I've had it be a "second try" system when yt-* fails and it comes up with success maybe about half the time
What are some alternatives?
quickjs - Thin Python wrapper of https://bellard.org/quickjs/
mini_racer - Minimal embedded v8
dukpy - Simple JavaScript interpreter for Python
pyduktape - Embed the Duktape JS interpreter in Python
Playwright - Playwright is a framework for Web Testing and Automation. It allows testing Chromium, Firefox and WebKit with a single API.
Duktape - Duktape - embeddable Javascript engine with a focus on portability and compact footprint
nitter - Alternative Twitter front-end
libv8-node - Package libv8 from Node
InsideReCaptcha - Reverse-engineering the new “captchaless” ReCaptcha system...