Mostly just because Angular just feels the best to me out of all the frameworks I've tried. I've built a few trivial apps in Backbone and Knockout and some more complex stuff with Ember, and Angular just works the way my mind works more than they do. I always feel like I know where everything needs to go (with Ember I constantly felt like I was doing it wrong) and the thick templating layer makes sense to me.
I'll have to disagree with you, I think that's a useful answer :)
It's good to hear these things even if it's just anecdotal and unquantifiable. I've only really worked with Ember and I feel the way you do. It's always interesting information from someone with experience in multiple frameworks (especially when they're all so young and we're all a bit lost as to which one to build our next project on).
Actually it is helpful, the money quote in your answer is: "Angular just works the way my mind works". You "marry" (or stay) a framework (after trying other options) because it makes sense to you, overall that's the way it should be.
1. One of the things I dig on the Youtube interface is being able to see immediately how long ago something was posted. As I (and many others) use YT as a music streaming site, a recently posted video is generally a sign that the sound quality is going to be better. Same goes for video actually. If it's posted in the last few years, the quality is likely to be HD. I suggest when you return a search result, you could place info on it when you hovered your mouse over the video pane. As you do this, the video still disappears and we get a series of specs on the video. I guess you could do this in your "upload date" field, but it seems to be limited to this month at the moment.
2. F* the haters - I loved how you didn't include the comments section in each video. I find no value in YT user comments. Whether someone is showing love or spitting vitriol (let's admit, 90%), I have never really found it added much to my user exp.
I prefer Angular over Ember/Backbone/Knockout just because it makes more sense to me and I like the templating layer, but there weren't any YouTube-specific advantages or anything if that's what you mean.
Perhaps part of the difference is that the PS3 is actually fairly underpowered by today's standards for general purpose computing (CPU intensive stuff, unless specifically made with their architecture in mind.)
This is a decent enough youtube front end, but I'm not seeing what the framework does for you? The whole app is very trivial, using he gdata api is simple javascript and the layout is again very simple. bootstrap and a few hours of javascript would accomplish the same thing? If it had used isotope js maybe to sort/filter the videos, or mayve vegas js for some interesting eye candy, but what's the big deal here?
Client side routing, infinite pager, auto-updating search results as filters/sorts are changed, good client side templating with on the fly updates, etc., are all made a lot easier by Angular.
If you're worried about page size then note that I'm not using jQuery or anything besides Angular and Angular is only like 76KB. If I removed Angular and put in jQuery and a few plugins then I'd be at roughly that same number, and I'd need more custom code to go with it. So why not use Angular?
Or, if you're just wondering why this is worthy of the HN frontpage, then I can't answer that. :)
I wasn't wondering why this was front page on hn, I've long again tried not to second guess what appeals to the masses. Just look at your own product's trending for that. Who'd have thought that Maru's first snow encounter would be youtube worthy!
I don't mind page size either, everything I've ever written has started out including jquery. Anyone that argues that jquery is too big doesn't have a clue what they are talking about (CDN's/Cache etc)
Having written dozens of web apps that use mustache, I totally get why you like client side templates (json+mustache is completely awesome), bootstrap is awesome.
My point was that with bootstrap, json, gdata, mustache etc the features you mention are all straightforward, no Angular required. Nothing wrong with AngularJS. No disrespect intended. I was just saying that I could have put that together with the technologies I mentioned very easily and quickly with all those features.
I liked it though, I wasn't trying to put down what you've done.
> I liked it though, I wasn't trying to put down what you've done.
Thanks! No worries!
> My point was that with bootstrap, json, gdata, mustache etc the features you mention are all straightforward, no Angular required.
Sure, but I could just as easily turn that around and say with angular, all these features are fairly straightforward, no jquery or bootstrap or mustache requred, right? Why is one better than the other? Or if they're not, why bring it up (serious question)?
Do you really lack this much tact? Why not build up your own YouTube frontend without any framework / library -- post it here, and then we can chide you for all the time you spent re-inventing numerous wheels?
I like it's clean and simple layout. Really nice work.
A little feedback: When someone is on video page, you have this icon http://d.pr/i/eOEE to increase video size. It looks more like an "index of categories" icon. I'd change that.
Also the left vertical bar to restore default layout, you are showing once video is full size is not apparent enough. I'll experiment some other colors or maybe a small "plus" like I did here http://typezebra.com.
Hi again, just wanted to let you know I changed the way toggling the sidebar works like you mentioned and I'd appreciate any feedback you have time to give? http://toogl.es/#/view/oFR4L6GegXA is an example link.
Nice. It's far more noticeable now. Perhaps you can change the icon to a smaller one when the video is full screen, just to indicate to user he is going to make screen smaller after clicking it.
Thanks, that's actually one of the parts of the site that I'm still unhappy with, glad it's not just me. I'm currently trying to work out a more user friendly way to handle that--I'll try out your suggestions. Thanks!
My first guesses were to click the whitespace around the video (since it doesn't take up all the window, just most of it), to press the escape key, and to press the back button. None of those did anything (except back, but that took me to the homepage instead of the video view), so they're what I'd use as starting points.
Hi there, just wanted to let you know I changed the way toggling the sidebar works and I'd appreciate any feedback you have time to give? http://toogl.es/#/view/oFR4L6GegXA is an example link.
Interesting. I'm currently running Arch Linux on my Acer Aspire One 722-BZ197. When I try and watch HD and fullscreen videos on YouTube that screen tears and the audio and video get out of sync, but when I use toogl I'm able to watch in 720p fullscreen with no problems whatsoever. I know my poor video performance can be largely blamed on poor graphics drivers, but I have found the new YouTube layout to be fairly slow and bloaty, which definitely contributes to the problem.
Great job. I've replaced the standard YouTube shortcut on chrome with a shortcut to Toogles, and I fully intend to use it from here on out.
I think the issues when watching YT maybe be due to YT still using Flash by default unless you opt-in for HTML5 at http://youtube.com/html5 ? I could be mistaken there, but it seems like the embeds show HTML5 by default but the main site still doesn't.
Anyways I'm super glad you like it, please give me a holler (contact info in profile) if you have any feedback or annoying issues.
That worked for me, although it also didn't include all the subscriptions. Could that be a bug on your end, or are some channels somehow private and not others?
What I'd really like is a quick way to dismiss some of the videos from my subscriptions that I don't want to watch. That way I can come back again later and see only the ones left. I realize this is really just a 'watch later' playlist, but I'd prefer to remove things (permanently) from my main subscription interface.
I don't see anything there (under favorites or subscriptions), but I didn't expect to, either, since I was never asked to log in.
It would be very nice, though, to be able to add videos from my subscriptions to my watch later list, and then watch that playlist while being able to reorder/remove videos.
One thing that drives me nuts about the new native interface is how it handles subscriptions. I mean the feed you get is actually not that bad, but it's way too cumbersome to get to see only your subscriptions.
Is it possible from youtube's API to authenticate a user and then access his subscriptions (and maybe even the aggregated feed based on them)?
Yup, that's possible. Adding authentication adds a ton of cool stuff I could do, but it also makes the app significantly more complicated and I'm not sure yet if I'm willing to go there. I'll think about it.
Pretty awesome! The one big feature I'm missing is comments (Not visible by default, but maybe they could appear from a button at the bottom of the description?) Also, it'd be nice if the time links worked (Some videos have times in the description that help you navigate, especially on full album uploads).
missing comments could very easily be seen as a bonus feature. The youtube comments are pretty much the lowest form of human intellect, mostly racist, sexisit or any other ist coupled with lol's and "work at home" spam. I am happy not to see another youtube comment in my life ever again.
I'm probably not going to integrate comments, but note that you can click the name of the video you're viewing to go to the YouTube page for it if you really want to see comments for it.
Would you mind linking to a video with a time in the description if you have one handy that I can use for testing?
I generally access YouTube by typing "yo" into Chrome's omnibar and hitting tab to search. If like me you want to take this for a spin without installing the Chrome Extension you can edit the search engines list in Chrome to replace the search URL for youtube.com with
This is great! I don't have Flash installed on my computer, so YouTube won't show me half of its videos (unless I'm already in fullscreen and it shows up as a thumbnail at the end, go figure). This lets me access every one in HTML5 without jumping through any hoops. Extra points for leaving out comments!
I've discovered a big problem. I get different search results from your site versus YouTube. One example, I searched for "Nook HD+" (with the quotes). I get more videos at YouTube than your site shows. How is that even possible? Is YouTube limiting what you can get from it?
You found a bug! Search on my site is ignoring the "+" (i.e., search for "Nook HD" returns the exact same results which accounts for the difference) probably because I forgot to urlencode the query. Will fix, thanks!
You know how you can do YouTube one better? Offer to remember Sort. I tend to use several search terms every day. Having to manually sort each one is a real PITA. If I'm searching for "Nook HD+" and sort This Month/Upload Date, I'd like a checkbox that would keep that sort automagically for the next search terms I enter. That YouTube doesn't offer that -- and saved searches -- is a huge FAIL on their part.
I've thought about this but my concern is that it might harm more than it hurts. For example, I search for music albums sometimes and filter by "long (20+ minutes)" for that, but the other 90% of the time when searching I don't want it to keep that filter, so it would be more of a pain. Thoughts on that?
Sorry. User error. I was hitting the wrong damn button for "Upload Date" -- do you see that's there twice in the left column? I was not hitting the one right below "Relevance." DUH.
EDIT to add: The confusion is because the second "Upload Date" even though a header, actually turns bold like a button when clicked on!
This is pretty cool! Not only is Angular my fav. js framework, but there are no comments underneath the videos. Sometimes while watching a video on YouTube I'll catch a glimpse of the user comments by accident and I'll feel dirty for the rest of the day. Bravo, sir.
Side note: I would really like to see an infographic on the average number of comments it takes for a thread on YouTube to degenerate into nothing but name calling and racial slurs. Maybe separated by category, and adjusted for number of views.
Really cool stuff.
I think about using it instead of the usual one.
One thing though : when switching from video to video (by clicking links at the end), the rest of the webpage doesn't update (at least on my computer).
Yeah, that's because the player is just a plain old iframe embed. I'm planning on adding related videos to the sidebar (as a hidden-by-default tab) which will hopefully help.
Youtube's default homepage is so cluttered I usually jump to my subscriptions immediately, with your framework I've actually been browsing youtube channels. Never happened before.
good job. adding recommendations would provide continuity. rating preview is a good feature; i've always wondered why youtube does not provide it by default.
Thanks. I was thinking of adding recommended videos as a tab (alongside an "Info" tab) when viewing a video, so you don't see it by default but you can click the tab to see them if you'd like. Does that implementation sound good to you?
I know this currently isn't discoverable and I'm working on that (and it's also funky because it's on every user page, not just your own, but I'm trying to avoid logins), but feel free to try it out and let me know if it does what you're after.
Do you have anything on https://www.youtube.com/my_subscriptions (i.e., new subscription videos)? It just displays the "new" ones, not all of them, due to a limitation in the YouTube gdata API.
This actually doesn't use Node (or any server side code) at all--it's 100% client side. It queries the YouTube gdata API using JSONP.
I'm a little surprised at how fast it is though--I think it's mostly due to the fact that YouTube returns API requests really really quickly and Angular does a good job of reacting quickly, plus I'm not using jQuery or anything besides Angular that could slow things down.
Not sure what you mean? Why would it consume a lot of bandwidth? Videos and images are streamed directly from YouTube and all of the API interaction happens client side so it doesn't go through my server at all.
If you like it, there's a Chrome extension to redirect YouTube video pages to Toogles here: https://chrome.google.com/webstore/detail/toogles/kljfdbkcac...