Hi again Laura,
The URL you gave me no longer works. Not sure why you used a PM last time, so I won’t print the URL you gave me. However it does not work now.
This answer is quite old, but I did not find another one.
On Internet in a Box there is functionality to bulk load content in Ka-lite by language and any node in the content tree by reading the content meta data, traversing the tree, and downloading individual videos.
In Kolibri there is kolibri manage importchannel network .
In the above example from ES Khan Academy I have drilled down to a single topic. Is there a syntax for importchannel that allows me to import less than an entire channel?
These channel ids are stable for public channels, except in extreme circumstances. In the last 6 years there has only been a single instance where we have had to change the id of a public channel when doing an update, so you should be able to rely on this.
importchannel only imports the channel metadata, not the content.
What is not documented above is the ability to use --node_ids <node_id1>,<node_id2>... to only include specific folders/resources (if you specify a folder it will also import all descendant folders and resources), this can also be combined with --exclude_node_ids <node_id3>,<node_id4>... to exclude specific folders or resources.
That helps a great deal. How stable are the node_ids for public channels, especially Khan Academy? And how do I look them up (without manually accessing each url like above)?
For example I can set the following json for the iiab kalite loader and it will look up the assets in the database as well as compute the storage requirements.
The ids for nodes in public channels are also stable, as they are based off a predictable hash of the source that would only change if the source channel changed its unique identifiers.
In terms of getting them, they would have to be accessed either via the UI, the API, or by inspecting the channel database through a tool like SQLiteBrowser, for example.
Apologies, I made a typo, it should be --node_ids and --exclude_node_ids. I’ll correct the original post.
The APIs I was referring to were the internal ones used by Kolibri to navigate the topic tree in the import UI.
However, it may be simpler to just get the ids from the URLs as you are navigating the UI, this should be fairly straight forward if you want to import three specific topics.
tried restarting Kolibri but ES content still not there
the output was
INFO 2023-03-21 19:18:30,308 Setting availability to True of 81 LocalFile objects based on passed in checksums
INFO 2023-03-21 19:18:30,344 Setting availability of non-topic ContentNode objects based on LocalFile availability in 6 batches of 10000
INFO 2023-03-21 19:18:30,460 Annotating ContentNode objects with children for 6 levels
INFO 2023-03-21 19:18:30,593 Annotating ContentNode objects with children for level 6
INFO 2023-03-21 19:18:30,596 Annotating ContentNode objects with children for level 5
INFO 2023-03-21 19:18:30,617 Annotating ContentNode objects with children for level 4
INFO 2023-03-21 19:18:30,626 Annotating ContentNode objects with children for level 3
INFO 2023-03-21 19:18:30,629 Annotating ContentNode objects with children for level 2
INFO 2023-03-21 19:18:30,630 Annotating ContentNode objects with children for level 1
OK. I suspect the problem is with KOLIBRI_HOME not being set properly.