From 791c62508c00de07e3190c078824d8277926673d Mon Sep 17 00:00:00 2001 From: liam4 Date: Sun, 11 Jun 2017 12:29:17 -0300 Subject: Add a bunch of code commenting, and a skip up-next method --- bill.json | 3682 ++++++++++++++++++++++++++++++++++++++++++++++ local.json | 90 ++ src/http-music.js | 6 +- src/loop-play.js | 87 +- src/promisify-process.js | 24 +- todo.txt | 1 + wynn.json | 338 +++++ yt.json | 54 + 8 files changed, 4255 insertions(+), 27 deletions(-) create mode 100644 bill.json create mode 100644 local.json create mode 100644 wynn.json create mode 100644 yt.json diff --git a/bill.json b/bill.json new file mode 100644 index 0000000..b65b4e7 --- /dev/null +++ b/bill.json @@ -0,0 +1,3682 @@ +[ + [ + "in california", + "http://www.billwurtz.com/in-california.mp3" + ], + [ + "history of the entire world, i guess", + "http://www.billwurtz.com/history-of-the-entire-world-i-guess.html" + ], + [ + "alphabet shuffle", + "http://www.billwurtz.com/alphabet-shuffle.mp4" + ], + [ + "old macdonald", + "http://www.billwurtz.com/old-macdonald.mp4" + ], + [ + "what is love?", + "http://www.billwurtz.com/what-is-love.mp4" + ], + [ + "snail time", + "http://www.billwurtz.com/snail-time.mp4" + ], + [ + "content", + "http://www.billwurtz.com/content.mp4" + ], + [ + "thinkin bout doin some content", + "http://www.billwurtz.com/thinkin-bout-doin-some-content.mp4" + ], + [ + "history of japan", + "http://www.billwurtz.com/history-of-japan.html" + ], + [ + "gonna clean my room", + "http://www.billwurtz.com/gonna-clean-my-room.mp4" + ], + [ + "do re mi", + "http://www.billwurtz.com/do-re-mi.mp4" + ], + [ + "ways to be a more compassionate person, in the wintertime", + "http://www.billwurtz.com/ways-to-be-a-more-compassionate-person-in-the-wintertime.mp4" + ], + [ + "i hate myself", + "http://www.billwurtz.com/i-hate-myself.mp4" + ], + [ + "facts about plastic", + "http://www.billwurtz.com/facts-about-plastic.mp4" + ], + [ + "tomato anxiety", + "http://www.billwurtz.com/tomato-anxiety.mp4" + ], + [ + "imaginary baking school", + "http://www.billwurtz.com/imaginary-baking-school.mp4" + ], + [ + "got a home by the bay", + "http://www.billwurtz.com/got-a-home-by-the-bay.mp4" + ], + [ + "how about going to the mall", + "http://www.billwurtz.com/how-about-going-to-the-mall.mp4" + ], + [ + "it's ok to have feelings", + "http://www.billwurtz.com/its-ok-to-have-feelings.mp4" + ], + [ + "backwards hangman", + "http://www.billwurtz.com/backwards-hangman.mp4" + ], + [ + "cruel sports", + "http://www.billwurtz.com/cruel-sports.mp4" + ], + [ + "cool sports", + "http://www.billwurtz.com/cool-sports.mp4" + ], + [ + "throw away the garbage pail", + "http://www.billwurtz.com/throw-away-the-garbage-pail.mp4" + ], + [ + "being a human, explained", + "http://www.billwurtz.com/being-a-human-explained.mp4" + ], + [ + "biscuit challenge", + "http://www.billwurtz.com/biscuit-challenge.mp4" + ], + [ + "chips (sponsored)", + "http://www.billwurtz.com/chips.mp4" + ], + [ + "hope you have a good day", + "http://www.billwurtz.com/hope-you-have-a-good-day.mp4" + ], + [ + "gotta write something down", + "http://www.billwurtz.com/gotta-write-something-down.mp4" + ], + [ + "jingle bells", + "http://www.billwurtz.com/jingle-bells.mp4" + ], + [ + "homework help", + "http://www.billwurtz.com/homework-help.mp4" + ], + [ + "birthday ideas", + "http://www.billwurtz.com/birthday-ideas.mp4" + ], + [ + "conversations with a pizza pie", + "http://www.billwurtz.com/conversations-with-a-pizza-pie.mp4" + ], + [ + "how to remember your name", + "http://www.billwurtz.com/how-to-remember-your-name.mp4" + ], + [ + "i've been thinking", + "http://www.billwurtz.com/ive-been-thinking.mp4" + ], + [ + "holiday clarification", + "http://www.billwurtz.com/holiday-clarification.mp4" + ], + [ + "babies", + "http://www.billwurtz.com/babies.mp4" + ], + [ + "don't let the world be terrible", + "http://www.billwurtz.com/dont-let-the-world-be-terrible.mp4" + ], + [ + "fish opinions", + "http://www.billwurtz.com/fish-opinions.mp4" + ], + [ + "movies", + "http://www.billwurtz.com/movies.mp4" + ], + [ + "physics lesson", + "http://www.billwurtz.com/physics-lesson.mp4" + ], + [ + "i know of a cool place to go", + "http://www.billwurtz.com/i-know-of-a-cool-place-to-go.mp4" + ], + [ + "make things real", + "http://www.billwurtz.com/make-things-real.mp4" + ], + [ + "party ideas", + "http://www.billwurtz.com/party-ideas.mp4" + ], + [ + "i'm a loser", + "http://www.billwurtz.com/im-a-loser.mp4" + ], + [ + "house building checklist", + "http://www.billwurtz.com/house-building-checklist.mp4" + ], + [ + "pick a card", + "http://www.billwurtz.com/pick-a-card.mp4" + ], + [ + "turkeys", + "http://www.billwurtz.com/turkeys.mp4" + ], + [ + "music", + "http://www.billwurtz.com/music.mp4" + ], + [ + "advantages to living in the future", + "http://www.billwurtz.com/advantages-to-living-in-the-future.mp4" + ], + [ + "downstairs", + "http://www.billwurtz.com/downstairs.mp4" + ], + [ + "monday pop quiz", + "http://www.billwurtz.com/monday-pop-quiz.mp4" + ], + [ + "japan script", + "http://www.billwurtz.com/history-of-japan-script.html" + ], + [ + "i live at kosciuszko street", + "http://www.billwurtz.com/i-live-at-kosciuszko-street.mp4" + ], + [ + "smiling techniques step 2", + "http://www.billwurtz.com/smiling-techniques-step-2.mp4" + ], + [ + "smiling techniques", + "http://www.billwurtz.com/smiling-techniques.mp4" + ], + [ + "biography", + "http://www.billwurtz.com/biography.mp4" + ], + [ + "questions, for personal reflection", + "http://www.billwurtz.com/questions-for-personal-reflection.mp4" + ], + [ + "how to fly a plane", + "http://www.billwurtz.com/how-to-fly-a-plane.mp4" + ], + [ + "monday update on the world", + "http://www.billwurtz.com/monday-update-on-the-world.mp4" + ], + [ + "qualities of a good leader", + "http://www.billwurtz.com/qualities-of-a-good-leader.mp4" + ], + [ + "the halloween song", + "http://www.billwurtz.com/halloween-song.mp4" + ], + [ + "q&a with plants", + "http://www.billwurtz.com/q-and-a-with-plants.mp4" + ], + [ + "i'm from the west coast", + "http://www.billwurtz.com/im-from-the-west-coast.mp4" + ], + [ + "reasons to be king", + "http://www.billwurtz.com/reasons-to-be-king.mp4" + ], + [ + "graveyard analysis", + "http://www.billwurtz.com/graveyard-analysis.mp4" + ], + [ + "word unscramble 5", + "http://www.billwurtz.com/word-unscramble-5.mp4" + ], + [ + "daily schedule", + "http://www.billwurtz.com/daily-schedule.mp4" + ], + [ + "go down south", + "http://www.billwurtz.com/go-down-south.mp4" + ], + [ + "stop sign analysis", + "http://www.billwurtz.com/stop-sign-analysis.mp4" + ], + [ + "gonna buy a car and then change it", + "http://www.billwurtz.com/gonna-buy-a-car-and-then-change-it.mp4" + ], + [ + "ideas", + "http://www.billwurtz.com/ideas.mp4" + ], + [ + "how to be cool", + "http://www.billwurtz.com/how-to-be-cool.mp4" + ], + [ + "how to touch the sky", + "http://www.billwurtz.com/how-to-touch-the-sky.mp4" + ], + [ + "goats", + "http://www.billwurtz.com/goats.mp4" + ], + [ + "no seriously, how do you find love", + "http://www.billwurtz.com/no-seriously-how-do-you-find-love.mp4" + ], + [ + "how do you find love?", + "http://www.billwurtz.com/how-do-you-find-love.mp4" + ], + [ + "i'm a person", + "http://www.billwurtz.com/im-a-person.mp4" + ], + [ + "the high class stuff", + "http://www.billwurtz.com/the-high-class-stuff.mp4" + ], + [ + "i'm alone in the universe", + "http://www.billwurtz.com/im-alone-in-the-universe.mp4" + ], + [ + "times it can be", + "http://www.billwurtz.com/times-it-can-be.mp4" + ], + [ + "improv lessons (8.8.08)", + "http://www.billwurtz.com/improv-lessons-bbb.mp4" + ], + [ + "find out how it always was", + "http://www.billwurtz.com/find-out-how-it-always-was.mp4" + ], + [ + "fell in love on the q train", + "http://www.billwurtz.com/fell-in-love-on-the-q-train.mp4" + ], + [ + "list of cool things to do", + "http://www.billwurtz.com/list-of-cool-things-to-do.mp4" + ], + [ + "hats", + "http://www.billwurtz.com/hats.mp4" + ], + [ + "possibilities", + "http://www.billwurtz.com/possibilities.mp4" + ], + [ + "word unscramble 4", + "http://www.billwurtz.com/word-unscramble-4.mp4" + ], + [ + "tfw when you'r when when when tfw #2015 affff", + "http://www.billwurtz.com/tfw2015.mp4" + ], + [ + "gonna do the thing (finally do the thing)", + "http://www.billwurtz.com/gonna-do-the-thing-finally-do-the-thing.mp4" + ], + [ + "gonna write bad bad songs, til i ruin someone's day", + "http://www.billwurtz.com/gonna-write-bad-bad-songs.mp4" + ], + [ + "david letterman", + "http://www.billwurtz.com/david-letterman.mp4" + ], + [ + "harmonizing the weather lady", + "http://www.billwurtz.com/harmonizing-the-weather-lady.mp4" + ], + [ + "what's the universe made of?", + "http://www.billwurtz.com/whats-the-universe-made-of.mp4" + ], + [ + "word unscramble 3", + "http://www.billwurtz.com/word-unscramble-3.mp4" + ], + [ + "chords", + "http://www.billwurtz.com/chords.mp4" + ], + [ + "flunk the world", + "http://www.billwurtz.com/flunk-the-world.mp4" + ], + [ + "what are you waiting for you dumb stupid fuck", + "http://www.billwurtz.com/what-are-you-waiting-for-you-dumb-stupid-fuck.mp4" + ], + [ + "gonna chase myself thru hell", + "http://www.billwurtz.com/gonna-chase-myself-thru-hell.mp4" + ], + [ + "parrot or carrot", + "http://www.billwurtz.com/parrot-or-carrot.mp4" + ], + [ + "behind the scenes", + "http://www.billwurtz.com/behind-the-scenes.mp4" + ], + [ + "word unscramble 2", + "http://www.billwurtz.com/word-unscramble-2.mp4" + ], + [ + "how to play a C major scale", + "http://www.billwurtz.com/how-to-play-a-c-major-scale.mp4" + ], + [ + "just opened the letter i wrote to myself and it says i'm a stupid idiot", + "http://www.billwurtz.com/just-opened-the-letter-i-wrote-to-myself.mp4" + ], + [ + "i wrote a letter to myself and now i'm opening it", + "http://www.billwurtz.com/i-wrote-a-letter-to-myself-and-now-im-opening-it.mp4" + ], + [ + "world peace (ft. bwb)", + "http://www.billwurtz.com/world-peace-ft-bwb.mp4" + ], + [ + "do you like music", + "http://www.billwurtz.com/do-you-like-music.mp4" + ], + [ + "word unscramble", + "http://www.billwurtz.com/word-unscramble.mp4" + ], + [ + "how to play the wrong notes", + "http://www.billwurtz.com/how-to-play-the-wrong-notes.mp4" + ], + [ + "just wanna make Longer videos", + "http://www.billwurtz.com/just-wanna-make-longer-videos.mp4" + ], + [ + "abcdefghijk (featuring bill wurtz band)", + "http://www.billwurtz.com/abcdefghijk.mp4" + ], + [ + "what's 2 + 2", + "http://www.billwurtz.com/whats-2-plus-2.mp4" + ], + [ + "what time is it", + "http://www.billwurtz.com/what-time-is-it.mp4" + ], + [ + "monday encyclopedia review", + "http://www.billwurtz.com/monday-encyclopedia-review.mp4" + ], + [ + "music school", + "http://www.billwurtz.com/music-school.mp4" + ], + [ + "time to rearrange my world", + "http://www.billwurtz.com/time-to-rearrange-my-world.mp4" + ], + [ + "(out there doin stuff like)", + "http://www.billwurtz.com/out-there-doin-stuff-like.mp4" + ], + [ + "bwb, pt. iii", + "http://www.billwurtz.com/bwb-pt-iii.mp4" + ], + [ + "happy birthday", + "http://www.billwurtz.com/happy-birthday.mp4" + ], + [ + "history of the world", + "http://www.billwurtz.com/history-of-the-world.mp4" + ], + [ + "monday rules of no-rule golf", + "http://www.billwurtz.com/monday-rules-of-no-rule-golf.mp4" + ], + [ + "it's 2015, and i got to go crazy", + "http://www.billwurtz.com/its-2015-and-i-got-to-go-crazy.mp4" + ], + [ + "still a piece of garbage", + "http://www.billwurtz.com/still-a-piece-of-garbage.mp4" + ], + [ + "i'm a piece of garbage", + "http://www.billwurtz.com/im-a-piece-of-garbage.mp4" + ], + [ + "band practice", + "http://www.billwurtz.com/band-practice.mp4" + ], + [ + "q&a: are you gonna sing every day", + "http://www.billwurtz.com/are-you-gonna-sing-every-day.mp4" + ], + [ + "space toast", + "http://www.billwurtz.com/space-toast.mp4" + ], + [ + "monday explanation of life", + "http://www.billwurtz.com/monday-explanation-of-life.mp4" + ], + [ + "can't write songs so i'll just make a silly thing", + "http://www.billwurtz.com/cant-write-songs-so-ill-just-make-a-silly-thing.mp4" + ], + [ + "Are you the Real You?", + "http://www.billwurtz.com/are-you-the-real-you.mp4" + ], + [ + "i'm gonna figure out what everything means", + "http://www.billwurtz.com/im-gonna-figure-out-what-everything-means.mp4" + ], + [ + "sound check", + "http://www.billwurtz.com/sound-check.mp4" + ], + [ + "q&a: the music", + "http://www.billwurtz.com/the-music.mp4" + ], + [ + "q&a: how do you make your videos?", + "http://www.billwurtz.com/how-do-you-make-your-videos.mp4" + ], + [ + "monday mountain of shame & regret", + "http://www.billwurtz.com/monday-mountain-of-shame-and-regret.mp4" + ], + [ + "just wish i could make some music", + "http://www.billwurtz.com/just-wish-i-could-make-some-music.mp4" + ], + [ + "got to know (just)", + "http://www.billwurtz.com/got-to-know-just.mp4" + ], + [ + "laws of the universe (and the world)", + "http://www.billwurtz.com/laws-of-the-universe-and-the-world.mp4" + ], + [ + "nap time", + "http://www.billwurtz.com/nap-time.mp4" + ], + [ + "how not to make a video", + "http://www.billwurtz.com/how-not-to-make-a-video.mp4" + ], + [ + "how to make a video", + "http://www.billwurtz.com/how-to-make-a-video.mp4" + ], + [ + "monday spelling test", + "http://www.billwurtz.com/monday-spelling-test.mp4" + ], + [ + "day 3", + "http://www.billwurtz.com/day-3.mp4" + ], + [ + "out of videos", + "http://www.billwurtz.com/out-of-videos2.mp4" + ], + [ + "out of videos", + "http://www.billwurtz.com/out-of-videos.mp4" + ], + [ + "[[vine content horizon]]", + "http://www.billwurtz.com/vine-content-horizon.jpg" + ], + [ + "self image", + "http://www.billwurtz.com/self-image.mp4" + ], + [ + "monday good trade", + "http://www.billwurtz.com/monday-good-trade.mp4" + ], + [ + "fan mail", + "http://www.billwurtz.com/fan-mail.mp4" + ], + [ + "how big is the earth?", + "http://www.billwurtz.com/how-big-is-the-earth.mp4" + ], + [ + "breakfast thoughts", + "http://www.billwurtz.com/breakfast-thoughts.mp4" + ], + [ + "monday riddles and pop quizzes", + "http://www.billwurtz.com/monday-riddles-and-pop-quizzes.mp4" + ], + [ + "What To Expect in the Media and Television in 2016", + "http://www.billwurtz.com/what-to-expect-in-the-media-and-television-in-2016.mp4" + ], + [ + "how to undo a bad decision", + "http://www.billwurtz.com/how-to-undo-a-bad-decision.mp4" + ], + [ + "do you ever get tired of yourself?", + "http://www.billwurtz.com/do-you-ever-get-tired-of-yourself.mp4" + ], + [ + "how to scare a penguin", + "http://www.billwurtz.com/how-to-scare-a-penguin.mp4" + ], + [ + "big dreams (and goals)", + "http://www.billwurtz.com/big-dreams-and-goals.mp4" + ], + [ + "monday candle trivia", + "http://www.billwurtz.com/monday-candle-trivia.mp4" + ], + [ + "", + [] + ], + [ + "All About The Music Business", + "http://www.billwurtz.com/all-about-the-music-business.mp4" + ], + [ + "intelligence test (for rocks)", + "http://www.billwurtz.com/intelligence-test-for-rocks.mp4" + ], + [ + "sing a really dumb song", + "http://www.billwurtz.com/sing-a-really-dumb-song.mp4" + ], + [ + "how to make mistak", + "http://www.billwurtz.com/how-to-make-mistakes.mp4" + ], + [ + "bill wurtz questions", + "http://www.billwurtz.com/bill-wurtz-questions.mp4" + ], + [ + "mule thoughts", + "http://www.billwurtz.com/mule-thoughts.mp4" + ], + [ + "\"you're free to do whatever you want to\"", + "http://www.billwurtz.com/youre-free-to-do-whatever-you-want-to.mp4" + ], + [ + "i like salad", + "http://www.billwurtz.com/i-like-salad.mp4" + ], + [ + "monday the code for my bank account", + "http://www.billwurtz.com/monday-the-code-for-my-bank-account.mp4" + ], + [ + "eat trees", + "http://www.billwurtz.com/eat-trees.mp4" + ], + [ + "monday balloon fight", + "http://www.billwurtz.com/monday-balloon-fight.mp4" + ], + [ + "(highfail)", + "http://www.billwurtz.com/highfail.jpg" + ], + [ + "summer vacation plans", + "http://www.billwurtz.com/summer-vacation-plans.mp4" + ], + [ + "monday bean trivia", + "http://www.billwurtz.com/monday-bean-trivia.mp4" + ], + [ + "christnuts, new zealand", + "http://www.billwurtz.com/christnuts-newzealand.mp3" + ], + [ + " (i)", + "http://jerkcity.com/_jerkcity782.html" + ], + [ + "a neat thing to do in your spare time", + "http://www.billwurtz.com/a-neat-thing-to-do-in-your-spare-time.mp4" + ], + [ + "monday trivia", + "http://www.billwurtz.com/monday-fire-breathing-camel-trivia.mp4" + ], + [ + "\"i'm crazy / it's raining\"", + "http://www.billwurtz.com/im-crazy-its-raining.mp4" + ], + [ + "how to get more high than you already are", + "http://www.billwurtz.com/how-to-get-more-high.mp4" + ], + [ + "how to open a door", + "http://www.billwurtz.com/how-to-open-a-door.mp4" + ], + [ + "cool ideas", + "http://www.billwurtz.com/cool-ideas.mp4" + ], + [ + "crime facts", + "http://www.billwurtz.com/crime-facts.mp4" + ], + [ + "bill wurtz plans for the future", + "http://www.billwurtz.com/bill-wurtz-plans-for-the-future.mp4" + ], + [ + "types of dragons", + "http://www.billwurtz.com/types-of-dragons.mp4" + ], + [ + "exciting and interesting topics of discussion", + "http://www.billwurtz.com/exciting-and-interesting-topics-of-discussion.mp4" + ], + [ + "how to make changes", + "http://www.billwurtz.com/how-to-make-changes.mp4" + ], + [ + "stunning realizations", + "http://www.billwurtz.com/stunning-realizations.mp4" + ], + [ + "why the president is such a cool guy", + "http://www.billwurtz.com/why-the-president-is-such-a-cool-guy.mp4" + ], + [ + "hints and tips", + "http://www.billwurtz.com/hints-and-tips.mp4" + ], + [ + "this is a video", + "http://www.billwurtz.com/this-is-a-video.mp4" + ], + [ + "advice to young musicians", + "http://www.billwurtz.com/advice-to-young-musicians.mp4" + ], + [ + "monday cactus analysis", + "http://www.billwurtz.com/monday-cactus-analysis.mp4" + ], + [ + "cool facts about bill wurtz", + "http://www.billwurtz.com/cool-facts.mp4" + ], + [ + "how to listen to music", + "http://www.billwurtz.com/how-to-listen-to-music.mp4" + ], + [ + "lizards are great", + "http://www.billwurtz.com/lizards-are-great.mp4" + ], + [ + "monday reasons i didn't do a monday video for the last 11 mondays", + "http://www.billwurtz.com/monday-reasons.mp4" + ], + [ + "music is cool", + "http://www.billwurtz.com/music-is-cool.mp4" + ], + [ + "i'm gonna do the things that i gotta do", + "http://www.billwurtz.com/im-gonna-do-the-things-that-i-gotta-do.mp3" + ], + [ + "jazz", + "http://www.billwurtz.com/jazz.html" + ], + [ + "re videos", + "http://www.billwurtz.com/re-videos.mp4" + ], + [ + "bench", + "http://www.billwurtz.com/bench.mp4" + ], + [ + "christmas video", + "http://www.billwurtz.com/christmas-video.mp4" + ], + [ + "monday church replacement", + "http://www.billwurtz.com/monday-church-replacement.mp4" + ], + [ + "bad whale", + "http://www.billwurtz.com/bad-whale.mp4" + ], + [ + "asdfjaisdfjiasdjf", + "http://www.billwurtz.com/asdfjaisdfjiasdjf.mp4" + ], + [ + "fun game", + "http://www.billwurtz.com/fun-game.mp4" + ], + [ + "list of videos i've made", + "http://www.billwurtz.com/list-of-videos-ive-made.mp4" + ], + [ + "monday soccer tips", + "http://www.billwurtz.com/monday-soccer-tips.mp4" + ], + [ + "origin of chickens", + "http://www.billwurtz.com/origin-of-chickens.mp4" + ], + [ + "origin of pineapples", + "http://www.billwurtz.com/origin-of-pineapples.mp4" + ], + [ + "origin of the earth", + "http://www.billwurtz.com/origin-of-the-earth.mp4" + ], + [ + "how to do more things", + "http://www.billwurtz.com/how-to-do-more-things.mp4" + ], + [ + "monday poem", + "http://www.billwurtz.com/monday-poem.mp4" + ], + [ + "music video: rock'n'roll confusion", + "http://www.billwurtz.com/rocknroll-confusion.mp4" + ], + [ + "music video: apple juice", + "http://www.billwurtz.com/apple-juice.mp4" + ], + [ + "music video: i'm not sure", + "http://www.billwurtz.com/im-not-sure.mp4" + ], + [ + "music video: grow mushrooms on the sidewalk", + "http://www.billwurtz.com/grow-mushrooms-on-the-sidewalk.mp4" + ], + [ + "monday thanks video", + "http://www.billwurtz.com/monday-thanks-video.mp4" + ], + [ + "music video: hey baby, buy my car", + "http://www.billwurtz.com/hey-baby-buy-my-car.mp4" + ], + [ + "music video: don't look in a boot", + "http://www.billwurtz.com/dont-look-in-a-boot.mp4" + ], + [ + "music video: i have the heebity deebitys", + "http://www.billwurtz.com/heebity-deebitys.mp4" + ], + [ + "music video: lima beans", + "http://www.billwurtz.com/lima-beans.mp4" + ], + [ + "monday good firetruck", + "http://www.billwurtz.com/monday-good-firetruck.mp4" + ], + [ + "how to make sense", + "http://www.billwurtz.com/how-to-make-sense.mp4" + ], + [ + "music video: sickness as usual", + "http://www.billwurtz.com/sickness-as-usual.mp4" + ], + [ + "cricket amplification", + "http://www.billwurtz.com/cricket-amplification.mp4" + ], + [ + "thanks for watching yesterday's video", + "http://www.billwurtz.com/thanks-for-watching-yesterdays-video.mp4" + ], + [ + "monday next video", + "http://www.billwurtz.com/monday-next-video.mp4" + ], + [ + "jazz reebok", + "http://www.billwurtz.com/jazz-reebok.mp4" + ], + [ + " (i)", + "http://www.youtube.com/watch?v=JV76qjjys6g" + ], + [ + "a Play featuring an iphone power block and a mechanical pencil", + "http://www.billwurtz.com/a-play.mp4" + ], + [ + "music video: i'm stuck in a rut", + "http://www.billwurtz.com/im-stuck-in-a-rut.mp4" + ], + [ + "diagram of the ocean", + "http://www.billwurtz.com/diagram-of-the-ocean.mp4" + ], + [ + "black & white", + "http://www.billwurtz.com/black-and-white.mp4" + ], + [ + "how to be happy", + "http://www.billwurtz.com/how-to-be-happy.mp4" + ], + [ + "a brief history of spain (and portugal)", + "http://www.billwurtz.com/a-brief-history-of-spain-and-portugal.mp4" + ], + [ + "]]]", + "http://www.billwurtz.com/]]].mp4" + ], + [ + "]]", + "http://www.billwurtz.com/]].mp4" + ], + [ + "]", + "http://www.billwurtz.com/].mp4" + ], + [ + "monday lizard eating contest results", + "http://www.billwurtz.com/monday-lizard-eating-contest-results.mp4" + ], + [ + "the crappiest video in the world", + "http://www.billwurtz.com/crappiest-video-in-the-world.mp4" + ], + [ + "the key to being creative", + "http://www.billwurtz.com/key-to-being-creative.mp4" + ], + [ + "knock knock it's the news", + "http://www.billwurtz.com/knock-knock-its-the-news.mp4" + ], + [ + "save the tambourine for later", + "http://www.billwurtz.com/save-the-tambourine-for-later.mp4" + ], + [ + "monday non-zebra", + "http://www.billwurtz.com/monday-non-zebra.mp4" + ], + [ + "quit", + "http://www.billwurtz.com/quit.mp4" + ], + [ + "i'm dizzy", + "http://www.billwurtz.com/im-dizzy.mp4" + ], + [ + "gonna throw my wallet away", + "http://www.billwurtz.com/gonna-throw-my-wallet-away.mp4" + ], + [ + "take a video of the ceiling", + "http://www.billwurtz.com/take-a-video-of-the-ceiling.mp4" + ], + [ + "monday movie prices review", + "http://www.billwurtz.com/monday-movie-prices-review.mp4" + ], + [ + "how to ask a question", + "http://www.billwurtz.com/how-to-ask-a-question.mp4" + ], + [ + "dumb and smart pop quiz", + "http://www.billwurtz.com/dumb-smart-pop-quiz.mp4" + ], + [ + "what 2 do (UPDATE)", + "http://www.billwurtz.com/dont-worry.mp4" + ], + [ + "what 2 do (good advice)", + "http://www.billwurtz.com/worry.mp4" + ], + [ + "monday video in jail", + "http://www.billwurtz.com/monday-video-in-jail.mp4" + ], + [ + "loud paperclip", + "http://www.billwurtz.com/loud-paperclip.mp4" + ], + [ + "can you put apples in a video?", + "http://www.billwurtz.com/apples-in-video.mp4" + ], + [ + "not a vid", + "http://www.billwurtz.com/not-a-vid.mp4" + ], + [ + "movie: shaving my piano", + "http://www.billwurtz.com/shaving-my-piano.mp4" + ], + [ + "movie: funny dolphin", + "http://www.billwurtz.com/funny-dolphin.mp4" + ], + [ + "music video: hey jodie foster", + "http://www.billwurtz.com/hey-jodie-foster.mp4" + ], + [ + "movie: boat (don't miss)", + "http://www.billwurtz.com/boat.mp4" + ], + [ + "_____notbugs", + "http://www.billwurtz.com/_____notbugs.mp3" + ], + [ + "movie: gonna print out my feelings", + "http://www.billwurtz.com/gonna-print-out-my-feelings.mp4" + ], + [ + "movie: monday monday trivia", + "http://www.billwurtz.com/monday-monday-trivia.mp4" + ], + [ + "music video: blind (to no avail)", + "http://www.billwurtz.com/blind-to-no-avail.mp4" + ], + [ + "movie: the dot video", + "http://www.billwurtz.com/the-dot-video.mp4" + ], + [ + "the road", + "http://www.billwurtz.com/the-road.mp3" + ], + [ + "movie: i'm gonna iron my shoes", + "http://www.billwurtz.com/im-gonna-iron-my-shoes.mp4" + ], + [ + "movie: YouTube video", + "http://www.billwurtz.com/youtube-video.mp4" + ], + [ + "music video: i'm confused", + "http://www.billwurtz.com/im-confused.mp4" + ], + [ + "movie: you can move", + "http://www.billwurtz.com/you-can-move.mp4" + ], + [ + "this is not a song", + "http://www.billwurtz.com/this-is-not-a-song.mp3" + ], + [ + "movie: go tie a shoe", + "http://www.billwurtz.com/go-tie-a-shoe.mp4" + ], + [ + "movie: monday small idea", + "http://www.billwurtz.com/monday-small-idea.mp4" + ], + [ + "music video: teddy bears", + "http://www.billwurtz.com/teddy-bears.mp4" + ], + [ + "sadness (a message)", + "http://www.billwurtz.com/sadness-message.mp4" + ], + [ + "i can play", + "http://www.billwurtz.com/i-can-play.mp3" + ], + [ + "movie: let's watch some television", + "http://www.billwurtz.com/lets-watch-some-television.mp4" + ], + [ + "movie: rain fact", + "http://www.billwurtz.com/rain-fact.mp4" + ], + [ + "music video: write a tune that really sucks", + "http://www.billwurtz.com/write-a-tune-that-really-sucks.mp4" + ], + [ + "friends: a message about them", + "http://www.billwurtz.com/friends-message.mp4" + ], + [ + "it's ok to love", + "http://www.billwurtz.com/its-ok-to-love.mp3" + ], + [ + "movie: gonna mail you my floor", + "http://www.billwurtz.com/gonna-mail-you-my-floor.mp4" + ], + [ + "movie: monday on a boat", + "http://www.billwurtz.com/monday-on-a-boat.mp4" + ], + [ + "music video: little door", + "http://www.billwurtz.com/little-door.mp4" + ], + [ + "movie: normal", + "http://www.billwurtz.com/normal.mp4" + ], + [ + "i hope we figure it out", + "http://www.billwurtz.com/i-hope-we-figure-it-out.mp3" + ], + [ + "movie: math", + "http://www.billwurtz.com/math.mp4" + ], + [ + "movie: monday question questions", + "http://www.billwurtz.com/monday-question-questions.mp4" + ], + [ + "music video: don't make", + "http://www.billwurtz.com/dont-make.mp4" + ], + [ + "love: a message", + "http://www.billwurtz.com/love-message.mp4" + ], + [ + "all u gotta do is", + "http://www.billwurtz.com/all-u-gotta-do-is.mp3" + ], + [ + "movie: this tree is green", + "http://www.billwurtz.com/this-tree-is-green.mp4" + ], + [ + "movie: monday fun pill", + "http://www.billwurtz.com/monday-fun-pill.mp4" + ], + [ + "movie: monday trivia (holiday)", + "http://www.billwurtz.com/monday-trivia-holiday.mp4" + ], + [ + "brief notification message", + "http://www.billwurtz.com/notification-message.mp4" + ], + [ + "videos page", + "http://www.billwurtz.com/videos.html" + ], + [ + "live from the past: desk chat 4.28.11", + "http://www.billwurtz.com/desk-chat-42811.mp4" + ], + [ + "songs page", + "http://www.billwurtz.com/songs.html" + ], + [ + "new schedule idea", + "http://www.billwurtz.com/new-schedule-idea.mp4" + ], + [ + "movie: let's get high (up)", + "http://www.billwurtz.com/lets-get-high.mp4" + ], + [ + "movie: monday bed full of bugs", + "http://www.billwurtz.com/bed-full-of-bugs.mp4" + ], + [ + "music video: we are humans", + "http://www.billwurtz.com/we-are-humans.mp4" + ], + [ + "live from the past: standing on a chair", + "http://www.billwurtz.com/standing-on-a-chair.mp4" + ], + [ + "i wanna sail you away", + "http://www.billwurtz.com/i-wanna-sail-you-away.mp3" + ], + [ + "movie: where does the railroad go?", + "http://www.billwurtz.com/where-does-the-railroad-go.mp4" + ], + [ + "movie: video-monday", + "http://www.billwurtz.com/video-monday.mp4" + ], + [ + "music video: go back to where you belong", + "http://www.billwurtz.com/go-back-to-where-you-belong.mp4" + ], + [ + "note", + "http://www.billwurtz.com/a9jsd9f.html" + ], + [ + "note", + "http://www.billwurtz.com/02943jidn.html" + ], + [ + "live from the past: aliens", + "http://www.billwurtz.com/3-18-09-how-to-practice-piano.mp4" + ], + [ + "hey jodie foster", + "http://www.billwurtz.com/hey-jodie-foster.mp3" + ], + [ + "movie: help, i'm lost in a calendar", + "http://www.billwurtz.com/help-im-lost-in-a-calendar.mp4" + ], + [ + "movie: monday accordion bowling", + "http://www.billwurtz.com/monday-accordion-bowling.mp4" + ], + [ + "music video: icy james", + "http://www.billwurtz.com/icy-james.mp4" + ], + [ + "live from the past: this is the real thing", + "http://www.billwurtz.com/this-is-the-real-thing.mp4" + ], + [ + "goo soup", + "http://www.billwurtz.com/goo-soup.mp3" + ], + [ + "movie: electricity", + "http://www.billwurtz.com/electricity.mp4" + ], + [ + "movie: world peace phone", + "http://www.billwurtz.com/world-peace-phone.mp4" + ], + [ + "jazz america", + "http://www.billwurtz.com/jazz-america.mp4" + ], + [ + " (i)", + "http://en.wikipedia.org/wiki/Gee,_Baby,_Ain%27t_I_Good_to_You" + ], + [ + "movie: colonization", + "http://www.billwurtz.com/colonization.mp4" + ], + [ + "brooklyn museum", + "http://www.billwurtz.com/brooklyn-museum.mp3" + ], + [ + "music video: tuesday", + "http://www.billwurtz.com/tuesday.mp4" + ], + [ + "movie: monday idea having contest", + "http://www.billwurtz.com/monday-idea-having-contest.mp4" + ], + [ + "music video: time mop", + "http://www.billwurtz.com/time-mop.mp4" + ], + [ + "movie: guess i'll stare at the wall", + "http://www.billwurtz.com/guess-i'll-stare-at-the-wall.mp4" + ], + [ + "the looking glass", + "http://www.billwurtz.com/the-looking-glass.mp3" + ], + [ + "music video: i like", + "http://www.billwurtz.com/i-like.mp4" + ], + [ + "movie: monday alligator kitchen", + "http://www.billwurtz.com/alligator-kitchen.mp4" + ], + [ + "music video: no castle", + "http://www.billwurtz.com/no-castle.mp4" + ], + [ + "movie: boxes", + "http://www.billwurtz.com/boxes.mp4" + ], + [ + "i'm gonna plan my day", + "http://www.billwurtz.com/i'm-gonna-plan-my-day.mp3" + ], + [ + "music video: i know", + "http://www.billwurtz.com/i-know.mp4" + ], + [ + "movie: monday icicle interview", + "http://www.billwurtz.com/icicle-interview.mp4" + ], + [ + "music video: napkins", + "http://www.billwurtz.com/napkins.mp4" + ], + [ + "movie: earth", + "http://www.billwurtz.com/earth.mp4" + ], + [ + "this is a song for my next album", + "http://www.billwurtz.com/this-is-a-song-for-my-next-album.mp3" + ], + [ + "music video: go home (i wanna)", + "http://www.billwurtz.com/go-home-i-wanna.mp4" + ], + [ + "movie: monday sad house", + "http://www.billwurtz.com/monday-sad-house.mp4" + ], + [ + "music video: raindrops are poisonous", + "http://www.billwurtz.com/raindrops.mp4" + ], + [ + "i'm confused (i love you)", + "http://www.billwurtz.com/imconfused.mp3" + ], + [ + "music video: couldn't succeed", + "http://www.billwurtz.com/couldnt-succeed.mp4" + ], + [ + "movie: random special update", + "http://www.billwurtz.com/random-special-update.mp4" + ], + [ + "music video: can i reach for the stars", + "http://www.billwurtz.com/can-i-reach-for-the-stars.mp4" + ], + [ + "movie: i'm writing a letter to you on my floor", + "http://www.billwurtz.com/i'm-writing-a-letter-to-you-on-my-floor.mp4" + ], + [ + "write a song on the count of 3", + "http://www.billwurtz.com/write-a-song-on-the-count-of-3.mp3" + ], + [ + "music video: the peanut butter song", + "http://www.billwurtz.com/the-peanutbutter-song.mp4" + ], + [ + "movie: comma art", + "http://www.billwurtz.com/comma-art.mp4" + ], + [ + "music video: macy's", + "http://www.billwurtz.com/macys.mp4" + ], + [ + "movie: it's not christmas", + "http://www.billwurtz.com/it's-not-christmas.mp4" + ], + [ + "i like to sleep around", + "http://www.billwurtz.com/i-like-to-sleep-around.mp3" + ], + [ + "music video: still silly", + "http://www.billwurtz.com/still-silly.mp4" + ], + [ + "movie: 2 + 3", + "http://www.billwurtz.com/2plus3.mp4" + ], + [ + "music video: home from work", + "http://www.billwurtz.com/home-from-work.mp4" + ], + [ + "movie: this is where i make my things", + "http://www.billwurtz.com/this-is-where-i-make-my-things.mp4" + ], + [ + "goodbye", + "http://www.billwurtz.com/goodbye.mp3" + ], + [ + "music video: school", + "http://www.billwurtz.com/school.mp4" + ], + [ + "movie: monday stack of &s", + "http://www.billwurtz.com/monday-stack-of-&s.mp4" + ], + [ + "music video: move over", + "http://www.billwurtz.com/moveover.mp4" + ], + [ + "music video: shut up", + "http://www.billwurtz.com/shutup.mp4" + ], + [ + "movie: jingle in bed", + "http://www.billwurtz.com/jingle-in-bed.mp4" + ], + [ + "macy's", + "http://www.billwurtz.com/macys.mp3" + ], + [ + "music video: new canaan", + "http://www.billwurtz.com/new-canaan.mp4" + ], + [ + "movie: monday pants shirt", + "http://www.billwurtz.com/pants-shirt.mp4" + ], + [ + "no video today", + "http://www.billwurtz.com/no-video.mp4" + ], + [ + "no brains", + "http://www.billwurtz.com/no-brains.mp3" + ], + [ + "music video: the 'ngiueh' song", + "http://www.billwurtz.com/ngiueh-video.mp4" + ], + [ + "movie: lamborghini trivia", + "http://www.billwurtz.com/lamborghinitrivia.mp4" + ], + [ + "music video: tape deck", + "http://www.billwurtz.com/tapedeck.mp4" + ], + [ + "movie: darkness video", + "http://www.billwurtz.com/darknessvideo.mp4" + ], + [ + "même: success cat", + "http://www.billwurtz.com/4ea1sbl.jpg" + ], + [ + "It's Gonna Be Alright", + "http://www.billwurtz.com/itsgonnabealright.mp3" + ], + [ + "music video: hello 2", + "http://www.billwurtz.com/hello2.mp4" + ], + [ + "music video: get real", + "http://www.billwurtz.com/getreal.mp4" + ], + [ + "movie: monday elevator testing", + "http://www.billwurtz.com/elevatortesting.mp4" + ], + [ + "sponsor movie", + "http://www.billwurtz.com/coke.mp4" + ], + [ + "new canaan", + "http://www.billwurtz.com/newcanaan.mp3" + ], + [ + "music video: skip to my loo", + "http://www.billwurtz.com/skiptomyloo.mp4" + ], + [ + "movie: monday annoying thing", + "http://www.billwurtz.com/mondayannoyingthing.mp4" + ], + [ + "note", + "http://www.billwurtz.com/note201404140005.html" + ], + [ + "jazz green giant", + "http://www.billwurtz.com/jazzgreengiant.mp4" + ], + [ + " (i)", + "http://en.wikipedia.org/wiki/I_Remember_Clifford_(song)" + ], + [ + "", + "http://www.twitter.com/billwurtz" + ], + [ + "music video: dance the", + "http://www.billwurtz.com/dancethe.mp4" + ], + [ + "movie: sometimes i (whatever)", + "http://www.billwurtz.com/sometimesiwhatever.mp4" + ], + [ + "the 'ngiueh' song", + "http://www.billwurtz.com/ngiueh.mp3" + ], + [ + "music video: don't be good to your neighbor", + "http://www.billwurtz.com/neighbor.mp4" + ], + [ + "movie: trivia trivia", + "http://www.billwurtz.com/triviatrivia.mp4" + ], + [ + "drink beans", + "http://www.billwurtz.com/drinkbeans.mp3" + ], + [ + "note", + "http://www.billwurtz.com/u92i30.html" + ], + [ + "movie: africa", + "http://www.billwurtz.com/africa.mp4" + ], + [ + "note", + "http://www.billwurtz.com/note201404030419.html" + ], + [ + "tuesday", + "http://www.billwurtz.com/tuesday.mp3" + ], + [ + "jazz nbc", + "http://www.billwurtz.com/jazznbc.mp4" + ], + [ + " (i)", + "http://en.wikipedia.org/wiki/You_Make_Me_Smile" + ], + [ + "music video: lalala", + "http://www.billwurtz.com/lalala.mp4" + ], + [ + "movie: boomerang trivia", + "http://www.billwurtz.com/boomerang.mp4" + ], + [ + "youcandriveachevy.com", + "http://www.billwurtz.com/youcandriveachevydotcom.mp3" + ], + [ + "movie: life street", + "http://www.billwurtz.com/lifestreet.mp4" + ], + [ + "i'm in bryant park", + "http://www.billwurtz.com/bryantpark.mp3" + ], + [ + "music video: the zoo", + "http://www.billwurtz.com/zoo.mp4" + ], + [ + "movie: units of measurement", + "http://www.billwurtz.com/measurement.mp4" + ], + [ + "don't look in a boot", + "http://www.billwurtz.com/dontlookinaboot.mp3" + ], + [ + "movie: tape", + "http://www.billwurtz.com/tape.mp4" + ], + [ + "we could just get high", + "http://www.billwurtz.com/wecouldjustgethigh.mp3" + ], + [ + "music video: sing me a song", + "http://www.billwurtz.com/singme.mp4" + ], + [ + "movie: ice cream sandwich", + "http://www.billwurtz.com/icecreamsandwich.mp4" + ], + [ + "", + "http://www.youtube.com/user/billwurtz/videos" + ], + [ + "apple juice (tribute to DJO)", + "http://www.billwurtz.com/applejuice.aif" + ], + [ + "movie: eat the floor", + "http://www.billwurtz.com/eatthefloor.mp4" + ], + [ + "icy james", + "http://www.billwurtz.com/icyjames.mp3" + ], + [ + "agnraam", + "http://www.billwurtz.com/patience.html" + ], + [ + "music video: wondering how to feel", + "http://www.billwurtz.com/wondering.mp4" + ], + [ + "movie: bike ride", + "http://www.billwurtz.com/bikeride.mp4" + ], + [ + "agnraam", + "http://www.billwurtz.com/an20140310.html" + ], + [ + "music video: gross insides", + "http://www.billwurtz.com/grossinsides.mp4" + ], + [ + "movie: bread", + "http://www.billwurtz.com/bread.mp4" + ], + [ + "the future song", + "http://www.billwurtz.com/thefuturesong.mp3" + ], + [ + "music video: feel okay", + "http://www.billwurtz.com/feelokay.mp4" + ], + [ + "movie: high/wide", + "http://www.billwurtz.com/highwide.mp4" + ], + [ + "music video: hi bye", + "http://www.billwurtz.com/hibye.mp4" + ], + [ + "movie: floor", + "http://www.billwurtz.com/floor.mp4" + ], + [ + "rabbit snakes", + "http://www.billwurtz.com/rabbitsnakes.mp3" + ], + [ + "music video: barf on me", + "http://www.billwurtz.com/barf.mp4" + ], + [ + "movie: conflict", + "http://www.billwurtz.com/conflict.mp4" + ], + [ + "note", + "http://www.billwurtz.com/note201402212058.html" + ], + [ + "music video: i'm a diamond", + "http://www.billwurtz.com/diamond.mp4" + ], + [ + "movie: sleep on a pile of clothes", + "http://www.billwurtz.com/clothes.mp4" + ], + [ + "bw", + "http://www.billwurtz.com/94jwrj.png" + ], + [ + "school", + "http://www.billwurtz.com/school.mp3" + ], + [ + "music video: get outta here", + "http://www.billwurtz.com/getouttahere.mp4" + ], + [ + "movie: monday trivia 2", + "http://www.billwurtz.com/mondaytrivia2.mp4" + ], + [ + "bw", + "http://www.billwurtz.com/bwcolors.png" + ], + [ + "music video: sheep", + "http://www.billwurtz.com/sheep.mp4" + ], + [ + "movie: door", + "http://www.billwurtz.com/door.mp4" + ], + [ + "textin on my iphone", + "http://www.billwurtz.com/textinonmyiphone.mp3" + ], + [ + "music video: no harm", + "http://www.billwurtz.com/noharm.mp4" + ], + [ + "movie: monday trivia", + "http://www.billwurtz.com/mondaytrivia.mp4" + ], + [ + "music video: eat dirt", + "http://www.billwurtz.com/eatdirt.mp4" + ], + [ + "movie: stand", + "http://www.billwurtz.com/stand.mp4" + ], + [ + "can i", + "http://www.billwurtz.com/can%20i.mp3" + ], + [ + "music video: i'm sad", + "http://www.billwurtz.com/i'msad.mp4" + ], + [ + "movie: monday", + "http://www.billwurtz.com/monday.mp4" + ], + [ + "note", + "http://www.billwurtz.com/note201402021116.html" + ], + [ + "schedule", + "http://www.billwurtz.com/schedule.png" + ], + [ + "note", + "http://www.billwurtz.com/note201401310450.html" + ], + [ + "note", + "http://www.billwurtz.com/note201401310449.html" + ], + [ + "note", + "http://www.billwurtz.com/note201401310448.html" + ], + [ + "note", + "http://www.billwurtz.com/note20140131044801a.html" + ], + [ + "note", + "http://www.billwurtz.com/note201401310447.html" + ], + [ + "note", + "http://www.billwurtz.com/note20140129194202.html" + ], + [ + "note", + "http://www.billwurtz.com/note20140129194201.html" + ], + [ + "note", + "http://www.billwurtz.com/note20140129194102.html" + ], + [ + "note", + "http://www.billwurtz.com/note20140129194101.html" + ], + [ + "note", + "http://www.billwurtz.com/note201401291931.html" + ], + [ + "note", + "http://www.billwurtz.com/note20140129193002.html" + ], + [ + "note", + "http://www.billwurtz.com/note20140129193001.html" + ], + [ + "note", + "http://www.billwurtz.com/note201401291926.html" + ], + [ + "note", + "http://www.billwurtz.com/note20140129192503.html" + ], + [ + "note", + "http://www.billwurtz.com/note20140129192502.html" + ], + [ + "music video: pairs", + "http://www.billwurtz.com/pairs%20video.mp4" + ], + [ + "note", + "http://www.billwurtz.com/eijjkd.html" + ], + [ + "note", + "http://www.billwurtz.com/903ij4ersd.html" + ], + [ + "note", + "http://www.billwurtz.com/934ierjkd.html" + ], + [ + "agnraam", + "http://www.billwurtz.com/anna%2078ui.html" + ], + [ + "note", + "http://www.billwurtz.com/note201401261229.html" + ], + [ + "note", + "http://www.billwurtz.com/note201401261214.html" + ], + [ + "note", + "http://www.billwurtz.com/note20140126121401.html" + ], + [ + "journal", + "http://www.billwurtz.com/note201401261131.html" + ], + [ + "note", + "http://www.billwurtz.com/u89ji.html" + ], + [ + "note", + "http://www.billwurtz.com/note201401160824.html" + ], + [ + "hi", + "http://www.billwurtz.com/hi.png" + ], + [ + "même: glissfail", + "http://www.billwurtz.com/jacksonquantizememe.png" + ], + [ + "music video: hi, it's 1995", + "http://www.billwurtz.com/hi%20it's%201995.mp4" + ], + [ + "∞ v. ƒ", + "http://www.billwurtz.com/inf%20v%20f.png" + ], + [ + "to do list", + "http://www.billwurtz.com/note201312241133.html" + ], + [ + "note", + "http://www.billwurtz.com/20131221note.html" + ], + [ + "même: mike mcdonald", + "http://www.billwurtz.com/kvr9up.jpg" + ], + [ + "1 + 1", + "http://www.billwurtz.com/1%20plus%201.png" + ], + [ + "note to self", + "http://www.billwurtz.com/note201312142350.html" + ], + [ + "abcdefg", + "http://www.billwurtz.com/abcdefg.png" + ], + [ + "journal", + "http://www.billwurtz.com/journal201311212120.html" + ], + [ + "picture: shoe keys", + "http://www.billwurtz.com/shoe%20keys%2011%2019%2013.png" + ], + [ + "même: power outlet", + "http://www.billwurtz.com/whats%20in%20there.png" + ], + [ + "door fish", + "http://www.billwurtz.com/doorfish.jpg" + ], + [ + "même: roads", + "http://www.billwurtz.com/raoods.png" + ], + [ + "même: reddit t-shirt", + "http://www.billwurtz.com/reddit%20tshirt.jpg" + ], + [ + "note", + "http://www.billwurtz.com/0asd0a8hsg.html" + ], + [ + "dictionary: embarrass", + "http://www.billwurtz.com/embarrass.png" + ], + [ + "même: advice dog", + "http://www.billwurtz.com/5gzx075.jpg" + ], + [ + "même: advice dog", + "http://www.billwurtz.com/hcahz35.jpg" + ], + [ + "même: advice dog", + "http://www.billwurtz.com/527wsap.jpg" + ], + [ + "note", + "http://www.billwurtz.com/87uygh.html" + ], + [ + "note", + "http://www.billwurtz.com/note201310111441.html" + ], + [ + "picture: superselfie", + "http://www.billwurtz.com/201309260505.png" + ], + [ + "music video: i write stupid music", + "http://www.billwurtz.com/i%20write%20stupid%20music.mp4" + ], + [ + "note", + "http://www.billwurtz.com/w98jv9.html" + ], + [ + "how am i spost (Bill Wurtz ft. Flide Hamulton)", + "http://www.billwurtz.com/how%20am%20i%20spost%20(Bill%20Wurtz%20ft.%20Flide%20Hamulton).mp3" + ], + [ + "hide the money", + "http://www.billwurtz.com/hide%20the%20money.mp3" + ], + [ + "eat dirt", + "http://www.billwurtz.com/eat%20dirt.mp3" + ], + [ + "teddy bears", + "http://www.billwurtz.com/teddy%20bears.mp3" + ], + [ + "i write stupid music", + "http://www.billwurtz.com/i%20write%20stupid%20music.mp3" + ], + [ + "go back to where you belong", + "http://www.billwurtz.com/go%20back%20to%20where%20you%20belong.mp3" + ], + [ + "note", + "http://www.billwurtz.com/j09sj0b9j.html" + ], + [ + "don't be good to your neighbor", + "http://www.billwurtz.com/don't%20be%20good%20to%20your%20neighbor.mp3" + ], + [ + "hi, it's 1995", + "http://www.billwurtz.com/hi%20it's%201995.mp3" + ], + [ + "hello 1", + "http://www.billwurtz.com/hello%201.mp3" + ], + [ + "note", + "http://www.billwurtz.com/yt7h89unoi.html" + ], + [ + "skip to my loo", + "http://www.billwurtz.com/skip%20to%20my%20loo.mp3" + ], + [ + "hey baby, buy my car", + "http://www.billwurtz.com/hey%20baby,%20buy%20my%20car.mp3" + ], + [ + "hello 2", + "http://www.billwurtz.com/hello%202.mp3" + ], + [ + "move over", + "http://www.billwurtz.com/move%20over.mp3" + ], + [ + "raindrops", + "http://www.billwurtz.com/raindrops.mp3" + ], + [ + "lalala", + "http://www.billwurtz.com/lalala.mp3" + ], + [ + "get outta here", + "http://www.billwurtz.com/get%20outta%20here.mp3" + ], + [ + "get real", + "http://www.billwurtz.com/get%20real.mp3" + ], + [ + "gross insides", + "http://www.billwurtz.com/gross%20insides.mp3" + ], + [ + "hi bye", + "http://www.billwurtz.com/hi%20bye.mp3" + ], + [ + "sheep", + "http://www.billwurtz.com/sheep.mp3" + ], + [ + "music video: what the fuck", + "http://www.billwurtz.com/what%20the%20fuck.mp4" + ], + [ + "music video: hibernate", + "http://www.billwurtz.com/hibernate.mp4" + ], + [ + "music video: yes", + "http://www.billwurtz.com/yes.mp4" + ], + [ + "movie: test", + "http://www.billwurtz.com/test.mp4" + ], + [ + "note", + "http://www.billwurtz.com/ht876b.html" + ], + [ + "movie: vagina", + "http://www.billwurtz.com/vagina.mp4" + ], + [ + "movie: penis", + "http://www.billwurtz.com/penis.mp4" + ], + [ + "note", + "http://www.billwurtz.com/98hg8a.html" + ], + [ + "Rome To Acquire Christianity (news article)", + "http://www.billwurtz.com/rome-christianity-aquisition.jpg" + ], + [ + "music video: die", + "http://www.billwurtz.com/die.mp4" + ], + [ + "music video: no", + "http://www.billwurtz.com/no.mp4" + ], + [ + "music video: whatever", + "http://www.billwurtz.com/whatever.mp4" + ], + [ + "music video: bears", + "http://www.billwurtz.com/bears.mp4" + ], + [ + "occupation", + "http://www.billwurtz.com/blasphemist.html" + ], + [ + "jazz starbucks", + "http://www.billwurtz.com/jazzstarbucks.mp4" + ], + [ + " (i)", + "http://en.wikipedia.org/wiki/Like_Someone_in_Love" + ], + [ + "book title", + "http://www.billwurtz.com/8409w540j.html" + ], + [ + "note", + "http://www.billwurtz.com/015h09hskj.html" + ], + [ + "journal", + "http://www.billwurtz.com/journal201305281858.html" + ], + [ + "note", + "http://www.billwurtz.com/j9348jg.html" + ], + [ + "note", + "http://www.billwurtz.com/note201305180510.html" + ], + [ + "journal", + "http://www.billwurtz.com/journal201305121035.html" + ], + [ + "note", + "http://www.billwurtz.com/zt98jri.html" + ], + [ + "note to self", + "http://www.billwurtz.com/note201305032112.html" + ], + [ + "agnraam", + "http://www.billwurtz.com/anna201304290300.html" + ], + [ + "agnraam", + "http://www.billwurtz.com/ana.html" + ], + [ + "album title", + "http://www.billwurtz.com/album%20title.html" + ], + [ + "note", + "http://www.billwurtz.com/note201303110412.html" + ], + [ + "journal", + "http://www.billwurtz.com/journal201302022057.html" + ], + [ + "journal", + "http://www.billwurtz.com/journal201301240422.html" + ], + [ + "journal", + "http://www.billwurtz.com/95g8h.html" + ], + [ + "q&a", + "http://www.billwurtz.com/q&a201301070019.html" + ], + [ + "writing", + "http://www.billwurtz.com/IMG_0056.JPG" + ], + [ + "note", + "http://www.billwurtz.com/note201212160902.html" + ], + [ + "booster seat", + "http://www.billwurtz.com/biblethrone.png" + ], + [ + "note", + "http://www.billwurtz.com/note201212141523.html" + ], + [ + "note", + "http://www.billwurtz.com/48twghusi.html" + ], + [ + "book title", + "http://www.billwurtz.com/tfc5.html" + ], + [ + "note", + "http://www.billwurtz.com/note%20to%20self.html" + ], + [ + "note", + "http://www.billwurtz.com/note201209210200.html" + ], + [ + "instrumental: happy birfbday", + "http://www.billwurtz.com/Happy-Birfbday.mp3" + ], + [ + "note", + "http://www.billwurtz.com/note20120913637.html" + ], + [ + "instrumental: juvenile (le nu jive)", + "http://www.billwurtz.com/juvenile%20(le%20nu%20jive).mp3" + ], + [ + "note", + "http://www.billwurtz.com/note201207231132.html" + ], + [ + "instrumental: happy garden", + "http://www.billwurtz.com/happy%20garden.mp3" + ], + [ + "instrumental: Unscheduled Psychiatric Confluence (UPC)", + "http://www.billwurtz.com/Unscheduled%20Psychiatric%20Confluence%20(UPC).mp3" + ], + [ + "note", + "http://www.billwurtz.com/note201207021056.html" + ], + [ + "instrumental: Summer Love (Froy Thrampton ft. Bill Wurtz)", + "http://www.billwurtz.com/Summer%20Love%20(Froy%20Thrampton%20ft.%20Bill%20Wurtz).mp3" + ], + [ + "movie: game challenge", + "http://www.billwurtz.com/game%20challenge.mp4" + ], + [ + " (i)", + "https://soundcloud.com/good/how-daytime-must-look" + ], + [ + "instrumental: meadow music", + "http://www.billwurtz.com/meadow%20music.mp3" + ], + [ + "bw", + "http://www.billwurtz.com/bwurtz%205%2017%2012.png" + ], + [ + "note", + "http://www.billwurtz.com/201205060919.html" + ], + [ + "note", + "http://www.billwurtz.com/note201202291440.html" + ], + [ + "sorting", + "http://www.billwurtz.com/100_0813.JPG" + ], + [ + "note", + "http://www.billwurtz.com/note201201152025.html" + ], + [ + "journal", + "http://www.billwurtz.com/note201201091843.html" + ], + [ + "picture", + "http://www.billwurtz.com/100_0804.JPG" + ], + [ + "picture", + "http://www.billwurtz.com/pic201201040747.png" + ], + [ + "write a tune that really sucks", + "http://www.billwurtz.com/write%20a%20tune%20that%20really%20sucks.mp3" + ], + [ + "the zoo", + "http://www.billwurtz.com/the%20zoo.mp3" + ], + [ + "jazz: in a mellow tone", + "http://www.billwurtz.com/inamellowtone.mp3" + ], + [ + " (i)", + "http://en.wikipedia.org/wiki/In_a_Mellow_Tone" + ], + [ + "Another Day", + "http://www.billwurtz.com/Another-Day.mp3" + ], + [ + " (i)", + "https://www.youtube.com/watch?v=In8b1nOiGaw" + ], + [ + "jazz: look to the sky", + "http://www.billwurtz.com/looktotheskyjobim.mp3" + ], + [ + " (i)", + "http://en.wikipedia.org/wiki/Antonio_carlos_jobim" + ], + [ + "jazz: central park west wtf", + "http://www.billwurtz.com/centralparkwestwtf.mp3" + ], + [ + " (i)", + "http://en.wikipedia.org/wiki/John_coltrane" + ], + [ + "picture", + "http://www.billwurtz.com/IMG_0001.JPG" + ], + [ + "note", + "http://www.billwurtz.com/note201111271905.html" + ], + [ + "instrumental: mashup of 'clip 6 from 7 29 08'", + "http://www.billwurtz.com/mashup%20of%20clip%206%20from%207%2029%2008.mp3" + ], + [ + "note", + "http://www.billwurtz.com/note201111150852.html" + ], + [ + "note", + "http://www.billwurtz.com/note201110230740.html" + ], + [ + "advocacy group", + "http://www.billwurtz.com/h8go.html" + ], + [ + "punk: freefallin", + "http://www.billwurtz.com/frre%20felln.mp3" + ], + [ + " (i)", + "http://en.wikipedia.org/wiki/Free_Fallin'" + ], + [ + "Stupid Song", + "http://www.billwurtz.com/Stupid%20Song.mp3" + ], + [ + "I Guess I've Got to Listen to Bob Marley", + "http://www.billwurtz.com/I%20Guess%20I've%20Got%20To%20Listen%20To%20Bob%20Marley.mp3" + ], + [ + "note", + "http://www.billwurtz.com/note201109191422.html" + ], + [ + "Home", + "http://www.billwurtz.com/Home_1.mp3" + ], + [ + "i'm so shy", + "http://www.billwurtz.com/I'm%20So%20Shy.mp3" + ], + [ + "marquee", + "http://www.billwurtz.com/waltz%20board%209%203%2011.JPG" + ], + [ + "the world", + "http://www.billwurtz.com/The%20World's%20Got%20a%20Problem.mp3" + ], + [ + "note", + "http://www.billwurtz.com/map.html" + ], + [ + "watch", + "http://www.billwurtz.com/100_0800.JPG" + ], + [ + "All U Need Is Love", + "http://www.billwurtz.com/All%20U%20Need%20Is%20Love.mp3" + ], + [ + "picture: synth solo", + "http://www.billwurtz.com/Screen%20shot%202011-07-26%20at%202.31.15%20AM.png" + ], + [ + "Do What You Want To Do", + "http://www.billwurtz.com/Do%20What%20You%20Want%20To%20Do.mp3" + ], + [ + "(what) Love Is", + "http://www.billwurtz.com/(What)%20Love%20Is.mp3" + ], + [ + "note", + "http://www.billwurtz.com/note201106270305.html" + ], + [ + "note", + "http://www.billwurtz.com/note201106270304.html" + ], + [ + "note", + "http://www.billwurtz.com/note201106270301.html" + ], + [ + "go to the store", + "http://www.billwurtz.com/Go%20to%20the%20Store.mp3" + ], + [ + "i love you", + "http://www.billwurtz.com/I%20Love%20You.mp3" + ], + [ + "do the thing", + "http://www.billwurtz.com/Do%20The%20Thing.mp3" + ], + [ + "i guess i've got to listen to bob marley", + "http://www.billwurtz.com/bob%20marley.png" + ], + [ + "no place like home", + "http://www.billwurtz.com/No%20Place%20Like%20Home.mp3" + ], + [ + "note", + "http://www.billwurtz.com/note201106061514.html" + ], + [ + "the stupid song", + "http://www.billwurtz.com/The%20Stupid%20Song.mp3" + ], + [ + "ᒣ", + "http://www.billwurtz.com/IMG_0539.JPG" + ], + [ + "note: skydiving", + "http://www.billwurtz.com/note201105252101.html" + ], + [ + "Home Again", + "http://www.billwurtz.com/Home%20Again.mp3" + ], + [ + "note", + "http://www.billwurtz.com/note201105221141.html" + ], + [ + "how am i spost", + "http://www.billwurtz.com/how%20am%20i%20spost.mp3" + ], + [ + "blue boy", + "http://www.billwurtz.com/blue%20boy.mp3" + ], + [ + "instrumental: ABCDE", + "http://www.billwurtz.com/ABCDE.mp3" + ], + [ + "end of the world concert", + "http://www.billwurtz.com/end%20of%20the%20world%20concert%205%2021%2011%20450am.mp3" + ], + [ + " (i)", + "http://en.wikipedia.org/wiki/On_the_Floor" + ], + [ + "note", + "http://www.billwurtz.com/note20110521000801.html" + ], + [ + "☼", + "http://www.billwurtz.com/sun.png" + ], + [ + "note", + "http://www.billwurtz.com/note201104230240.html" + ], + [ + "picture", + "http://www.billwurtz.com/000_0079.JPG" + ], + [ + "movie: my foot", + "http://www.billwurtz.com/my%20foot.mp4" + ], + [ + "movie: here's a bowl", + "http://www.billwurtz.com/here's%20a%20bowl.mp4" + ], + [ + "movie: rising out of bed", + "http://www.billwurtz.com/rising%20out%20of%20bed.mp4" + ], + [ + "journal", + "http://www.billwurtz.com/journal201102271751.html" + ], + [ + "picture", + "http://www.billwurtz.com/000_0074.JPG" + ], + [ + "note", + "http://www.billwurtz.com/note201102180935.html" + ], + [ + "instrumental: this funny bad flame -- ponso skidpul", + "http://www.billwurtz.com/this%20funny%20bad%20flame%20-%20ponso%20skidpul.mp3" + ], + [ + "note", + "http://www.billwurtz.com/note201102071245.html" + ], + [ + "note", + "http://www.billwurtz.com/note201102050314.html" + ], + [ + "i like", + "http://www.billwurtz.com/i%20like.mp3" + ], + [ + "instrumental: basic balloon seed iteration 1", + "http://www.billwurtz.com/basic%20balloon%20seed%20iteration%201.mp3" + ], + [ + "dumpies - joe no", + "http://www.billwurtz.com/dumpies%20-%20joe%20no.mp3" + ], + [ + "murder your demon", + "http://www.billwurtz.com/murder%20your%20demon.mp3" + ], + [ + "movie", + "http://www.billwurtz.com/green.mp4" + ], + [ + "movie", + "http://www.billwurtz.com/the-alarm.mp4" + ], + [ + "desk", + "http://www.billwurtz.com/dark%20desk%2011%2027%2010.png" + ], + [ + "⁄", + "http://www.billwurtz.com/11%2025%2010%20chairlean.png" + ], + [ + "dream of evil", + "http://www.billwurtz.com/dream%20of%20evil.mp3" + ], + [ + "vlog: flipping things", + "http://www.billwurtz.com/flipping%20things.mp4" + ], + [ + "picture: bookstacking", + "http://www.billwurtz.com/bookstack%2011%2016%2010%20545am.png" + ], + [ + "vlog: bookstacking", + "http://www.billwurtz.com/bookstacking.mp4" + ], + [ + "music video: i wanna go home", + "http://www.billwurtz.com/i-wanna-go-home.mp4" + ], + [ + "movie: i'm a camel", + "http://www.billwurtz.com/im-a-camel.mp4" + ], + [ + "vlog: sitting in my room", + "http://www.billwurtz.com/sitting.mp4" + ], + [ + "fever", + "http://www.billwurtz.com/fever%20(is%20what%20makes%20you%20sick).mp3" + ], + [ + "i'm about to graduate from school", + "http://www.billwurtz.com/im%20about%20to%20graduate%20from%20school.mp3" + ], + [ + "note", + "http://www.billwurtz.com/note201011031843.html" + ], + [ + "✍ the zoo", + "http://www.billwurtz.com/the%20zoo.png" + ], + [ + "movie: i'm a leopard", + "http://www.billwurtz.com/im%20a%20leopard.mp4" + ], + [ + "movie: start typing", + "http://www.billwurtz.com/start-typing.mp4" + ], + [ + "music video: not so hard to do", + "http://www.billwurtz.com/not%20so%20hard%20to%20do.mp4" + ], + [ + "✍ (page of shorts)", + "http://www.billwurtz.com/10%2027%2010%20shorts.pdf" + ], + [ + "✍ gross insides ", + "http://www.billwurtz.com/gross%20insides.jpg" + ], + [ + "✍ sheep", + "http://www.billwurtz.com/sheep.jpg" + ], + [ + "✍ raindrops", + "http://www.billwurtz.com/raindrops%20are%20poisonous.jpg" + ], + [ + "✍ teddy bears ", + "http://www.billwurtz.com/teddy%20bears.jpg" + ], + [ + "instrumental: relaxment stage 1", + "http://www.billwurtz.com/relaxment%20stage%201.mp3" + ], + [ + "pairs", + "http://www.billwurtz.com/pairs.mp3" + ], + [ + "grow mushrooms on the sidewalk", + "http://www.billwurtz.com/mushrooms%20on%20the%20sidewalk.mp3" + ], + [ + "fuck you", + "http://www.billwurtz.com/fuck%20you.mp3" + ], + [ + "whatever", + "http://www.billwurtz.com/whatever.mp3" + ], + [ + "no", + "http://www.billwurtz.com/no.mp3" + ], + [ + "yes", + "http://www.billwurtz.com/yes.mp3" + ], + [ + "rock'n'roll confusion", + "http://www.billwurtz.com/rocknroll%20confusion.mp3" + ], + [ + "✍ lala", + "http://www.billwurtz.com/lala.jpg" + ], + [ + "the trees", + "http://www.billwurtz.com/the%20trees%20(okay,%20alright).mp3" + ], + [ + "✍ yes", + "http://www.billwurtz.com/yes.jpg" + ], + [ + "✍ no", + "http://www.billwurtz.com/no.jpg" + ], + [ + "✍ whatever", + "http://www.billwurtz.com/whatever.jpg" + ], + [ + "✍ fuck you", + "http://www.billwurtz.com/fuck%20you.jpg" + ], + [ + "✍ get outta here", + "http://www.billwurtz.com/get%20outta%20here.jpg" + ], + [ + "✍ pairs", + "http://www.billwurtz.com/pairs.jpg" + ], + [ + "✍ mushrooms on the sidewalk", + "http://www.billwurtz.com/mushrooms%20on%20the%20sidewalk.jpg" + ], + [ + "✍ rock'n'roll confusion", + "http://www.billwurtz.com/rocknroll%20confusion.jpg" + ], + [ + "jazz over pilotwings", + "http://www.billwurtz.com/jazzoverpilotwings.mp3" + ], + [ + " (i)", + "http://en.wikipedia.org/wiki/Pilotwings" + ], + [ + "sickness as usual", + "http://www.billwurtz.com/sickness%20as%20usual.mp3" + ], + [ + "i'm not sure", + "http://www.billwurtz.com/im%20not%20sure.mp3" + ], + [ + "mcdonald's", + "http://www.billwurtz.com/mcdonalds.mp3" + ], + [ + "fly away", + "http://www.billwurtz.com/fly%20away.mp3" + ], + [ + "my penis", + "http://www.billwurtz.com/my%20penis.mp3" + ], + [ + "sing me a song", + "http://www.billwurtz.com/sing%20me%20a%20song.mp3" + ], + [ + "note", + "http://www.billwurtz.com/note201010020803.html" + ], + [ + "what the fuck", + "http://www.billwurtz.com/what%20the%20fuck.mp3" + ], + [ + "hibernate", + "http://www.billwurtz.com/hibernate.mp3" + ], + [ + "✍ i'm not sure", + "http://www.billwurtz.com/im%20not%20sure.jpg" + ], + [ + "modern woes", + "http://www.billwurtz.com/modern%20woes.mp3" + ], + [ + "✍ sing me a song", + "http://www.billwurtz.com/sing%20me%20a%20song.jpg" + ], + [ + "✍ hibernate", + "http://www.billwurtz.com/hibernate.jpg" + ], + [ + "✍ disappear", + "http://www.billwurtz.com/disappear.jpg" + ], + [ + "✍ (page of shorts)", + "http://www.billwurtz.com/wtf,%20damn,%20i%20know,%20sickness,%20myp.jpg" + ], + [ + "writing\n", + "http://www.billwurtz.com/IMG_0502.JPG" + ], + [ + "✍ sexy alien", + "http://www.billwurtz.com/sexy%20alien.pdf" + ], + [ + "✍ i'm in bryant park", + "http://www.billwurtz.com/iminbryantpark.jpg" + ], + [ + "✍ mcdonald's", + "http://www.billwurtz.com/mcdonalds.jpg" + ], + [ + "✍ write me another", + "http://www.billwurtz.com/write%20me%20another.jpg" + ], + [ + "eat bread (feel sure)", + "http://www.billwurtz.com/feel%20sure%20(eat%20bread).mp3" + ], + [ + "2010", + "http://www.billwurtz.com/2010.mp3" + ], + [ + "✍ modern woes", + "http://www.billwurtz.com/modern%20woes.pdf" + ], + [ + "i'm sexy", + "http://www.billwurtz.com/i'm%20sexy.mp3" + ], + [ + " ✍ textin on my iphone", + "http://www.billwurtz.com/textin%20on%20my%20iphone.jpg" + ], + [ + "note", + "http://www.billwurtz.com/note201009010231.html" + ], + [ + "note", + "http://www.billwurtz.com/note201008312321.html" + ], + [ + "✍ we are free", + "http://www.billwurtz.com/we%20are%20free.jpg" + ], + [ + "watch", + "http://www.billwurtz.com/IMG_0494.JPG" + ], + [ + "still silly", + "http://www.billwurtz.com/still%20silly.mp3" + ], + [ + "lima beans", + "http://www.billwurtz.com/lima%20beans.mp3" + ], + [ + "heebity deebities", + "http://www.billwurtz.com/heebity%20deebities.mp3" + ], + [ + "barf on me", + "http://www.billwurtz.com/preface%20to%20creepy%20song.mp3" + ], + [ + "song 41", + "http://www.billwurtz.com/song%2041.mp3" + ], + [ + "tape deck", + "http://www.billwurtz.com/tape%20deck.mp3" + ], + [ + "✍ i'm sexy", + "http://www.billwurtz.com/im%20sexy.jpg" + ], + [ + "✍ heebity deebities", + "http://www.billwurtz.com/heebity%20deebities.jpg" + ], + [ + "✍ still silly", + "http://www.billwurtz.com/still%20silly.jpg" + ], + [ + "note", + "http://www.billwurtz.com/note201008230244.html" + ], + [ + "✍ i'm about to graduate from school", + "http://www.billwurtz.com/imabouttograduate.pdf" + ], + [ + "✍ diddle", + "http://www.billwurtz.com/diddle.jpg" + ], + [ + "✍ lima beans", + "http://www.billwurtz.com/lima%20beans.jpg" + ], + [ + "blind (to no avail)", + "http://www.billwurtz.com/blind%20(to%20no%20avail).mp3" + ], + [ + "feel okay", + "http://www.billwurtz.com/feel%20okay.mp3" + ], + [ + "no harm", + "http://www.billwurtz.com/no%20harm.mp3" + ], + [ + "the summertime", + "http://www.billwurtz.com/the%20summertime.mp3" + ], + [ + "we are humans", + "http://www.billwurtz.com/we%20are%20humans.mp3" + ], + [ + "be someone", + "http://www.billwurtz.com/be%20someone.mp3" + ], + [ + "✍ song 41", + "http://www.billwurtz.com/song%2041.jpg" + ], + [ + "✍ we are humans + no harm", + "http://www.billwurtz.com/we%20are%20humans%20+%20noharm.jpg" + ], + [ + "✍ the summertime", + "http://www.billwurtz.com/the%20summertime.jpg" + ], + [ + "✍ barf on me", + "http://www.billwurtz.com/barf%20on%20me.jpg" + ], + [ + "✍ tape deck", + "http://www.billwurtz.com/tape%20deck.jpg" + ], + [ + "✍ school", + "http://www.billwurtz.com/school.jpg" + ], + [ + "✍ i like", + "http://www.billwurtz.com/i%20like.pdf" + ], + [ + "✍ murder your demon", + "http://www.billwurtz.com/murder%20your%20demon.jpg" + ], + [ + "✍ 2010", + "http://www.billwurtz.com/2010.pdf" + ], + [ + "make me write my songs", + "http://www.billwurtz.com/make%20me%20write%20my%20songs.mp3" + ], + [ + "✍ feel okay", + "http://www.billwurtz.com/feel%20okay.jpg" + ], + [ + "✍ blind (to no avail)", + "http://www.billwurtz.com/blind-to-no-avail.jpg" + ], + [ + "✍ fever (is what makes you sick)", + "http://www.billwurtz.com/fever%20(is%20what%20makes%20you%20sick).jpg" + ], + [ + "don't make", + "http://www.billwurtz.com/don't%20make.mp3" + ], + [ + "✍ don't make", + "http://www.billwurtz.com/don't%20make.jpg" + ], + [ + "we're all gonna be fine", + "http://www.billwurtz.com/were%20all%20gonna%20be%20fine.mp3" + ], + [ + "desk and chair", + "http://www.billwurtz.com/desk%20and%20chair.mp3" + ], + [ + "home from work", + "http://www.billwurtz.com/home%20from%20work.mp3" + ], + [ + "dance the", + "http://www.billwurtz.com/dance%20the.mp3" + ], + [ + "you can fly", + "http://www.billwurtz.com/you%20can%20fly.mp3" + ], + [ + "i wanna be with you", + "http://www.billwurtz.com/i%20wanna%20be%20with%20you.mp3" + ], + [ + "be free and don't sell records", + "http://www.billwurtz.com/be%20free%20and%20don't%20sell%20records.mp3" + ], + [ + "wondering how to feel", + "http://www.billwurtz.com/wondering%20how%20to%20feel.mp3" + ], + [ + "picture", + "http://www.billwurtz.com/100_0554.JPG" + ], + [ + "the ladies", + "http://www.billwurtz.com/the%20ladies.mp3" + ], + [ + "i'm sad", + "http://www.billwurtz.com/i'm%20sad.mp3" + ], + [ + "i wanna go home", + "http://www.billwurtz.com/i%20wanna%20go%20home.mp3" + ], + [ + "not so hard to do", + "http://www.billwurtz.com/not%20so%20hard%20to%20do.mp3" + ], + [ + "instrumental: i'm alive", + "http://www.billwurtz.com/im%20alive.mp3" + ], + [ + "instrumental: groove thing", + "http://www.billwurtz.com/groove%20thing.mp3" + ], + [ + "✍ be someone", + "http://www.billwurtz.com/be%20someone.jpg" + ], + [ + "shut up", + "http://www.billwurtz.com/shut%20up.mp3" + ], + [ + "don't talk to me", + "http://www.billwurtz.com/don't%20talk%20to%20me.mp3" + ], + [ + "magnet", + "http://www.billwurtz.com/magnet.mp3" + ], + [ + "diamond", + "http://www.billwurtz.com/diamond.mp3" + ], + [ + "instrumental: no castle", + "http://www.billwurtz.com/no%20castle.mp3" + ], + [ + "feathered box", + "http://www.billwurtz.com/feathered%20box.mp3" + ], + [ + "instrumental: wind and raeihgn", + "http://www.billwurtz.com/wind%20and%20raeihgn.mp3" + ], + [ + "instrumental: this song yeah", + "http://www.billwurtz.com/this%20song%20yeah.mp3" + ], + [ + "bears", + "http://www.billwurtz.com/bears.mp3" + ], + [ + "die", + "http://www.billwurtz.com/die.mp3" + ], + [ + "little door", + "http://www.billwurtz.com/little%20door.mp3" + ], + [ + "couldn't succeed", + "http://www.billwurtz.com/couldnt%20succeed.mp3" + ], + [ + "go home", + "http://www.billwurtz.com/go%20home.mp3" + ], + [ + "napkins", + "http://www.billwurtz.com/napkins.mp3" + ], + [ + "burger king", + "http://www.billwurtz.com/burger%20king.mp3" + ], + [ + "zʇɹnʍ", + "http://www.billwurtz.com/3%207%2010%20f.png" + ], + [ + "hello", + "http://www.billwurtz.com/3%207%2010%20e.png" + ], + [ + "w t f", + "http://www.billwurtz.com/3%207%2010%20b.png" + ], + [ + "hi", + "http://www.billwurtz.com/3%207%2010%20a.png" + ], + [ + "instrumental: grand piano demo", + "http://www.billwurtz.com/grand%20piano%20demo.mp3" + ], + [ + "instrumental: my sad song", + "http://www.billwurtz.com/my%20sad%20song.mp3" + ], + [ + "✍ you can fly", + "http://www.billwurtz.com/you%20can%20fly.jpg" + ], + [ + "instrumental: thing 1 10 10 ", + "http://www.billwurtz.com/11010%20the%20thing.mp3" + ], + [ + "making", + "http://www.billwurtz.com/making.png" + ], + [ + "✍ thing 1 10 10 ", + "http://www.billwurtz.com/thing%201%2010%2010.jpg" + ], + [ + "astoria", + "http://www.billwurtz.com/astoria%20jan%20music%20stat.png" + ], + [ + "✍ i wanna be with you", + "http://www.billwurtz.com/i%20wanna%20be%20with%20you.jpg" + ], + [ + "✍ rabbit snakes", + "http://www.billwurtz.com/rabbitsnakes.pdf" + ], + [ + "christmas", + "http://www.billwurtz.com/100_0476.JPG" + ], + [ + "✍ dance the", + "http://www.billwurtz.com/dance%20the.jpg" + ], + [ + "✍ eatbread (feelsure)", + "http://www.billwurtz.com/eatbread%20(feelsure).pdf" + ], + [ + "15 minutes", + "http://www.billwurtz.com/precursor.mp3" + ], + [ + "✍ 15 minutes", + "http://www.billwurtz.com/15%20minutes.jpg" + ], + [ + "✍ the trees", + "http://www.billwurtz.com/the%20trees.pdf" + ], + [ + "✍ desk and chair", + "http://www.billwurtz.com/desk%20and%20chair.jpg" + ], + [ + "the moon", + "http://www.billwurtz.com/moon.png" + ], + [ + "gleam", + "http://www.billwurtz.com/100_0451.JPG" + ], + [ + "a wall", + "http://www.billwurtz.com/100_0441.JPG" + ], + [ + "instrumental: window pain", + "http://www.billwurtz.com/window%20pain.mp3" + ], + [ + "punk: who am i (iris)", + "http://www.billwurtz.com/iris.mp3" + ], + [ + " (i)", + "http://en.wikipedia.org/wiki/Iris_(Goo_Goo_Dolls_song)" + ], + [ + "instrumental: jungle mania", + "http://www.billwurtz.com/jungle%20mania.mp3" + ], + [ + "greene tree", + "http://www.billwurtz.com/100_0415.JPG" + ], + [ + "A train", + "http://www.billwurtz.com/Picture%20104.png" + ], + [ + "jamaica ray", + "http://www.billwurtz.com/Picture%2097.png" + ], + [ + "brick wall", + "http://www.billwurtz.com/Picture%2085.png" + ], + [ + "Δ", + "http://www.billwurtz.com/Picture%2083.png" + ], + [ + "321", + "http://www.billwurtz.com/Picture%2081.png" + ], + [ + "fries", + "http://www.billwurtz.com/Picture%2079.png" + ], + [ + "palm tree", + "http://www.billwurtz.com/Picture%2073.png" + ], + [ + "shrub", + "http://www.billwurtz.com/Picture%2071.png" + ], + [ + "board", + "http://www.billwurtz.com/Picture%2055.png" + ], + [ + "        bench", + "http://www.billwurtz.com/Picture%2049.png" + ], + [ + "can", + "http://www.billwurtz.com/Picture%2044.png" + ], + [ + "hi", + "http://www.billwurtz.com/Picture%2030.png" + ], + [ + "☺", + "http://www.billwurtz.com/smile.png" + ], + [ + "☾/☼", + "http://www.billwurtz.com/soon.png" + ], + [ + "blue chair\n", + "http://www.billwurtz.com/Picture%202.png" + ], + [ + "nuts", + "http://www.billwurtz.com/Picture%2017.png" + ], + [ + "cash", + "http://www.billwurtz.com/Picture%2016.png" + ], + [ + "four", + "http://www.billwurtz.com/Picture%2013.png" + ], + [ + "key", + "http://www.billwurtz.com/Picture%2012.png" + ], + [ + "paper", + "http://www.billwurtz.com/Picture%206.png" + ], + [ + "pod", + "http://www.billwurtz.com/Picture%2024.png" + ], + [ + "shadow", + "http://www.billwurtz.com/Picture%2023.png" + ], + [ + "pencil", + "http://www.billwurtz.com/pencil.jpg" + ], + [ + "brush", + "http://www.billwurtz.com/Picture%2014.png" + ], + [ + "peaks", + "http://www.billwurtz.com/100_0238.JPG" + ], + [ + "Hey!", + "http://www.billwurtz.com/100_0230.JPG" + ], + [ + "keys", + "http://www.billwurtz.com/100_0227.JPG" + ], + [ + "ok", + "http://www.billwurtz.com/Picture%209.png" + ], + [ + "∅ Do not lean", + "http://www.billwurtz.com/do%20not%20lean.png" + ], + [ + "FOREVER", + "http://www.billwurtz.com/forever.png" + ], + [ + "     6   — —   —   • ●", + "http://www.billwurtz.com/red%206%20windows.png" + ], + [ + "     6   ¦   — —   — —   — —   █ █   • ●", + "http://www.billwurtz.com/red%206%20windows%203.png" + ], + [ + "triforce", + "http://www.billwurtz.com/triforce.png" + ], + [ + " ⌚/⊟", + "http://www.billwurtz.com/hidden%20clock.png" + ], + [ + "time of day", + "http://www.billwurtz.com/union%20ticker.png" + ], + [ + "HOE MANIA", + "http://www.billwurtz.com/hoe%20mania.png" + ], + [ + "BW", + "http://www.billwurtz.com/bw.png" + ], + [ + "chrys", + "http://www.billwurtz.com/chrysler%20thru%20trees.png" + ], + [ + "sex", + "http://www.billwurtz.com/sex.png" + ], + [ + "lamp", + "http://www.billwurtz.com/red%20lamppost.png" + ], + [ + "ci͡ti", + "http://www.billwurtz.com/citi%20b%203.png" + ], + [ + "wall", + "http://www.billwurtz.com/abra.png" + ], + [ + "cardinal", + "http://www.billwurtz.com/cardinal.png" + ], + [ + "weird tree", + "http://www.billwurtz.com/weird%20tree.png" + ], + [ + "✝", + "http://www.billwurtz.com/cross%202.png" + ], + [ + "forge", + "http://www.billwurtz.com/forge.png" + ], + [ + "george", + "http://www.billwurtz.com/george.png" + ], + [ + "entertain spaceman", + "http://www.billwurtz.com/entertain%20spaceman%202.png" + ], + [ + " ▦", + "http://www.billwurtz.com/100_0123.JPG" + ], + [ + "†", + "http://www.billwurtz.com/100_0119.JPG" + ], + [ + "atm", + "http://www.billwurtz.com/100_0115.JPG" + ], + [ + "instrumental: good night", + "http://www.billwurtz.com/good%20night.mp3" + ], + [ + "instrumental: aimless", + "http://www.billwurtz.com/aimless.mp3" + ], + [ + "instrumental: music time", + "http://www.billwurtz.com/music%20time.mp3" + ], + [ + "room", + "http://www.billwurtz.com/bwcrazy.png" + ], + [ + "knick", + "http://www.billwurtz.com/100_0021.JPG" + ], + [ + "34", + "http://www.billwurtz.com/100_0020.JPG" + ], + [ + "instrumental: planet earth", + "http://www.billwurtz.com/planet%20earth.mp3" + ], + [ + "waltz", + "http://www.billwurtz.com/bwwaltzastoria%2010%207%2009.jpg" + ], + [ + "Marketing Telephono ft. Chris Aiello", + "http://www.billwurtz.com/marketing%20telephono.mp3" + ], + [ + "youtube escape song", + "http://www.billwurtz.com/youtube%20escape%20song.html" + ], + [ + "the song song", + "http://www.billwurtz.com/THE%20SONG%20SONG.mp3" + ], + [ + "note", + "http://www.billwurtz.com/ver.html" + ], + [ + "note", + "http://www.billwurtz.com/note200907120158.html" + ], + [ + "!OMG.", + "http://www.billwurtz.com/7%209%2009%20omg.png" + ], + [ + "text alligator", + "http://www.billwurtz.com/text%20alligator.png" + ], + [ + "instrumental: typhoon sample measuring kit", + "http://www.billwurtz.com/typhoon%20sample%20measuring%20kit.mp3" + ], + [ + "instrumental: time mop", + "http://www.billwurtz.com/time%20mop.mp3" + ], + [ + "instrumental: wrecked music of the state capital", + "http://www.billwurtz.com/wrecked%20music%20of%20the%20state%20capital.mp3" + ], + [ + "instrumental: help me, i'm trapped in the center of a rectangle", + "http://www.billwurtz.com/help%20me,%20i'm%20trapped%20in%20the%20center%20of%20a%20rectangle.mp3" + ], + [ + "punk: your body is a wonderland", + "http://www.billwurtz.com/yourbodyisawonderland.mp3" + ], + [ + " (i)", + "http://en.wikipedia.org/wiki/Your_Body_Is_A_Wonderland" + ], + [ + "✍ here's the reason you can't write songs @ home, cause there's no limit to the amount of time you could or could not stay there", + "http://www.billwurtz.com/home%20from%20work.jpg" + ], + [ + "by the hill", + "http://www.billwurtz.com/by%20the%20hill.jpg" + ], + [ + "note", + "http://www.billwurtz.com/note200905140227.html" + ], + [ + "train prose", + "http://www.billwurtz.com/trainprose20090512.html" + ], + [ + "train prose", + "http://www.billwurtz.com/trainprose20090430.html" + ], + [ + "note", + "http://www.billwurtz.com/note200903.html" + ], + [ + "punk: welcome to the jungle", + "http://www.billwurtz.com/rule.mp3" + ], + [ + " (i)", + "http://en.wikipedia.org/wiki/Everybody_Wants_to_Rule_the_World" + ], + [ + "note", + "http://www.billwurtz.com/note200809200645.html" + ], + [ + "f", + "http://www.billwurtz.com/fb20080502.jpg" + ], + [ + "note", + "http://www.billwurtz.com/note200708181927.html" + ], + [ + "note", + "http://www.billwurtz.com/note20070125.html" + ], + [ + "instrumental: paradise", + "http://www.billwurtz.com/paradise.mp3" + ], + [ + "instrumental: Trade X", + "http://www.billwurtz.com/Trade%20X.mp3" + ], + [ + "journal", + "http://www.billwurtz.com/42306.jpg" + ], + [ + "note", + "http://www.billwurtz.com/note200512180420.html" + ], + [ + "note", + "http://www.billwurtz.com/note200510131728.html" + ], + [ + "note", + "http://www.billwurtz.com/note200510090646.html" + ], + [ + "note", + "http://www.billwurtz.com/note200510080413.html" + ], + [ + "trad harm class notes", + "http://www.billwurtz.com/tradharm05.jpg" + ], + [ + "note", + "http://www.billwurtz.com/note200508022112.html" + ], + [ + "note", + "http://www.billwurtz.com/note200507291354.html" + ], + [ + "note", + "http://www.billwurtz.com/note200506291803.html" + ], + [ + "note", + "http://www.billwurtz.com/note200507290135.html" + ], + [ + "note", + "http://www.billwurtz.com/note200507290130.html" + ], + [ + "note", + "http://www.billwurtz.com/note200506232359.html" + ], + [ + "note", + "http://www.billwurtz.com/note200506232335.html" + ], + [ + "note", + "http://www.billwurtz.com/note200506051915.html" + ], + [ + "note", + "http://www.billwurtz.com/note200506051803.html" + ], + [ + "stuck in a rut", + "http://www.billwurtz.com/rut.mp3" + ], + [ + "note", + "http://www.billwurtz.com/note200503020249.html" + ], + [ + "note", + "http://www.billwurtz.com/note20050207.html" + ], + [ + "note", + "http://www.billwurtz.com/note200412301800.html" + ], + [ + "instrumental: illuminated glass container", + "http://www.billwurtz.com/igc.mp3" + ], + [ + "instrumental: frontier cave", + "http://www.billwurtz.com/frontiercave.mp3" + ], + [ + "instrumental: sincere sam", + "http://www.billwurtz.com/sinceresam.mp3" + ], + [ + "instrumental: Late Nite Lounge with Loud Lenny", + "http://www.billwurtz.com/late-nite-lounge-with-loud-lenny.mp3" + ] +] diff --git a/local.json b/local.json new file mode 100644 index 0000000..f40a90b --- /dev/null +++ b/local.json @@ -0,0 +1,90 @@ +[ + [ + ".DS_Store", + "/Users/towerofnix/Documents/Clever Icecream/.DS_Store" + ], + [ + "AI Classics", + [ + [ + ".DS_Store", + "/Users/towerofnix/Documents/Clever Icecream/AI Classics/.DS_Store" + ], + [ + "background2.mp3", + "/Users/towerofnix/Documents/Clever Icecream/AI Classics/background2.mp3" + ], + [ + "background3.mp3", + "/Users/towerofnix/Documents/Clever Icecream/AI Classics/background3.mp3" + ], + [ + "backgroundgames.mp3", + "/Users/towerofnix/Documents/Clever Icecream/AI Classics/backgroundgames.mp3" + ], + [ + "gnom.mp3", + "/Users/towerofnix/Documents/Clever Icecream/AI Classics/gnom.mp3" + ] + ] + ], + [ + "Bright", + [ + [ + "Circus Waltz FX.mp3", + "/Users/towerofnix/Documents/Clever Icecream/Bright/Circus Waltz FX.mp3" + ], + [ + "Hammock Fight.mp3", + "/Users/towerofnix/Documents/Clever Icecream/Bright/Hammock Fight.mp3" + ] + ] + ], + [ + "Classic", + [ + [ + ".DS_Store", + "/Users/towerofnix/Documents/Clever Icecream/Classic/.DS_Store" + ], + [ + "Brandenburg No4-1 BWV1049.mp3", + "/Users/towerofnix/Documents/Clever Icecream/Classic/Brandenburg No4-1 BWV1049.mp3" + ], + [ + "Jesu.mp3", + "/Users/towerofnix/Documents/Clever Icecream/Classic/Jesu.mp3" + ], + [ + "Waltz - Tschikovsky Op. 40.mp3", + "/Users/towerofnix/Documents/Clever Icecream/Classic/Waltz - Tschikovsky Op. 40.mp3" + ] + ] + ], + [ + "Rock", + [ + [ + "Easy Jam.mp3", + "/Users/towerofnix/Documents/Clever Icecream/Rock/Easy Jam.mp3" + ], + [ + "Feelin Good.mp3", + "/Users/towerofnix/Documents/Clever Icecream/Rock/Feelin Good.mp3" + ], + [ + "Malt Shop Bop.mp3", + "/Users/towerofnix/Documents/Clever Icecream/Rock/Malt Shop Bop.mp3" + ], + [ + "Pilot Error.mp3", + "/Users/towerofnix/Documents/Clever Icecream/Rock/Pilot Error.mp3" + ], + [ + "backgroundmathgames.mp3", + "/Users/towerofnix/Documents/Clever Icecream/Rock/backgroundmathgames.mp3" + ] + ] + ] +] diff --git a/src/http-music.js b/src/http-music.js index 3d7e217..f6c1a52 100755 --- a/src/http-music.js +++ b/src/http-music.js @@ -246,7 +246,11 @@ setupDefaultPlaylist('./playlist.json') process.stdin.on('data', data => { if (Buffer.from('s').equals(data)) { - play.skip() + play.skipCurrent() + } + + if (Buffer.from([0x7f]).equals(data)) { // Delete + play.skipUpNext() } if ( diff --git a/src/loop-play.js b/src/loop-play.js index 100c14b..b49d9e4 100644 --- a/src/loop-play.js +++ b/src/loop-play.js @@ -8,43 +8,107 @@ const tempy = require('tempy') class DownloadController { constructor(picker, downloader) { this.process = null + this.requestingSkipUpNext = false + this.isDownloading = false this.picker = picker this.downloader = downloader } async downloadNext() { + this.requestingSkipUpNext = false + this.isDownloading = true + + // We need to actually pick something to download; we'll use the picker + // (given in the DownloadController constructor) for that. + // (See pickers.js.) const picked = this.picker() + // If the picker returns null, nothing was picked; that means that we + // should stop now. No point in trying to play nothing! if (picked == null) { + this.wavFile = null return false } + // The picked result is an array containing the title of the track (only + // really used to display to the user) and an argument to be passed to the + // downloader. The downloader argument doesn't have to be anything in + // particular; but typically it's a string containing a URL or file path. + // It's up to the downloader to decide what to do with it. const [ title, downloaderArg ] = picked + console.log(`Downloading ${title}..\nDownloader arg: ${downloaderArg}`) + // The "from" file is downloaded by the downloader (given in the + // DownloadController constructor) using the downloader argument we just + // got. const from = await this.downloader(downloaderArg) + // The "to" file is simply a WAV file. We give this WAV file a specific + // name - the title of the track we got earlier, sanitized to be file-safe + // - so that when `play` outputs the name of the song, it's obvious to the + // user what's being played. const tempDir = tempy.directory() const to = tempDir + `/.${sanitize(title)}.wav` - // We pass false to promisifyProcess to show we want hte output of avconv - // to be silenced. - const convertProcess = spawn('avconv', ['-y', '-i', from, to]) - const convertPromise = promisifyProcess(convertProcess, false) - + // Now that we've got the `to` and `from` file names, we can actually do + // the convertion. We don't want any output from `avconv` at all, since the + // output of `play` will usually be displayed while `avconv` is running, + // so we pass `-loglevel quiet` into `avconv`. + const convertProcess = spawn('avconv', [ + '-loglevel', 'quiet', '-i', from, to + ]) + + // It's handy to store the output WAV file (the "to" file) and the `avconv` + // process; the WAV file is used later to be played, and the convert + // process is stored so it can be killed before it finishes. this.wavFile = to this.process = convertProcess + // Now it's only a matter of time before the process is finished. + // Literally; we need to await the promisified version of our convertion + // child process. try { - await convertPromise + await promisifyProcess(convertProcess) } catch(err) { console.warn("Failed to convert " + title) console.warn("Selecting a new track\n") + // There's a chance we'll fail, though. That could happen if the passed + // "from" file doesn't actually contain audio data. In that case, we + // have to attempt this whole process over again, so that we get a + // different file. (Technically, the picker might always pick the same + // file; if that's the case, and the convert process is failing on it, + // we could end up in an infinite loop. That would be bad, since there + // isn't any guarding against a situation like that here.) + return await this.downloadNext() + } + + // If we were requested to skip the up-next track that's currently being + // downloaded (probably by the user), we'll have to do that now. + if (this.requestingSkipUpNext) return await this.downloadNext() + + // We successfully downloaded something, and so the downloadNext function + // is done. We mark that here, so that skipUpNext will know that it'll need + // to start a whole new downloadNext to have any effect. + this.isDownloading = false + } + + skipUpNext() { + // If we're already in the process of downloading the up-next track, we'll + // set the requestingSkipUpNext flag to true. downloadNext will use this to + // cancel its current download and begin new. + if (this.isDownloading) { + this.requestingSkipUpNext = true this.killProcess() + } - return await this.downloadNext() + // If we aren't currently downloading a track, downloadNext won't + // automatically be called from the start again, so we need to do that + // here. + if (!this.isDownloading) { + this.downloadNext() } } @@ -64,6 +128,9 @@ class PlayController { } async loopPlay() { + // Playing music in a loop isn't particularly complicated; essentially, we + // just want to keep downloading and playing tracks until none is picked. + await this.downloadController.downloadNext() while (this.downloadController.wavFile) { @@ -109,10 +176,14 @@ module.exports = function loopPlay(picker, downloader, playArgs = []) { return { promise, - skip: function() { + skipCurrent: function() { playController.killProcess() }, + skipUpNext: function() { + downloadController.skipUpNext() + }, + kill: function() { playController.killProcess() downloadController.killProcess() diff --git a/src/promisify-process.js b/src/promisify-process.js index 4d06f8c..d1c09d7 100644 --- a/src/promisify-process.js +++ b/src/promisify-process.js @@ -2,26 +2,14 @@ const { Writable } = require('stream') -module.exports = function promisifyProcess(proc, showLogging = true) { - // Takes a process (from child_process) and returns a promise that resolves - // when the process exits (or rejects with a warning, if the exit code is - // non-zero). +module.exports = function promisifyProcess(proc) { + // Takes a process (from the child_process module) and returns a promise that + // resolves when the process exits (or rejects with a warning, if the exit + // code is non-zero). return new Promise((resolve, reject) => { - if (showLogging) { - proc.stdout.pipe(process.stdout) - proc.stderr.pipe(process.stderr) - } else { - // For some mysterious reason, youtube-dl doesn't seem to work unless - // we pipe the output of it SOMEWHERE.. - - const emptyStream = () => Object.assign(new Writable(), { - write: () => {} - }) - - proc.stdout.pipe(emptyStream()) - proc.stderr.pipe(emptyStream()) - } + proc.stdout.pipe(process.stdout) + proc.stderr.pipe(process.stderr) proc.on('exit', code => { if (code === 0) { diff --git a/todo.txt b/todo.txt index a2526f0..5cfac31 100644 --- a/todo.txt +++ b/todo.txt @@ -108,6 +108,7 @@ TODO: Separate the code in loop-play.js to be a bit nicer. TODO: Cleaning up http-music.js would be nice as well! TODO: A way to kill the up-next song. + (Done!) TODO: A way to see information about the currently playing song, as well as the up-next song. diff --git a/wynn.json b/wynn.json new file mode 100644 index 0000000..0d2e651 --- /dev/null +++ b/wynn.json @@ -0,0 +1,338 @@ +[ + [ + "Wynncraft Noteblock OST - InTheLittleWood", + "https://www.youtube.com/watch?v=1fWEhOyqwvs" + ], + [ + "Wynncraft Noteblock OST - Humble Village", + "https://www.youtube.com/watch?v=SHhGaipKJoE" + ], + [ + "Wynncraft Noteblock OST - Harmonic Nostalgia", + "https://www.youtube.com/watch?v=5XyxkhlithQ" + ], + [ + "Wynncraft Noteblock OST - Graveyard", + "https://www.youtube.com/watch?v=l6JPDVfwBFI" + ], + [ + "Wynncraft Noteblock OST - Gavel Adventure", + "https://www.youtube.com/watch?v=WxqwgcAwVnA" + ], + [ + "Wynncraft Noteblock OST - Frozen Lands", + "https://www.youtube.com/watch?v=zV43weChpbc" + ], + [ + "Wynncraft Noteblock OST - EpicGavel2", + "https://www.youtube.com/watch?v=fBqHogKqcYs" + ], + [ + "Wynncraft Noteblock OST - Efilim", + "https://www.youtube.com/watch?v=49DfFuBnzb0" + ], + [ + "Wynncraft Noteblock OST - Detlas2", + "https://www.youtube.com/watch?v=xD4zSClXhsc" + ], + [ + "Wynncraft Noteblock OST - Detlas Suburbs", + "https://www.youtube.com/watch?v=CurMUBXLB_w" + ], + [ + "Wynncraft Noteblock OST - Dark Forest", + "https://www.youtube.com/watch?v=KCgK9_33MKI" + ], + [ + "Wynncraft Noteblock OST - Cinfras", + "https://www.youtube.com/watch?v=_Y2Z-XXMyEc" + ], + [ + "Wynncraft Noteblock OST - Cinfras County", + "https://www.youtube.com/watch?v=XhnNtWp3m7A" + ], + [ + "Wynncraft Noteblock OST - Canyon of the Lost", + "https://www.youtube.com/watch?v=eM-GZseC34w" + ], + [ + "Wynncraft Noteblock OST - Canyon", + "https://www.youtube.com/watch?v=7RUh1sQthoA" + ], + [ + "Wynncraft Noteblock OST - Bantisu", + "https://www.youtube.com/watch?v=RD3FAlOxyAE" + ], + [ + "Wynncraft Noteblock OST - Ballad of the Trees", + "https://www.youtube.com/watch?v=cajvtqdu5Z8" + ], + [ + "Wynncraft Noteblock OST - Almuj", + "https://www.youtube.com/watch?v=apE0fxBnUk4" + ], + [ + "Wynncraft Noteblock OST - Aldorei", + "https://www.youtube.com/watch?v=SqtL0WJr_jQ" + ], + [ + "Wynncraft Noteblock OST - Airship", + "https://www.youtube.com/watch?v=5LHX6W4udcA" + ], + [ + "Wynncraft Noteblock OST - Tense", + "https://www.youtube.com/watch?v=PFs8oDYkWYA" + ], + [ + "Wynncraft Noteblock OST - Troms", + "https://www.youtube.com/watch?v=q_ORDanZSMQ" + ], + [ + "Wynncraft Noteblock OST - Eltom", + "https://www.youtube.com/watch?v=EoIv5vo2BNM" + ], + [ + "Wynncraft Noteblock OST - Corkus", + "https://www.youtube.com/watch?v=fN5_wEc7Pnk" + ], + [ + "Wynncraft Noteblock OST - Corkus Docks", + "https://www.youtube.com/watch?v=oPrvg94ahRs" + ], + [ + "Wynncraft Noteblock OST - Corkus City", + "https://www.youtube.com/watch?v=STgFxe6a40U" + ], + [ + "Wynncraft Noteblock OST - Avos", + "https://www.youtube.com/watch?v=8Kqpr8ZiT0s" + ], + [ + "Wynncraft Noteblock OST - Ahmsord", + "https://www.youtube.com/watch?v=zWvIXbdEAr4" + ], + [ + "Wynncraft Noteblock OST - Thesead", + "https://www.youtube.com/watch?v=fpln2_n0HQs" + ], + [ + "Wynncraft Noteblock OST - The Legend Begins", + "https://www.youtube.com/watch?v=VnX6dk6K3Ws" + ], + [ + "Wynncraft Noteblock OST - Thanos", + "https://www.youtube.com/watch?v=5nxaW8Ls93I" + ], + [ + "Wynncraft Noteblock OST - Ternaves", + "https://www.youtube.com/watch?v=See4okgHHlw" + ], + [ + "Wynncraft Noteblock OST - Swamp", + "https://www.youtube.com/watch?v=2iGp2oclB30" + ], + [ + "Wynncraft Noteblock OST - Spook", + "https://www.youtube.com/watch?v=d0ue1iBUo5M" + ], + [ + "Wynncraft Noteblock OST - Rymek", + "https://www.youtube.com/watch?v=Meg4Kkf2QmU" + ], + [ + "Wynncraft Noteblock OST - Olux", + "https://www.youtube.com/watch?v=83TrARweuDA" + ], + [ + "Wynncraft Noteblock OST - Nesaak", + "https://www.youtube.com/watch?v=L32y_aF34-U" + ], + [ + "Wynncraft Noteblock OST - Nemract", + "https://www.youtube.com/watch?v=SBniRXTTRdc" + ], + [ + "Wynncraft Noteblock OST - Llevigar", + "https://www.youtube.com/watch?v=SdwUYGfSSFg" + ], + [ + "Wynncraft Noteblock OST - Light Forest", + "https://www.youtube.com/watch?v=yqQtXnjyEjY" + ], + [ + "Wynncraft Noteblock OST - Lexdale", + "https://www.youtube.com/watch?v=VQDaJcNQuDI" + ], + [ + "Wynncraft Noteblock OST - Lament of the Decay", + "https://www.youtube.com/watch?v=Gun24TDtH38" + ], + [ + "Wynncraft Noteblock OST - Karoc Quarry", + "https://www.youtube.com/watch?v=Bk6sh7DnCZ8" + ], + [ + "Wynncraft Noteblock OST - Kander Woods", + "https://www.youtube.com/watch?v=SvNwD52hTpA" + ], + [ + "Wynncraft Noteblock OST - Bob's Tomb", + "https://www.youtube.com/watch?v=X1BMrf-3Wfw" + ], + [ + "Wynncraft Noteblock OST - Bremminglar", + "https://www.youtube.com/watch?v=Jz7I9Su3zv8" + ], + [ + "Wynncraft Noteblock OST - Lusuco", + "https://www.youtube.com/watch?v=7BbHaZvuSzg" + ], + [ + "Wynncraft Noteblock OST - Icy Steps", + "https://www.youtube.com/watch?v=GOIn-HKZDbM" + ], + [ + "Wynncraft Noteblock OST - Roots of Corruption", + "https://www.youtube.com/watch?v=r1ZWbYCoJ8k" + ], + [ + "Wynncraft Noteblock OST - Ancient Nemract", + "https://www.youtube.com/watch?v=BWDioHENC3M" + ], + [ + "Wynncraft Noteblock OST - The Coast", + "https://www.youtube.com/watch?v=k_P1iQWOIko" + ], + [ + "Wynncraft Noteblock OST - Ragni", + "https://www.youtube.com/watch?v=pHH9kyhF0lQ" + ], + [ + "Wynncraft Noteblock OST - Maltic", + "https://www.youtube.com/watch?v=lr-YPA405OA" + ], + [ + "Wynncraft Noteblock OST - Quest Givers", + "https://www.youtube.com/watch?v=9qu-CJa6qac" + ], + [ + "Wynncraft Noteblock OST - Ravine Village", + "https://www.youtube.com/watch?v=6rEB8SL9jIo" + ], + [ + "Wynncraft Noteblock OST - EpicWynn2", + "https://www.youtube.com/watch?v=mwlxOeh9qZc" + ], + [ + "Wynncraft Noteblock OST - Time Valley", + "https://www.youtube.com/watch?v=TaCUb0bFwR4" + ], + [ + "Wynncraft Noteblock OST - Adventure", + "https://www.youtube.com/watch?v=xhO5eQallp4" + ], + [ + "Wynncraft Noteblock OST - Dogovi", + "https://www.youtube.com/watch?v=j5Y_p74K7hg" + ], + [ + "Wynncraft Noteblock OST - Jofash Docks", + "https://www.youtube.com/watch?v=a2iusNXXIFM" + ], + [ + "Wynncraft Noteblock OST - Lower Molten Heights", + "https://www.youtube.com/watch?v=A7TVK0MYN-I" + ], + [ + "Wynncraft Noteblock OST - Pirate Cove", + "https://www.youtube.com/watch?v=dvGK4rqJPyU" + ], + [ + "Wynncraft Noteblock OST - Relos", + "https://www.youtube.com/watch?v=zZN_30FDXiI" + ], + [ + "Wynncraft Noteblock OST - Selchar's Shore", + "https://www.youtube.com/watch?v=RZvI4f6pkNQ" + ], + [ + "Wynncraft Noteblock OST - Rodoroc", + "https://www.youtube.com/watch?v=ge0R_RnM-aw" + ], + [ + "Wynncraft Noteblock OST - Sky Islands", + "https://www.youtube.com/watch?v=1chw_l0DY0k" + ], + [ + "Wynncraft Noteblock OST - Upper Molten Heights", + "https://www.youtube.com/watch?v=3easHldfNog" + ], + [ + "Wynncraft Noteblock OST - Craftmas", + "https://www.youtube.com/watch?v=oLEVTINxuWg" + ], + [ + "Wynncraft Noteblock OST - Crystal Falls", + "https://www.youtube.com/watch?v=pMWY-KsG2Gg" + ], + [ + "Wynncraft Noteblock OST - Dernel Ruins", + "https://www.youtube.com/watch?v=ZrbGjUC9ot4" + ], + [ + "Wynncraft Noteblock OST - Fallen Factory", + "https://www.youtube.com/watch?v=8oOLJCrAkc4" + ], + [ + "Wynncraft Noteblock OST - Guild Wars", + "https://www.youtube.com/watch?v=29mRE1kx1JE" + ], + [ + "Wynncraft Noteblock OST - Ice Islands", + "https://www.youtube.com/watch?v=fotoZNB8sHk" + ], + [ + "Wynncraft Noteblock OST - Kandon-Beda", + "https://www.youtube.com/watch?v=76f6VjP3pPU" + ], + [ + "Wynncraft Noteblock OST - Legendary Rumble", + "https://www.youtube.com/watch?v=KasI0WgKPj4" + ], + [ + "Wynncraft Noteblock OST - Maro Peaks", + "https://www.youtube.com/watch?v=dSck3sn8iZo" + ], + [ + "Wynncraft Noteblock OST - Skien's March", + "https://www.youtube.com/watch?v=_nMqZpmfiy0" + ], + [ + "Wynncraft Noteblock OST - Tomb", + "https://www.youtube.com/watch?v=Wo_RkH0Sq7Y" + ], + [ + "Wynncraft Noteblock OST - Trippy Forest", + "https://www.youtube.com/watch?v=C1sXYYDHN9k" + ], + [ + "Wynncraft Noteblock OST - Tower of Ascension", + "https://www.youtube.com/watch?v=g1pBcqMaxk4" + ], + [ + "Wynncraft Noteblock OST - Ice Barrows", + "https://www.youtube.com/watch?v=XBCtrTLBVWQ" + ], + [ + "Wynncraft Noteblock OST - Infested Pit", + "https://www.youtube.com/watch?v=B0UGOzHiVpU" + ], + [ + "Wynncraft Noteblock OST - Sand-Swept Tomb", + "https://www.youtube.com/watch?v=niIMXACg8PY" + ], + [ + "Wynncraft Noteblock OST - Underworld Crypt", + "https://www.youtube.com/watch?v=H5zxV1thoTY" + ] +] \ No newline at end of file diff --git a/yt.json b/yt.json new file mode 100644 index 0000000..1b7e4cf --- /dev/null +++ b/yt.json @@ -0,0 +1,54 @@ +[ + [ + "Itchy Itchy, Part 5", + "https://www.youtube.com/watch?v=2DlzC2eAhOo" + ], + [ + "Itchy Itchy, Part 6", + "https://www.youtube.com/watch?v=Ii2ZYqP8vOU" + ], + [ + "Broken Toy Part, Part 3 - Beleth goes to school", + "https://www.youtube.com/watch?v=bhDraI1wjxE" + ], + [ + "Broken Toy Part, Part 6 - Beleth gets fired", + "https://www.youtube.com/watch?v=mpbck_mGBB4" + ], + [ + "Try, Try Again, Part 1", + "https://www.youtube.com/watch?v=Y3mGbP1RLnU" + ], + [ + "Try, Try Again, Part 3 - Jupet gets an idea", + "https://www.youtube.com/watch?v=ITJtWnDaLnI" + ], + [ + "Try, Try Again, Part 3 Encore I - Jupet sees a witch", + "https://www.youtube.com/watch?v=okrP8X50yUE" + ], + [ + "Try, Try Again, Part 3 Encore II - Jupet gets a ticket", + "https://www.youtube.com/watch?v=Xz8afUBxMcQ" + ], + [ + "Try, Try Again, Part 3 Encore III - Jupet sees a play", + "https://www.youtube.com/watch?v=ng-_PECq6Go" + ], + [ + "Try, Try Again, Part 4 - Work in Progress", + "https://www.youtube.com/watch?v=nihLJyTYdUo" + ], + [ + "Try, Try Again, Part 5A - The Writer", + "https://www.youtube.com/watch?v=u-FVyYOQ0Ik" + ], + [ + "Try, Try Again, Part 5B - Mr. 5", + "https://www.youtube.com/watch?v=FGIZziwqJlE" + ], + [ + "The Prophecy", + "https://www.youtube.com/watch?v=4KY16N4mG_0" + ] +] \ No newline at end of file -- cgit 1.3.0-6-gf8a5