Welcome to the Treehouse Community
Want to collaborate on code errors? Have bugs you need feedback on? Looking for an extra set of eyes on your latest project? Get support with fellow developers, designers, and programmers of all backgrounds and skill levels here with the Treehouse Community! While you're at it, check out some resources Treehouse students have shared here.
Looking to learn something new?
Treehouse offers a seven day free trial for new students. Get access to thousands of hours of content and join thousands of Treehouse students and alumni in the community today.
Start your free trialDownload Course Videos?
Hi I am getting an error message when I try to download the course videos. "Safari cannot open the website because the address is invalid" (im using an ipad) The wifi network at work is very slow so it would be very handy to download them to view offline during the day. Is anyone else experiencing this? Cheers Shane
14 Answers
Mike Croft
7,463 PointsAll I know is it tries to open itunes from the browser, I'm not sure if ipads can do that, on my widows computer I don't don't have itunes installed and I get the same error, on os x it works fine.
rayorke
27,709 PointsI have found the best way to view a downloaded video offline on my iPad is by using Goodreader or a similar iPad app.
This is the process I follow:
- Download the video to my Mac/PC
- Upload the video to my Dropbox account
- Connect to my Dropbox account with Goodreader
- Download the video to my iPad via Goodreader
Then, I am able to watch the video offline through Goodreader. It may seem like a complex process, but it works quite well.
Mike Croft
7,463 Pointsis it not possible to transfer, from iTunes to iPad?
I have had a look on iTunes, but a search for treehouse didn't return relevant hits. What should I search for?
Thanks for your responses, btw
Shane
Mike Croft
7,463 PointsI can't find them either, best bet, if no one else can find anything, is to wait til your at a computer with iTunes installed, click the link on Treehouse webpage then click the subscribe button on iTunes, you'll get a list of all the videos, download what you want from the list then transfer them across.
rayorke
27,709 PointsYou shouldn't need iTunes. Just download the mp4 video from the link at the bottom/side of the course page via your browser on your PC or Mac.
Right-click (or CTRL+click on a mac) and Save as...
Thanks guys. My computer is Linux based, so I don't have iTunes there. But I will try your suggestions Rhys. That sounds like it will work. Shane
Ben Russell
3,667 PointsJust moved onto an Ubuntu desktop and struggling to find an efficient way to watch the videos. The desktop is somewhat old and both firefox and Chromium don't appear to stream the videos too well (they are embedded as HTML5 I think?). I've tried setting it to Flash videos, via the link (hidden in the forums someplace - Is it easier to find?), and that still fails. Tried running iTunes under Wine and it fails to even run. Any ideas Linux/Treebies?
PS: I don't want to download each video individually - I'd rather stream them or download all of them.
Hope someone can help please?
Sugi Wijaya
669 PointsHi, I have been trying to download the videos via Itunes, but all it does after clicking the download feed button is open itunes, and I cant download anything to PC. Can someone help please?
Joey Moore
149 PointsI had the same problem on a PC, if you right click the link, copy the link location url, and then paste the url into your browser but remove the "itpc" prefix and replace it with http to get something like this:
you should then get an RSS version of the page with clickable, saveable mp4 file. I then imported the video to itunes.
Note to Treehouse: my expectation was that i would open the app and hit a download button next to the video i wanted to watch later when offline.
cheers
i then went into itunes and imported the new video files.
Will Hart
1,340 PointsRun this on a server to get download links in one central location
<?php
// Place your own unique token here
// ie. itpc://teamtreehouse.com/library/websites/build-a-simple-website.rss?feed_token=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
// $token = 'xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx';
$token = '';
// Place any itunes feeds here
// This is an almost complete list... I left off some beginner lessons
// This might compile slowly depending on server... You can split this array up
$urls = array(
'itpc://teamtreehouse.com/library/installing-a-ruby-development-environment.rss?feed_token='.$token,
'itpc://teamtreehouse.com/library/how-to-build-a-wordpress-plugin.rss?feed_token='.$token,
'itpc://teamtreehouse.com/library/implementing-designs-for-iphone.rss?feed_token='.$token,
'itpc://teamtreehouse.com/library/illustrator-foundations-3.rss?feed_token='.$token,
'itpc://teamtreehouse.com/library/usability-foundations.rss?feed_token='.$token,
'itpc://teamtreehouse.com/library/logo-design-basics.rss?feed_token='.$token,
'itpc://teamtreehouse.com/library/html-email-design.rss?feed_token='.$token,
'itpc://teamtreehouse.com/library/objectivec-basics.rss?feed_token='.$token,
'itpc://teamtreehouse.com/library/framework-basics.rss?feed_token='.$token,
'itpc://teamtreehouse.com/library/sass-basics.rss?feed_token='.$token,
'itpc://teamtreehouse.com/library/installing-a-ruby-development-environment.rss?feed_token='.$token,
'itpc://teamtreehouse.com/library/how-to-build-a-wordpress-plugin.rss?feed_token='.$token,
'itpc://teamtreehouse.com/library/implementing-designs-for-iphone.rss?feed_token='.$token,
'itpc://teamtreehouse.com/library/illustrator-foundations-3.rss?feed_token='.$token,
'itpc://teamtreehouse.com/library/usability-foundations.rss?feed_token='.$token,
'itpc://teamtreehouse.com/library/logo-design-basics.rss?feed_token='.$token,
'itpc://teamtreehouse.com/library/objectivec-basics.rss?'.$token,
'itpc://teamtreehouse.com/library/ios-foundations.rss?feed_token='.$token,
'itpc://teamtreehouse.com/library/build-a-simple-iphone-app-ios7-2.rss?feed_token='.$token,
'itpc://teamtreehouse.com/library/programming/build-a-simple-php-application.rss?feed_token='.$token,
'itpc://teamtreehouse.com/library/programming/building-social-features-in-ruby-on-rails.rss?feed_token='.$token,
'itpc://teamtreehouse.com/library/programming/build-a-simple-ruby-on-rails-application.rss?feed_token='.$token,
'itpc://teamtreehouse.com/library/programming/enhancing-a-simple-php-application.rss?feed_token='.$token,
'itpc://teamtreehouse.com/library/programming/using-php-with-mysql.rss?feed_token='.$token,
'itpc://teamtreehouse.com/library/programming/advanced-social-features-in-ruby-on-rails.rss?feed_token='.$token,
'itpc://teamtreehouse.com/library/programming/database-foundations.rss?feed_token='.$token,
'itpc://teamtreehouse.com/library/programming/ruby-foundations.rss?feed_token='.$token,
'itpc://teamtreehouse.com/library/programming/introduction-to-programming.rss?feed_token='.$token,
'itpc://teamtreehouse.com/library/programming/console-foundations.rss?feed_token='.$token,
'itpc://teamtreehouse.com/library/programming/git-basics.rss?feed_token='.$token,
'itpc://teamtreehouse.com/library/websites/build-a-responsive-website.rss?feed_token='.$token,
'itpc://teamtreehouse.com/library/websites/design-foundations.rss?feed_token='.$token,
'itpc://teamtreehouse.com/library/websites/build-an-interactive-website.rss?feed_token='.$token,
'itpc://teamtreehouse.com/library/websites/how-to-build-a-wordpress-theme.rss?feed_token='.$token,
'itpc://teamtreehouse.com/library/websites/html.rss?feed_token='.$token,
'itpc://teamtreehouse.com/library/websites/css-foundations-2.rss?feed_token='.$token,
'itpc://teamtreehouse.com/library/websites/website-basics.rss?feed_token='.$token,
'itpc://teamtreehouse.com/library/websites/aesthetic-foundations.rss?feed_token='.$token,
'itpc://teamtreehouse.com/library/websites/javascript-foundations.rss?feed_token='.$token,
'itpc://teamtreehouse.com/library/websites/photoshop-foundations.rss?feed_token='.$token,
'itpc://teamtreehouse.com/library/websites/accessibility.rss?feed_token='.$token,
'itpc://teamtreehouse.com/library/websites/technology-foundations.rss?feed_token='.$token,
'itpc://teamtreehouse.com/library/websites/illustrator-foundations.rss?feed_token='.$token,
'itpc://teamtreehouse.com/library/ios-development/build-a-simple-iphone-app.rss?feed_token='.$token,
'itpc://teamtreehouse.com/library/ios-development/build-a-blog-reader-iphone-app.rss?feed_token='.$token,
'itpc://teamtreehouse.com/library/ios-development/build-a-selfdestructing-message-iphone-app.rss?feed_token='.$token,
'itpc://teamtreehouse.com/library/ios-development/ios-foundations.rss?feed_token='.$token,
'itpc://teamtreehouse.com/library/business/how-to-start-a-business.rss?feed_token='.$token,
'itpc://teamtreehouse.com/library/business/how-to-build-your-company.rss?feed_token='.$token,
'itpc://teamtreehouse.com/library/business/how-to-market-your-business.rss?feed_token='.$token,
'itpc://teamtreehouse.com/library/business/careers-foundations.rss?feed_token='.$token,
'itpc://teamtreehouse.com/library/business/copyright-basics.rss?feed_token='.$token,
'itpc://teamtreehouse.com/library/business/how-to-run-a-web-design-business.rss?feed_token='.$token,
'itpc://teamtreehouse.com/library/business/how-to-build-your-business-through-blogging.rss?feed_token='.$token,
'itpc://teamtreehouse.com/library/android-development/build-a-simple-android-app.rss?feed_token='.$token,
'itpc://teamtreehouse.com/library/android-development/build-a-blog-reader-android-app.rss?feed_token='.$token
);
foreach ($urls as $url):
$url = str_replace("itpc://","http://",$url);
$xml = simplexml_load_file($url);
echo '<h2>'.$xml->channel[0]->title.'</h2>';
foreach ($xml->channel->item as $pixinfo):
$title=$pixinfo->title;
$link=$pixinfo->enclosure['url'];
// In chrome the HTML5 download attribute will auto download, no right clicking necessary
// Hold Alt plus Click will autodownload
echo '<a href="'.$link.'" download>'. $title .'</a><br>';
endforeach;
endforeach;
?>
Rushil Patel
1,664 PointsHow do you find your token??
juanbaezr
1,648 PointsI wrote this small python parser. It returns a list of curl commands ready to create the dirs and rename the downloaded files You can locate the itpc link along with the token by going to the course page and copying the itunes link.
python parser.py itpc://teamtreehouse.com/library/how-to-run-a-web-design-business.rss?feed_token=3453456457657asdfsdfsfd
#parser.py
import string
import sys
import urllib
import xml.etree.ElementTree as ET
arg=sys.argv[1]
feed=arg.replace("itpc://", "http://");
def formatString(unformatted):
unformatted=unformatted.lower()
unformatted=unformatted.strip()
unformatted=unformatted.replace("treehouse - ", "");
unformatted=unformatted.replace("&", "and");
unformatted=unformatted.translate(None, "'?()")
unformatted=unformatted.replace(" ", " ");
unformatted=unformatted.replace(" ", "-");
formatted=unformatted.replace("--", "-");
return formatted
def getList(listOfDicts, key):
return [i[key] for i in listOfDicts if key in i]
i=0
nChapter=0
nEpisode=0
oldChapter=''
extension='.mp4'
try:
f=urllib.urlopen(feed)
s=f.read()
episode=dict()
repository=list()
root = ET.fromstring(s)
for channel in root.iter('channel'):
course=formatString(channel.find('title').text)
for item in channel.iter('item'):
t=item.find('title').text
title= t.split(': ')
chapter=formatString(title[0])
name=formatString(title[1])
url=item.find('enclosure').get('url')
episode['course']=course
if oldChapter != chapter:
nChapter=nChapter+1
nEpisode=1
episode['chapter']=format(nChapter,"02d")+'-'+chapter
episode['name']=format(nEpisode,"02d")+'-'+name
episode['url']=url
episode['filename']=episode['name']+extension
repository.append(episode.copy())
i+=1
nEpisode+=1
oldChapter=chapter
for ep in repository:
output='treehouse/'+ep['course']+'/'+ep['chapter']+'/'+ep['filename']
print "curl --limit-rate 800K -L --create-dirs -o "+output+" "+ep['url']
except:
print "Error"
Jonathan Obino
3,155 PointsI have developed a little web app where you can insert your token and you can download videos from teamtreehouse http://jonathanobino.16mb.com/treehouse/
Oggie Prima Dita Putra
7,695 Pointsplease do subtitle
Iheb Ben Abdesslem
Courses Plus Student 71 Pointshow can i download the videos please ?,
Drake Matfield
15,714 PointsReplace the itpc with https in the link. It's not as computer fancy as others; but you'll be able to to see the RSS Feed as links of downloads. It's a start.