Apple Conferences Downloader
The Apple juice preservation
Sometime you live in place with no high speed internet available, or you just want to travel and still access Apple Conferences resources (like during a snow storm in Yellowstone NP).
Multiple "WWDC Downloader" applications exist, but I like organaized data, and they generally create a world a litlle bit too flat...
AppleConferenceDownloader organizes all files by conferences, sessions and resources.
Multiple sessions can reference the same resources, to not waste disk space, it shared all of them (using hard link, like Time Machine)
Sometimes you see a resource and wonder where it was referenced, "shortcut link" in the resource folder shows all the sessions that reference it.
Need to stop it before the end, or the network get lost? just restart AppleConferenceDownloader and skeep resources already downloaded,
Let's get started
Download the AppleConferenceDownloader.zip (available at the end of the page) and extract the application.
Start the program.
Select where to download
Select where you want to download the conference, by default it is inside the "Downloads" folder. You can change it with the "Select folder" button, from there you can create a new folder or select an existing one.
Select what to download
You can select SD or HD video, presentation slide (pdf), or available resources.
At this time (just after WWDC 2018) the following conferences will be downloaded:
- WWDC 2018
- Developer Insights
- Tech Talks
- WWDC 2017
- WWDC 2016
- WWDC 2015
- WWDC 2014
The exact list of conferences is downloaded from Apple server ("https://devimages-cdn.apple.com/wwdc-services/j06970e2/296E57DA-8CE8-4526-9A3E-F0D0E8BD6543/contents.json") and should be updated when new conferences are available.
Note: It is not possible to download only a subset of conference, but the conferences already downloaded will not be downloaded again in the future...
Start to download
Click on "Download" button.
The "Download" button changes to "Stop", click on it to request to stop before all download are completed. The application will stop after the current download is completed.
A message area gives an overview of what is currently downloaded.
A progress bar indicates the global progression.
If an error arrived during the processing, a description is added in red.
When all downloads are completed, the button changes back to "Download" and the progress bar is reset.
You can expect to download about 170 GB (for WWDC 2018 and previous, and without HD movies), that will take some time...
The "Apple Conferences" folder is created.
Inside you have one folder by conferences, and one folder "_sharedresources".
Conferences and sessions
For each conference, you get one subfolder by session, prefixed with the session ID.
Inside each session folder you get the video and slide, and one folder by resources associated with the session. In the previous screenshot, the conferences "WWDC 2018" contains the session "204", that contains the resource "412".
Each resource is present in the "_sharedresources" folder, and shared between sessions.
Each session includes a "hard link" to the resource, to avoid duplicating files when multiple sessions reference the same resources.
From the previous conference example, the resource 412 contains a file (*.md) that describes the resource, and two shortcuts that reference back the session where this resource is used, here both are from WWDC 2018, one is session 204, the other is sesion 234.
Some resource can include pdf file (like resource 415, 416, and 417).
Some other resource can include sample source archive (like 393), or other type of files that seems to be interesting to download.
Some resources like the 393 can be very popular bettween sessions.
Have fun, and let me know what you think about this little App.
|2018/07/13||v1.1||Log: yellow background text for new download. Gray text when no changes.|
AppleConferenceDownloader follow recomendation from MacOS Security to protect your computer:
- Gatekeeper friendly: signed with the Apple's developer ID of Pascal Mermoz.
- Sandboxed with limited privileges: access only the "Downloads" folder or the folder you specify, and outgoing network connection, nothing else.
To check the app binary sandbox state:
$ codesign -dvvv --entitlements :- AppleConferencesDownloader.app Executable=/Users/dev/Desktop/AppleConferencesDownloader.app/Contents/MacOS/AppleConferencesDownloader Identifier=net.mermoz.AppleConferencesDownloader Format=app bundle with Mach-O thin (x86_64) CodeDirectory v=20200 size=1989 flags=0x0(none) hashes=54+5 location=embedded Hash type=sha256 size=32 CandidateCDHash sha1=3202dfb9baeec672be415e7e582d4368c93aa7ed CandidateCDHash sha256=829baf5c563262f13f4ac6e73dea3fb2a747a9b3 Hash choices=sha1,sha256 CDHash=829baf5c563262f13f4ac6e73dea3fb2a747a9b3 Signature size=8915 Authority=Developer ID Application: Pascal Mermoz (93DJXX349P) Authority=Developer ID Certification Authority Authority=Apple Root CA Timestamp=Jun 15, 2018 at 16:49:12 Info.plist entries=23 TeamIdentifier=93DJXX349P Sealed Resources version=2 rules=13 files=22 Internal requirements count=1 size=232 <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> <plist version="1.0"> <dict> <key>com.apple.security.app-sandbox</key> <true/> <key>com.apple.security.files.downloads.read-write</key> <true/> <key>com.apple.security.files.user-selected.read-write</key> <true/> <key>com.apple.security.network.client</key> <true/> </dict> </plist>