-
Notifications
You must be signed in to change notification settings - Fork 10k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Site request: Support for loom.com #27957
Comments
for this link - https://www.loom.com/share/31b41727a5b24dacb6c1417a565b2ebf |
@october262 stop leaving these comments. obviously OP knows how to download the video. he wants it added to youtube-dl. |
Yeah. It's almost trivially easy to download the video from it. It's just a simple cdn that you can just find from the network tab. And if it's multiple videos, I can just download them all and then combine them using ffmpeg. I just want to try and get this added so that it can help people in the future. |
Would there be any password-protected video examples? If no, my code can only support public videos.🙈 https://support.loom.com/hc/en-us/articles/360002235698-How-to-protect-your-videos-with-a-password |
I don't really have an enterprise account, so I can't make any dummy videos to test. I'll search around a bit and post a comment if I find one you can test on. Also, I believe it's possible to make playlists, as I found this: https://www.loom.com/share/folder/997db4db046f43e5912f10dc5f817b5c Looking at dev tools, it seems to GET to
So, to get a list of all videos within the folder you'd go like this:
Also, side note, I just noticed that when you record a video on loom it records a bunch of details about your computer and those are public LUL. |
I have added folder support c9f3667 to the Pull Request #28039. Hopefully, it passes all CI Tests. For requesting
Lol, they forgot to remind the user how to secure the video links. |
@wongyiuhang Could you test this url https://www.loom.com/share/0ae415e1035f4aec8207b7403c2563c5 please ? Does it download one file with no 403 error ? |
I just tried your link. It provides two formats, octet-stream(raw-url) and mp4(transcoded-url). It is my first to realise Loom does provide octet-stream, therefore my code only downloads *.mpd file. However, the mp4 format can be downloaded successfully. Additional notes: |
@wongyiuhang Thanks. I hope your PR will be approved soon. |
Looking forward for this PR |
Checklist
Example URLs
(More can be found by just searching for
site:loom.com/share
on a search engine like duckduckgo or google. These are just from their help pages.)Description
From what I understood from the loom website, it's basically like a shitier version of youtube that doesn't have public videos and requires you to install an extension/desktop app instead of using OBS. So basically worthless.
But, for some reason, my teacher decided to use it for a video she put up. (Since I don't want to dox myself, I just put support videos in the example URL list.) And since she was talking stupidly slowly, so I wanted to download it and then watch it. Turns out youtube-dl didn't already have that capability, so I'm opening an issue for it.
Anyway, the site seems to be simple enough. Ignoring their fancy JS player, the video turns out to literally just be a webm video that's downloaded from their cdn. (If you check the network logs when you watch a video, it seems to send a request with a URL that looks like:
https://cdn.loom.com/sessions/raw/[VIDEO-ID].webm?Expires=[EXPIRY-TIME]&Policy=[POLICY-VALUE]&Signature=[SIGNATURE-VALUE]&Key-Pair-Id=[KEY-PAIR]
. (Where[VIDEO-ID]
is from the main URL:https://www.loom.com/share/[VIDEO-ID]
)I don't know where the
POLICY-VALUE
,SIGNATURE-VALUE
, orKEY-PAIR
come from. It seems that the entireExpires=[EXPIRY-TIME]&
item can be removed, without it changing anything. (Though, if you remove the policy, it will say that it's missing the expiry. Not sure why, since it works without the expiry... Though, that could be unintentional on their end, and might be patched at some point.)This URL comes from a request the browser makes to the
https://www.loom.com/api/campaigns/sessions/[VIDEO-ID]/raw-url
URL, which returns a JSON formatted string, where theurl
key holds the reference to the cdn.If I just take that URL and do
youtube-dl https://cdn.loom.com/sessions/raw/. . .
, then it'll download the webm video properly. So implementing this shouldn't be too hard, just parse the video id, POST the endpoint for the cdn URL, and then download that like a normal webm/etc. video.Though, checking another URL it also seems to have this other video with a
.ts
extension?? idk, mpv says it's thempegts
format, encoded in h264. I don't recognize that format though.The URL I got that from is here. It also seems to have split that video into multiple parts, but I don't think it did that on other videos. Idk, I didn't look into how this works that much since I'm lazy.
If you guys decide not to implement this (because nobody uses this service), I'm fine with that too. I just wanted to make this because it seems like it'd be trivially easy to implement. (I would make a PR for it myself, except I'm a java developer and my python code looks like shit. You probably wouldn't want it anyway.)
The text was updated successfully, but these errors were encountered: