Is there any way to host subtitles in a git repository for easier synchronization?

I spent 3.5 hours today to update 79 subtitle files! There’s got to be a better way!!!

I think there’s some sort of S3-like data storage infrastructure support for open edx right? Is there any way to perhaps store subtitles in a checked out repository on this S3 storage and then point videos at that, so that subtitles can be updated just by a git pull? I’m really open to any other sort of creative ways to make this easier, because this is going to break our backs in terms of support as we grow…

Since you mention git, in the past I’ve worked around many Studio bottlenecks such as the one you describe by authoring entire courses directly in OLX, version-controlling the source in git, then simply reimporting the course when needed. This works nicely because reimporting a course will basically just overwrite everything.

There even used to be a graphical way to point a course to git repository and reimport it straight from there in the “system dashboard”, but the dashboard itself is gone now (plus, it never really worked very well). But there is an API to do imports. At the time, we wrote olx-utils to do it remotely, as well as allowing some DRYing of the XML with a template engine.

Addendum: you could configure a git hook to publish a course whenever there is a git push, effectively turning publishing courses into a continous deployment flow.

Addendum 2: you can check if any of this would work for you by exporting a course into a tarball from Studio, extracting the OLX, making the changes you want (presumably to subtitles), tarballing everything back, then reimporting. If you get the desired results, then this would warrant further investigation.

This is an interesting idea. I will look into it.

At least to a first approximation, this doesn’t seem to work. I exported a class. Modified a subtitle file (course/static/ so that it had a clear change in the first line of the subtitles. Tar.gz’ed it back up. Imported the class. Went and looked at the subtitles for the video I modified, but they did not contain the modification.

I didn’t really understand what you meant by DRYing the XML, so do I need to poke some other timestamps or files or something to maybe make the import process think the thing I’m uploading is new (because maybe it looked entirely the same from an XML perspective so it decided there were no changes needed?)