289
\$\begingroup\$

Write the shortest program that prints the entire lyrics of "Never Gonna Give You Up" by Rick Astley.

Rules:

  • Must output the lyrics exactly as they appear in the above pastebin*. Here's the raw dump: http://pastebin.com/raw/wwvdjvEj
  • Cannot rely on any external resources - all lyrics must be generated by / embedded in code.
  • No use of existing compression algorithms (e.g. gzip / bzip2) unless you include the full algorithm in your code.
  • Use any language, shortest code wins.

Update, 1st June 2012:
For solutions containing non-ASCII text, the size of your solution will be counted in bytes, based on UTF-8 encoding. If you use codepoints that cannot be encoded in UTF-8, your solution will not be judged as valid.

Update, 7th June 2012:
Thank you all for your awesome solutions! I'll be accepting the shortest answer tomorrow afternoon. Right now, Peter Taylor's GolfScript answer is winning, so get cracking on some improvements if you want to beat him! :)

*There is a typo in the Pastebin (line 46, "know" should be "known"). You may either replicate it or not at your discretion.

\$\endgroup\$
31
  • 4
    \$\begingroup\$ @w0lf You're correct. I only scanned the lyrics to verify their accuracy, I must've missed that one. I'll accept either "know" or "known". \$\endgroup\$
    – Polynomial
    May 29, 2012 at 7:30
  • 13
    \$\begingroup\$ 26k+ views in just 3 days. WOW... \$\endgroup\$
    – Gaffi
    Jun 1, 2012 at 21:30
  • 13
    \$\begingroup\$ How in the world did this generate so many views and votes? Whatever he did, I'm going to reverse engineer it. \$\endgroup\$
    – PhiNotPi
    Jun 2, 2012 at 21:27
  • 49
    \$\begingroup\$ @PhiNotPi Good luck reverse engineering "Jeff Atwood tweeting you". \$\endgroup\$
    – breadbox
    Jun 3, 2012 at 8:04
  • 11
    \$\begingroup\$ The restriction with UTF-8 makes no sense. What if my code is shorter when encoded as UTF-16 or as Latin-1? You should either count the number of bytes or the number of characters, but leave the encoding up to the author. \$\endgroup\$
    – Timwi
    Jan 25, 2014 at 0:22

73 Answers 73

1 2
3
1
\$\begingroup\$

Dart, 733 bytes

F(){var e=' give',a='ever gonna',l=" how I'm feeling",h=' you',i='(Give$h up)\n',j=' tell',k='(Ooh)\nN$a$e, n$a$e\n$i',b="""
N$a$e$h up
N$a let$h down
N$a run around and desert$h
N$a make$h cry
N$a say goodbye
N$a$j a lie and hurt$h

""",c="""
We've known each other for so long
Your heart's been aching but
You're too shy to say it
Inside we both know what's been going on
We know the game and we're gonna play it""",d="(Ooh,$e$h up)",f='I just wanna$j$h$l\nGotta make$h understand\n';return"""We're no strangers to love
You know the rules and so do I
A full commitment's what I'm thinking of
You wouldn't get this from any other guy
$f
$b$c
And if$h ask me$l
Don't$j me$h're too blind to see

$b$b$d$d$k$k
$c

$f
$b$b$b""".trim();}

Try it online!

\$\endgroup\$
1
\$\begingroup\$

JavaScript, 495 bytes

for(_="on=er< g;ve:;=na 9e:r98 I'm7ou6o 55s4me3 t22h1\n00(Ooh/ell. w- y6make ay it0 oth<  know00We':ing're at's been i: up/,;)0Y6nd  how7 feel00N8/)gi:, n8gi:0(G)0glet downrunr6ades<tcrysay;oodbyet. liehurt0I just-anna2.Gotta und<stand eachfor s5l=gr hearach but2o4hy24Inside-e both-hago =0We1e;a3we9plWe n4trang<s25lo:1e ruless5d5I0A full commit3nt's-hat71ink of-6ldn't;et1is fromnyguynAifsk 3D='t2. 32o5blit4ee0";G=/[--=-]/.exec(_);)with(_.split(G))_=join(shift())
\$\endgroup\$
3
  • 2
    \$\begingroup\$ Welcome to PPCG! Which programming language is this? \$\endgroup\$
    – Dennis
    Nov 24, 2018 at 14:18
  • \$\begingroup\$ It's JavaScript \$\endgroup\$
    – da0
    Nov 25, 2018 at 1:03
  • \$\begingroup\$ How can I run this? Can you put it on TIO or similar? \$\endgroup\$
    – dfeuer
    Mar 5, 2019 at 5:58
1
\$\begingroup\$

Java (JDK), 642 bytes

v->{String s="Bell!@ w!?ay it-!> other!=make+ !<'re!;ing!: a!9ve!8 g!7t's been !6-(Ooh!5o !4-You!3 t!28onna !1 know!0nd !/ how I'm feel;-!.i9+ up!-\n!+ you!*.)6)%gi9, ne9r2gi9-(G!&-I just@anna3B+/Gotta =understand#!%-Ne9r2!$--We'91n each> for s5long4r hear7ach; but4<3o5shy35s?Inside@e both1@ha7go; on-We13he8ame:0we<2pl?!#-%g.%let+ down%run:rou0a0desert+%=cry%say8oodbye%tB: lie:0hurt+!We< n5strangers35lo9413he rules:0s5d5I-A full commitment's@hat I'm3hink; of4@ouldn't8et3his from:ny>8uy&$A0if+:sk me/Don't3B me+<3o5bli0t5see##-6,8.)6,8**.)$&##",x[];for(;(x=s.split("!",2)).length>1;)s=x[1].replace((x=x[0].split("",2))[0],x[1]);return s;}

Try it online!

Note: as allowed in the comments, I'm using the "We've known" (twice) version instead of "We've known" then "We've know " version.

I used this program to generate the text according to the algorithm I wanted to use.

Explanation

The longest repeating substring with maximum coverage over the whole string has been extracted and replaced by a single character. The dictionary is done by prepending the replacement character, followed by the replacement string and a bang. This process has been repeated enough times to have the string that is minimised. The search and replacement occurs over the whole string with the dictionary, to compress both the text and the dictionary if needed.

Decoding

v->{                                 // null-accepting lambda, unused parameter
 String s="...",                     // The compressed string
        x[];                         // The array containing
                                     //   0: the dictionary to apply at this step
                                     //   1: the rest of the string.
 for(;(x=s.split("!",2)).length>1;)  // Split the string in two on an exclamation mark, and break if the there are none.
  s=x[1].replace(                    // Replace in the rest of the string...
   ""+x[0].charAt(0),                // ... the single-character...
   x[0].substring(1));               // ... with the longer string.
 return s;                           // Return the decompressed string.
}
\$\endgroup\$
1
\$\begingroup\$

C# (.NET Core), 819 816 810 808 806 792 chars/bytes

class R{static void Main(){string N="Never gonna ",r="\n",H=" how I'm feeling_",n=N+"give! up"+(N=r+N)+"let! down"+N+"run around and desert!"+N+"make! cry"+N+"say goodbye"+N+"tell a lie and hurt!_",b=n+r,w="We've known each other for so long_Your heart's been aching but_You're too shy to say it_Inside we both know what's been going on_We know the game and we're gonna play it_",f="_I just wanna tell!"+H+"Gotta make! understand__"+b,g="(Ooh, give! up)_",o="(Ooh)"+N+"give, never gonna give_(Give! up)_";System.Console.Write(("We're no strangers to love_You know the rules and so do I_A full commitment's what I'm thinking of_You wouldn't get this from any other guy"+f+w+"And if! ask me"+H+"Don't tell me!'re too blind to see__"+b+b+g+g+o+o+r+w+f+b+n).Replace("!"," you").Replace("_",r));}}

Try it online!

I'm using a mixed approach - some string concatenation, some replacement.

C# (.NET Core), 664 chars/bytes

class R{static void Main(){var a="We. n;strangers:;love[}/ rules{s;d;I^A full commitment's what I'm:hink? of[ wouldn't>et:his from1ny o/r>uy`#A+ if%1sk me&Don't:3 me%.:o;bli+:;see^**]]^$$#`**";foreach(var b in @"]^(Ooh,>-)|`^I just wanna:3%&Gotta 2u+ersta+^*|$(Ooh)!gi<, ne<r_gi<^(G-)^|*!g-!let% down!run1rou+{desert%!2cry!say>oodbye!t31 lie{hurt%^|3ell|2make% |#^We'<4n each o/r for s;long[r hear~1ch? but[.:o;shy:;s=Inside we both}wha~>o? on^We}/>ame{we._pl=|!^Ne<r_|& how I'm feel?^|_>onna |=ay it^|[^You|^
|-i<% up|% you|{1+ |}4 |4 know|~t's been|: t|;o |<ve|> g|?ing|/the|.'re|+nd|1 a".Split('|'))a=a.Replace(b[0]+"",b.Substring(1));System.Console.Write(a);}}

Try it online!

I optimized the code of another answer for this - it was using an entire class it didn't need to.

Output sample here

\$\endgroup\$
9
  • \$\begingroup\$ oh hey I can golf this more. +(N=r+N)+ \$\endgroup\$
    – Stackstuck
    Mar 6, 2019 at 13:40
  • \$\begingroup\$ Saved 6 bytes with that. \$\endgroup\$
    – Stackstuck
    Mar 6, 2019 at 14:06
  • \$\begingroup\$ Saved two bytes by adding b to f, saved two bytes by giving f a leading newline. \$\endgroup\$
    – Stackstuck
    Mar 7, 2019 at 13:02
  • \$\begingroup\$ Saved 14 bytes w/ judicious use of .Replace(). I think it's 14 bytes. It's 14 bytes. \$\endgroup\$
    – Stackstuck
    Mar 7, 2019 at 14:22
  • \$\begingroup\$ stole someone else's trick and optimized that: saved 39 chars/bytes over their final answer. If they steal it back I'll take this out. \$\endgroup\$
    – Stackstuck
    Mar 13, 2019 at 10:12
1
\$\begingroup\$

ink, 839 777 764 bytes

~temp o="(Ooh, g{g})"
We're no strangers to love
You know the rules and so do I
A full commitment's what I'm thinking of
You wouldn't get this from any other guy
->w->l->
And if you ask me how I'm feeling
Don't tell me you're too blind to see->c->c->
\ 
{o}
{o}
(Ooh)
N{n}give, n{n}give
(G{g})
(Ooh)
N{n}give, n{n}give
(G{g})->l->
\ 
->w->c->c->
=l
\ 
\ 
We've known each other for so long
Your heart's been aching but
You're too shy to say it
Inside we both know what's been going on
We know the game and we're gonna play it
->->
=w
I just wanna tell you how I'm feeling
Gotta make you understand->c->->
=c
\ 
\ 
-(d)N{n}{&g{g}|let you down|run around and desert you|make you cry|say goodbye|tell a lie and hurt you->->}
->d
VAR n="ever gonna "
VAR g="ive you up"

Try it online!

  • -62 (!!!) bytes why the H E C C did I think functions were the way to go here?
  • -13 bytes by reworking the chorus to use a sequence and making w call c before exiting (since the chorus always happens at least once after the "We've known eachother..." part)

It's not a very nice solution, but I spent too long on it to just throw it away.

I'm still not a huge fan of those tunnels, but assigning a multiline strings to a variable in ink is weirder than you'd think.

I thought I could make some fancy changes to that l stitch, but they turned out to not be worth it, and also messed up the whitespace a bunch.

\$\endgroup\$
1
\$\begingroup\$

Deadfish~, 15677 bytes

{{i}d}dddc{i}iiiic{{d}iiii}ddc{{i}ddd}iiiiic{d}dddc{{d}iii}ic{{i}dd}ddcic{{d}ii}ic{{i}dd}iiicicddc{d}{d}iiic{i}iiic{d}iiicddc{i}iiicic{{d}ii}dddc{{i}dd}iiiicdddddc{{d}ii}ic{{i}ddd}iiiiiiciiic{i}dddc{d}{d}iiic{{d}iii}ic{{i}dddd}dddc{i}{i}iiciiiiiic{{d}ii}dddddc{{i}ddd}iiiiiciiicic{i}ddc{{d}i}iiic{{i}dd}iiiic{d}ddcdddc{{d}iii}ic{{i}dd}iiciiic{d}ic{d}iiic{i}iiiic{{d}ii}dddc{{i}dddd}iiiiic{i}iiic{d}c{{d}iii}iic{{i}dd}iiicddddc{{d}ii}ic{{i}ddd}ddc{i}ic{{d}ii}ic{{i}dddddd}ic{{d}iiiiii}dc{i}{i}{i}iiic{d}{d}{d}dddc{{i}ddd}c{i}iiiiic{d}icc{{d}iii}ddddddc{{i}ddd}dddc{i}iicddccddddc{i}ic{d}iiic{d}iic{i}dciiiiiic{{d}ii}iiic{{i}ddd}iiiiiic{{d}ii}dddc{{i}d}dddc{d}dddddc{d}iiic{i}{i}dc{{d}ii}ddddc{{i}dddddd}ic{d}{d}{d}ddddc{{i}ddd}c{{d}ii}iiic{{i}dd}iiiic{d}ddciciiiiicdddcddciiiiic{d}iiic{{d}iii}dc{{i}dd}dc{d}ic{{d}iii}c{{i}dddd}dddc{i}{i}iiciiiiiic{{d}ii}dddddc{{i}d}dddc{d}iiciiiiiic{d}ic{d}iic{i}c{{d}iii}dc{{i}dd}dddc{{d}ii}ddddc{{i}ddd}icddc{i}iiiiic{{d}ii}ddddc{{i}dd}iiiic{d}ddcic{i}c{{d}ii}dddc{{i}ddd}c{i}iicdddcddc{{d}ii}iiic{{i}dddd}iiiiic{i}iiic{i}ic{{d}i}ic{{i}dd}dciiiiic{d}ddcdddc{i}iiic{{d}ii}ddc{{i}ddd}ic{i}iiiiciiiic{{d}i}ic{{i}dddddd}ic{{d}iiiiii}dc{{i}ddd}iiiic{i}icddcic{{d}ii}ddddc{{i}d}dddc{d}{d}ddc{i}iiicc{d}dddc{{d}iiii}dddddc{{i}dd}iiiic{d}dddddc{i}dddcc{{d}iii}ddddddc{{i}d}dc{d}ciiiiiic{{d}ii}dddddc{{i}ddd}iic{i}dddc{i}ddc{{d}i}iiic{{i}dddddd}ic{d}{d}{d}ddddc{{i}ddd}c{{d}ii}iiic{{i}ddd}cdcc{i}dddcdddciiiiic{d}iiic{{d}iii}dc{{i}dddddd}dc{{i}dddddd}ciiiiicc{d}{d}ic{{d}iiii}dddddc{{i}dd}dddc{d}ddc{i}cddddddc{{d}iii}ic{{i}d}dc{d}ciiiiiic{{d}ii}dddddc{{i}dd}iiiiic{d}iiic{d}cic{i}iiicicic{d}{d}ic{i}iiic{d}c{{d}iii}iicc{{i}dddddd}iiiiiic{i}{i}iiic{i}{i}dddc{d}{d}iiic{i}iiic{{d}ii}ddc{{i}ddd}ic{i}ddcdcc{d}dddc{{d}iiii}dddddc{{i}ddd}iciic{i}iiic{d}{d}iiic{{d}iii}ic{{i}d}dc{d}ciiiiiic{{d}ii}dddddc{{i}dd}iiiiicdddddc{{d}ii}c{{i}dddddd}iiiiiic{i}{i}iiic{i}{i}dddc{d}{d}iiic{i}iiic{{d}ii}ddc{{i}ddd}ic{i}ddcdcc{d}dddc{{d}iiii}dddddc{{i}ddd}iiiiiic{d}iiic{i}iiiiic{{d}ii}ddddc{{i}d}dc{d}ciiiiiic{{d}ii}dddddc{{i}ddd}ddc{i}ic{i}ddc{d}ic{{d}ii}iic{{i}dddddd}iiiiiic{i}{i}iiic{i}{i}dddc{d}{d}iiic{i}iiic{{d}ii}ddc{{i}ddd}ic{i}ddcdcc{d}dddc{{d}iiii}dddddc{{i}dd}iiciiic{d}iiic{{d}ii}iic{{i}dddd}iiiiic{i}{i}dddcdddciiiiiic{d}iiic{d}c{{d}iii}iic{{i}dddd}iiiiic{i}iiic{d}c{{d}iii}iic{{i}ddd}ddcic{i}iiiic{d}ddddc{i}iiiciic{{d}ii}ddddc{{i}d}dc{d}ciiiiiic{{d}ii}dddddc{{i}dddddd}iiiiiic{i}{i}iiic{i}{i}dddc{d}{d}iiic{i}iiic{{d}ii}ddc{{i}ddd}ic{i}ddcdcc{d}dddc{{d}iiii}dddddc{{i}dd}dddc{d}ddc{i}cddddddc{{d}iii}ic{{i}d}dc{d}ciiiiiic{{d}ii}dddddc{{i}ddd}dddc{i}iiiiic{i}dddc{{d}i}ic{{i}dddddd}iiiiiic{i}{i}iiic{i}{i}dddc{d}{d}iiic{i}iiic{{d}ii}ddc{{i}ddd}ic{i}ddcdcc{d}dddc{{d}iiii}dddddc{{i}dd}iiic{d}{d}iic{i}{i}iiiic{{d}i}ic{{i}ddd}ic{i}ddcc{d}dcddc{i}{i}iiic{d}{d}c{{d}iii}ic{{i}dddddd}iiiiiic{i}{i}iiic{i}{i}dddc{d}{d}iiic{i}iiic{{d}ii}ddc{{i}ddd}ic{i}ddcdcc{d}dddc{{d}iiii}dddddc{{i}dd}iiiic{d}dddddc{i}dddcc{{d}iii}ddddddc{{i}dddd}iiiiic{{d}iiii}dddddc{{i}ddd}iiiiiicdddcddddc{{d}iii}ic{{i}dddd}iiiiic{i}iiic{d}c{{d}iii}iic{{i}ddd}iic{i}iiicdddciic{{d}ii}ddddc{{i}d}dc{d}ciiiiiic{{d}ii}dddddcc{{i}ddddd}iiiiic{i}iiiic{{d}iiii}ddc{{i}dd}dc{d}{d}iiic{{d}iii}ic{{i}ddd}iiiiiciiicic{i}ddc{d}ic{{d}ii}iic{{i}ddd}dcddddciiciiiiic{{d}iii}ddc{{i}dd}dciiiiic{d}ddcdddc{i}iiic{{d}ii}ddc{{i}ddd}c{i}dciiic{{d}ii}ddc{{i}dd}iiicddddc{{d}ii}ic{{i}ddd}iiiiiiciiicdc{d}iiic{{d}iii}dc{{i}dddd}dddc{i}{i}iiciiiiiicdddc{{d}ii}ddc{{i}ddd}iicdddcddddc{i}{i}dddciic{{d}ii}iiic{{i}ddd}iiiiiic{{d}ii}dddc{{i}dddd}iiiiiiciiicc{i}dc{{d}ii}iic{{i}dddd}iiiiiciiciiiiiciciiiiic{d}iiic{{d}iii}dc{{i}dddd}iiiiiic{i}{i}dcdc{{d}ii}ddddc{{i}dddd}dddc{i}{i}iiciiiiiic{{d}ii}iic{{i}ddd}iiiiic{d}dddc{{d}iii}ic{{i}dd}iiiicdddddcc{{d}ii}ic{{i}dd}iiic{d}dc{i}{i}dddc{{d}i}ic{{i}dd}iiiicdddddc{{d}ii}ic{{i}dd}iiic{d}{d}iic{i}{i}iiiic{{d}i}ic{{i}ddd}iiic{i}ic{{d}ii}ddddc{{i}dddddd}ic{{i}dddddd}dddciiiiic{d}cdddddcic{{d}iii}ic{{i}d}dddc{d}{d}iic{{d}iii}ic{{i}dddd}iiiiiic{i}iiiciiiiic{d}ddc{{d}iii}ddc{{i}ddd}iiiiiciiicic{i}ddc{{d}i}iiic{{i}d}dddc{d}dddddc{d}iiic{i}{i}dc{{d}ii}iiic{{i}ddd}iiiiiic{{d}ii}dddc{{i}dddd}iiiiiiciiicc{i}dc{{d}ii}iic{{i}ddd}ic{i}ddcddddddciiiiic{d}iiic{{d}iii}dc{{i}dd}dcdc{{d}ii}iic{{i}ddddd}iiiiic{i}iiiic{{d}iii}ic{{i}ddd}iiiiiciiicic{i}ddc{{d}i}iiic{{i}dd}iiiic{d}ddcdddc{{d}iii}ic{{i}ddd}icddddddc{i}iic{d}iic{{d}iii}ic{{i}dddd}iiiiic{i}iiic{d}c{{d}iii}iic{{i}d}dddc{d}{d}iic{{d}iiii}ddc{{i}ddd}iiiiic{d}dddc{{d}iii}ic{{i}ddd}ic{i}ddcdcc{d}dddc{{d}iiii}dddddc{{i}dd}cddddc{d}dc{i}{i}iiiic{{d}i}ic{{i}ddd}iiic{i}ic{{d}ii}ddddc{i}{i}{i}iiic{{i}dddddd}iiiiic{d}c{{d}iii}iic{{i}ddd}iiicdddc{{d}iii}c{{i}d}dc{d}ciiiiiic{{d}ii}dddddc{{i}dddd}iiiiic{i}{i}ddc{d}iic{{d}iii}dddddc{{i}dd}dddc{d}iic{{d}iii}ic{{i}ddd}iic{i}dddc{i}ddc{{d}i}iiic{{i}dddddd}ic{d}{d}{d}ddddc{{i}ddd}c{{d}ii}iiic{{i}ddd}cdcc{i}dddcdddciiiiic{d}iiic{{d}iii}dc{i}{i}{i}iiiiiic{{i}dddddd}iiicdc{{d}iii}dc{{i}dd}dddc{{d}ii}ddddc{{i}dd}iiiic{d}dddddc{i}dddcc{{d}iii}ddddddc{{i}dd}dddc{d}iic{{d}iii}ic{{i}d}dc{d}ciiiiiic{{d}ii}iic{{i}ddd}iiiiic{d}dddc{{d}iii}ic{{i}dd}iiiicdddddcc{{d}ii}ic{{i}dddd}iiiiiic{i}cdddciiiiic{d}c{{d}iii}iic{{i}dd}iiiicdddddc{{d}ii}ic{{i}dd}iiic{d}ddddcc{{d}iii}icc{{i}dddddd}iiiiiic{i}{i}iiic{i}{i}dddc{d}{d}iiic{i}iiic{{d}ii}ddc{{i}ddd}ic{i}ddcdcc{d}dddc{{d}iiii}dddddc{{i}ddd}iciic{i}iiic{d}{d}iiic{{d}iii}ic{{i}d}dc{d}ciiiiiic{{d}ii}dddddc{{i}dd}iiiiicdddddc{{d}ii}c{{i}dddddd}iiiiiic{i}{i}iiic{i}{i}dddc{d}{d}iiic{i}iiic{{d}ii}ddc{{i}ddd}ic{i}ddcdcc{d}dddc{{d}iiii}dddddc{{i}ddd}iiiiiic{d}iiic{i}iiiiic{{d}ii}ddddc{{i}d}dc{d}ciiiiiic{{d}ii}dddddc{{i}ddd}ddc{i}ic{i}ddc{d}ic{{d}ii}iic{{i}dddddd}iiiiiic{i}{i}iiic{i}{i}dddc{d}{d}iiic{i}iiic{{d}ii}ddc{{i}ddd}ic{i}ddcdcc{d}dddc{{d}iiii}dddddc{{i}dd}iiciiic{d}iiic{{d}ii}iic{{i}dddd}iiiiic{i}{i}dddcdddciiiiiic{d}iiic{d}c{{d}iii}iic{{i}dddd}iiiiic{i}iiic{d}c{{d}iii}iic{{i}ddd}ddcic{i}iiiic{d}ddddc{i}iiiciic{{d}ii}ddddc{{i}d}dc{d}ciiiiiic{{d}ii}dddddc{{i}dddddd}iiiiiic{i}{i}iiic{i}{i}dddc{d}{d}iiic{i}iiic{{d}ii}ddc{{i}ddd}ic{i}ddcdcc{d}dddc{{d}iiii}dddddc{{i}dd}dddc{d}ddc{i}cddddddc{{d}iii}ic{{i}d}dc{d}ciiiiiic{{d}ii}dddddc{{i}ddd}dddc{i}iiiiic{i}dddc{{d}i}ic{{i}dddddd}iiiiiic{i}{i}iiic{i}{i}dddc{d}{d}iiic{i}iiic{{d}ii}ddc{{i}ddd}ic{i}ddcdcc{d}dddc{{d}iiii}dddddc{{i}dd}iiic{d}{d}iic{i}{i}iiiic{{d}i}ic{{i}ddd}ic{i}ddcc{d}dcddc{i}{i}iiic{d}{d}c{{d}iii}ic{{i}dddddd}iiiiiic{i}{i}iiic{i}{i}dddc{d}{d}iiic{i}iiic{{d}ii}ddc{{i}ddd}ic{i}ddcdcc{d}dddc{{d}iiii}dddddc{{i}dd}iiiic{d}dddddc{i}dddcc{{d}iii}ddddddc{{i}dddd}iiiiic{{d}iiii}dddddc{{i}ddd}iiiiiicdddcddddc{{d}iii}ic{{i}dddd}iiiiic{i}iiic{d}c{{d}iii}iic{{i}ddd}iic{i}iiicdddciic{{d}ii}ddddc{{i}d}dc{d}ciiiiiic{{d}ii}dddddcc{{i}dddddd}iiiiiic{i}{i}iiic{i}{i}dddc{d}{d}iiic{i}iiic{{d}ii}ddc{{i}ddd}ic{i}ddcdcc{d}dddc{{d}iiii}dddddc{{i}ddd}iciic{i}iiic{d}{d}iiic{{d}iii}ic{{i}d}dc{d}ciiiiiic{{d}ii}dddddc{{i}dd}iiiiicdddddc{{d}ii}c{{i}dddddd}iiiiiic{i}{i}iiic{i}{i}dddc{d}{d}iiic{i}iiic{{d}ii}ddc{{i}ddd}ic{i}ddcdcc{d}dddc{{d}iiii}dddddc{{i}ddd}iiiiiic{d}iiic{i}iiiiic{{d}ii}ddddc{{i}d}dc{d}ciiiiiic{{d}ii}dddddc{{i}ddd}ddc{i}ic{i}ddc{d}ic{{d}ii}iic{{i}dddddd}iiiiiic{i}{i}iiic{i}{i}dddc{d}{d}iiic{i}iiic{{d}ii}ddc{{i}ddd}ic{i}ddcdcc{d}dddc{{d}iiii}dddddc{{i}dd}iiciiic{d}iiic{{d}ii}iic{{i}dddd}iiiiic{i}{i}dddcdddciiiiiic{d}iiic{d}c{{d}iii}iic{{i}dddd}iiiiic{i}iiic{d}c{{d}iii}iic{{i}ddd}ddcic{i}iiiic{d}ddddc{i}iiiciic{{d}ii}ddddc{{i}d}dc{d}ciiiiiic{{d}ii}dddddc{{i}dddddd}iiiiiic{i}{i}iiic{i}{i}dddc{d}{d}iiic{i}iiic{{d}ii}ddc{{i}ddd}ic{i}ddcdcc{d}dddc{{d}iiii}dddddc{{i}dd}dddc{d}ddc{i}cddddddc{{d}iii}ic{{i}d}dc{d}ciiiiiic{{d}ii}dddddc{{i}ddd}dddc{i}iiiiic{i}dddc{{d}i}ic{{i}dddddd}iiiiiic{i}{i}iiic{i}{i}dddc{d}{d}iiic{i}iiic{{d}ii}ddc{{i}ddd}ic{i}ddcdcc{d}dddc{{d}iiii}dddddc{{i}dd}iiic{d}{d}iic{i}{i}iiiic{{d}i}ic{{i}ddd}ic{i}ddcc{d}dcddc{i}{i}iiic{d}{d}c{{d}iii}ic{{i}dddddd}iiiiiic{i}{i}iiic{i}{i}dddc{d}{d}iiic{i}iiic{{d}ii}ddc{{i}ddd}ic{i}ddcdcc{d}dddc{{d}iiii}dddddc{{i}dd}iiiic{d}dddddc{i}dddcc{{d}iii}ddddddc{{i}dddd}iiiiic{{d}iiii}dddddc{{i}ddd}iiiiiicdddcddddc{{d}iii}ic{{i}dddd}iiiiic{i}iiic{d}c{{d}iii}iic{{i}ddd}iic{i}iiicdddciic{{d}ii}ddddc{{i}d}dc{d}ciiiiiic{{d}ii}dddddcc{i}ddc{{i}dddddd}dc{i}{i}{i}iic{d}iiic{{d}iiii}c{d}ddc{{i}ddd}iciic{i}iiic{d}{d}iiic{{d}iii}ic{{i}d}dc{d}ciiiiiic{{d}ii}dddddc{{i}dd}iiiiicdddddc{{d}iii}dc{d}ic{i}ddc{{i}dddddd}dc{i}{i}{i}iic{d}iiic{{d}iiii}c{d}ddc{{i}ddd}iciic{i}iiic{d}{d}iiic{{d}iii}ic{{i}d}dc{d}ciiiiiic{{d}ii}dddddc{{i}dd}iiiiicdddddc{{d}iii}dc{d}ic{i}ddc{{i}dddddd}dc{i}{i}{i}iic{d}iiic{{d}iiii}dddc{d}ic{{i}dddddd}iiiiiic{i}{i}iiic{i}{i}dddc{d}{d}iiic{i}iiic{{d}ii}ddc{{i}ddd}ic{i}ddcdcc{d}dddc{{d}iiii}dddddc{{i}ddd}iciic{i}iiic{d}{d}iiic{{d}iiii}iiic{d}ddc{{i}dd}ddc{d}ic{i}{i}dddc{d}{d}iiic{i}iiic{{d}ii}ddc{{i}ddd}ic{i}ddcdcc{d}dddc{{d}iiii}dddddc{{i}ddd}iciic{i}iiic{d}{d}iiic{{d}iii}ic{i}ddc{i}{i}{i}ic{i}{i}{i}iiiic{i}iiic{d}{d}iiic{{d}iii}ic{{i}d}dc{d}ciiiiiic{{d}ii}dddddc{{i}dd}iiiiicdddddc{{d}iii}dc{d}ic{i}ddc{{i}dddddd}dc{i}{i}{i}iic{d}iiic{{d}iiii}dddc{d}ic{{i}dddddd}iiiiiic{i}{i}iiic{i}{i}dddc{d}{d}iiic{i}iiic{{d}ii}ddc{{i}ddd}ic{i}ddcdcc{d}dddc{{d}iiii}dddddc{{i}ddd}iciic{i}iiic{d}{d}iiic{{d}iiii}iiic{d}ddc{{i}dd}ddc{d}ic{i}{i}dddc{d}{d}iiic{i}iiic{{d}ii}ddc{{i}ddd}ic{i}ddcdcc{d}dddc{{d}iiii}dddddc{{i}ddd}iciic{i}iiic{d}{d}iiic{{d}iii}ic{i}ddc{i}{i}{i}ic{i}{i}{i}iiiic{i}iiic{d}{d}iiic{{d}iii}ic{{i}d}dc{d}ciiiiiic{{d}ii}dddddc{{i}dd}iiiiicdddddc{{d}iii}dc{d}icc{{i}ddddd}iiiiic{i}iiiic{{d}iiii}ddc{{i}dd}dc{d}{d}iiic{{d}iii}ic{{i}ddd}iiiiiciiicic{i}ddc{{d}i}iiic{{i}ddd}dcddddciiciiiiic{{d}iii}ddc{{i}dd}dciiiiic{d}ddcdddc{i}iiic{{d}ii}ddc{{i}ddd}c{i}dciiic{{d}ii}ddc{{i}dd}iiicddddc{{d}ii}ic{{i}ddd}iiiiiiciiicdc{d}iiic{{d}iii}dc{{i}dddd}dddc{i}{i}iiciiiiiicdddc{{d}ii}ddc{{i}ddd}iicdddcddddc{i}{i}dddciic{{d}ii}iiic{{i}ddd}iiiiiic{{d}ii}dddc{{i}dddd}iiiiiiciiicc{i}dc{{d}ii}iic{{i}dddd}iiiiiciiciiiiiciciiiiic{d}iiic{{d}iii}dc{{i}dddd}iiiiiic{i}{i}dcdc{{d}ii}ddddc{{i}dddd}dddc{i}{i}iiciiiiiic{{d}ii}iic{{i}ddd}iiiiic{d}dddc{{d}iii}ic{{i}dd}iiiicdddddcc{{d}ii}ic{{i}dd}iiic{d}dc{i}{i}dddc{{d}i}ic{{i}dd}iiiicdddddc{{d}ii}ic{{i}dd}iiic{d}{d}iic{i}{i}iiiic{{d}i}ic{{i}ddd}iiic{i}ic{{d}ii}ddddc{{i}dddddd}ic{{i}dddddd}dddciiiiic{d}cdddddcic{{d}iii}ic{{i}d}dddc{d}{d}iic{{d}iii}ic{{i}dddd}iiiiiic{i}iiiciiiiic{d}ddc{{d}iii}ddc{{i}ddd}iiiiiciiicic{i}ddc{{d}i}iiic{{i}d}dddc{d}dddddc{d}iiic{i}{i}dc{{d}ii}iiic{{i}ddd}iiiiiic{{d}ii}dddc{{i}dddd}iiiiiiciiicc{i}dc{{d}ii}iic{{i}ddd}ic{i}ddcddddddciiiiic{d}iiic{{d}iii}dc{{i}dd}dcdc{{d}ii}iic{{i}ddddd}iiiiic{i}iiiic{{d}iii}ic{{i}ddd}iiiiiciiicic{i}ddc{{d}i}iiic{{i}dd}iiiic{d}ddcdddc{{d}iii}ic{{i}ddd}icddddddc{i}iic{d}iic{{d}iii}ic{{i}dddd}iiiiic{i}iiic{d}c{{d}iii}iic{{i}d}dddc{d}{d}iic{{d}iiii}ddc{{i}ddd}iiiiic{d}dddc{{d}iii}ic{{i}ddd}ic{i}ddcdcc{d}dddc{{d}iiii}dddddc{{i}dd}cddddc{d}dc{i}{i}iiiic{{d}i}ic{{i}ddd}iiic{i}ic{{d}ii}ddddcc{{i}dddddd}ic{{d}iiiiii}dc{{i}ddd}iiiic{i}icddcic{{d}ii}ddddc{{i}d}dddc{d}{d}ddc{i}iiicc{d}dddc{{d}iiii}dddddc{{i}dd}iiiic{d}dddddc{i}dddcc{{d}iii}ddddddc{{i}d}dc{d}ciiiiiic{{d}ii}dddddc{{i}ddd}iic{i}dddc{i}ddc{{d}i}iiic{{i}dddddd}ic{d}{d}{d}ddddc{{i}ddd}c{{d}ii}iiic{{i}ddd}cdcc{i}dddcdddciiiiic{d}iiic{{d}iii}dc{{i}dddddd}dc{{i}dddddd}ciiiiicc{d}{d}ic{{d}iiii}dddddc{{i}dd}dddc{d}ddc{i}cddddddc{{d}iii}ic{{i}d}dc{d}ciiiiiic{{d}ii}dddddc{{i}dd}iiiiic{d}iiic{d}cic{i}iiicicic{d}{d}ic{i}iiic{d}c{{d}iii}iicc{{i}dddddd}iiiiiic{i}{i}iiic{i}{i}dddc{d}{d}iiic{i}iiic{{d}ii}ddc{{i}ddd}ic{i}ddcdcc{d}dddc{{d}iiii}dddddc{{i}ddd}iciic{i}iiic{d}{d}iiic{{d}iii}ic{{i}d}dc{d}ciiiiiic{{d}ii}dddddc{{i}dd}iiiiicdddddc{{d}ii}c{{i}dddddd}iiiiiic{i}{i}iiic{i}{i}dddc{d}{d}iiic{i}iiic{{d}ii}ddc{{i}ddd}ic{i}ddcdcc{d}dddc{{d}iiii}dddddc{{i}ddd}iiiiiic{d}iiic{i}iiiiic{{d}ii}ddddc{{i}d}dc{d}ciiiiiic{{d}ii}dddddc{{i}ddd}ddc{i}ic{i}ddc{d}ic{{d}ii}iic{{i}dddddd}iiiiiic{i}{i}iiic{i}{i}dddc{d}{d}iiic{i}iiic{{d}ii}ddc{{i}ddd}ic{i}ddcdcc{d}dddc{{d}iiii}dddddc{{i}dd}iiciiic{d}iiic{{d}ii}iic{{i}dddd}iiiiic{i}{i}dddcdddciiiiiic{d}iiic{d}c{{d}iii}iic{{i}dddd}iiiiic{i}iiic{d}c{{d}iii}iic{{i}ddd}ddcic{i}iiiic{d}ddddc{i}iiiciic{{d}ii}ddddc{{i}d}dc{d}ciiiiiic{{d}ii}dddddc{{i}dddddd}iiiiiic{i}{i}iiic{i}{i}dddc{d}{d}iiic{i}iiic{{d}ii}ddc{{i}ddd}ic{i}ddcdcc{d}dddc{{d}iiii}dddddc{{i}dd}dddc{d}ddc{i}cddddddc{{d}iii}ic{{i}d}dc{d}ciiiiiic{{d}ii}dddddc{{i}ddd}dddc{i}iiiiic{i}dddc{{d}i}ic{{i}dddddd}iiiiiic{i}{i}iiic{i}{i}dddc{d}{d}iiic{i}iiic{{d}ii}ddc{{i}ddd}ic{i}ddcdcc{d}dddc{{d}iiii}dddddc{{i}dd}iiic{d}{d}iic{i}{i}iiiic{{d}i}ic{{i}ddd}ic{i}ddcc{d}dcddc{i}{i}iiic{d}{d}c{{d}iii}ic{{i}dddddd}iiiiiic{i}{i}iiic{i}{i}dddc{d}{d}iiic{i}iiic{{d}ii}ddc{{i}ddd}ic{i}ddcdcc{d}dddc{{d}iiii}dddddc{{i}dd}iiiic{d}dddddc{i}dddcc{{d}iii}ddddddc{{i}dddd}iiiiic{{d}iiii}dddddc{{i}ddd}iiiiiicdddcddddc{{d}iii}ic{{i}dddd}iiiiic{i}iiic{d}c{{d}iii}iic{{i}ddd}iic{i}iiicdddciic{{d}ii}ddddc{{i}d}dc{d}ciiiiiic{{d}ii}dddddcc{{i}dddddd}iiiiiic{i}{i}iiic{i}{i}dddc{d}{d}iiic{i}iiic{{d}ii}ddc{{i}ddd}ic{i}ddcdcc{d}dddc{{d}iiii}dddddc{{i}ddd}iciic{i}iiic{d}{d}iiic{{d}iii}ic{{i}d}dc{d}ciiiiiic{{d}ii}dddddc{{i}dd}iiiiicdddddc{{d}ii}c{{i}dddddd}iiiiiic{i}{i}iiic{i}{i}dddc{d}{d}iiic{i}iiic{{d}ii}ddc{{i}ddd}ic{i}ddcdcc{d}dddc{{d}iiii}dddddc{{i}ddd}iiiiiic{d}iiic{i}iiiiic{{d}ii}ddddc{{i}d}dc{d}ciiiiiic{{d}ii}dddddc{{i}ddd}ddc{i}ic{i}ddc{d}ic{{d}ii}iic{{i}dddddd}iiiiiic{i}{i}iiic{i}{i}dddc{d}{d}iiic{i}iiic{{d}ii}ddc{{i}ddd}ic{i}ddcdcc{d}dddc{{d}iiii}dddddc{{i}dd}iiciiic{d}iiic{{d}ii}iic{{i}dddd}iiiiic{i}{i}dddcdddciiiiiic{d}iiic{d}c{{d}iii}iic{{i}dddd}iiiiic{i}iiic{d}c{{d}iii}iic{{i}ddd}ddcic{i}iiiic{d}ddddc{i}iiiciic{{d}ii}ddddc{{i}d}dc{d}ciiiiiic{{d}ii}dddddc{{i}dddddd}iiiiiic{i}{i}iiic{i}{i}dddc{d}{d}iiic{i}iiic{{d}ii}ddc{{i}ddd}ic{i}ddcdcc{d}dddc{{d}iiii}dddddc{{i}dd}dddc{d}ddc{i}cddddddc{{d}iii}ic{{i}d}dc{d}ciiiiiic{{d}ii}dddddc{{i}ddd}dddc{i}iiiiic{i}dddc{{d}i}ic{{i}dddddd}iiiiiic{i}{i}iiic{i}{i}dddc{d}{d}iiic{i}iiic{{d}ii}ddc{{i}ddd}ic{i}ddcdcc{d}dddc{{d}iiii}dddddc{{i}dd}iiic{d}{d}iic{i}{i}iiiic{{d}i}ic{{i}ddd}ic{i}ddcc{d}dcddc{i}{i}iiic{d}{d}c{{d}iii}ic{{i}dddddd}iiiiiic{i}{i}iiic{i}{i}dddc{d}{d}iiic{i}iiic{{d}ii}ddc{{i}ddd}ic{i}ddcdcc{d}dddc{{d}iiii}dddddc{{i}dd}iiiic{d}dddddc{i}dddcc{{d}iii}ddddddc{{i}dddd}iiiiic{{d}iiii}dddddc{{i}ddd}iiiiiicdddcddddc{{d}iii}ic{{i}dddd}iiiiic{i}iiic{d}c{{d}iii}iic{{i}ddd}iic{i}iiicdddciic{{d}ii}ddddc{{i}d}dc{d}ciiiiiic{{d}ii}dddddcc{{i}dddddd}iiiiiic{i}{i}iiic{i}{i}dddc{d}{d}iiic{i}iiic{{d}ii}ddc{{i}ddd}ic{i}ddcdcc{d}dddc{{d}iiii}dddddc{{i}ddd}iciic{i}iiic{d}{d}iiic{{d}iii}ic{{i}d}dc{d}ciiiiiic{{d}ii}dddddc{{i}dd}iiiiicdddddc{{d}ii}c{{i}dddddd}iiiiiic{i}{i}iiic{i}{i}dddc{d}{d}iiic{i}iiic{{d}ii}ddc{{i}ddd}ic{i}ddcdcc{d}dddc{{d}iiii}dddddc{{i}ddd}iiiiiic{d}iiic{i}iiiiic{{d}ii}ddddc{{i}d}dc{d}ciiiiiic{{d}ii}dddddc{{i}ddd}ddc{i}ic{i}ddc{d}ic{{d}ii}iic{{i}dddddd}iiiiiic{i}{i}iiic{i}{i}dddc{d}{d}iiic{i}iiic{{d}ii}ddc{{i}ddd}ic{i}ddcdcc{d}dddc{{d}iiii}dddddc{{i}dd}iiciiic{d}iiic{{d}ii}iic{{i}dddd}iiiiic{i}{i}dddcdddciiiiiic{d}iiic{d}c{{d}iii}iic{{i}dddd}iiiiic{i}iiic{d}c{{d}iii}iic{{i}ddd}ddcic{i}iiiic{d}ddddc{i}iiiciic{{d}ii}ddddc{{i}d}dc{d}ciiiiiic{{d}ii}dddddc{{i}dddddd}iiiiiic{i}{i}iiic{i}{i}dddc{d}{d}iiic{i}iiic{{d}ii}ddc{{i}ddd}ic{i}ddcdcc{d}dddc{{d}iiii}dddddc{{i}dd}dddc{d}ddc{i}cddddddc{{d}iii}ic{{i}d}dc{d}ciiiiiic{{d}ii}dddddc{{i}ddd}dddc{i}iiiiic{i}dddc{{d}i}ic{{i}dddddd}iiiiiic{i}{i}iiic{i}{i}dddc{d}{d}iiic{i}iiic{{d}ii}ddc{{i}ddd}ic{i}ddcdcc{d}dddc{{d}iiii}dddddc{{i}dd}iiic{d}{d}iic{i}{i}iiiic{{d}i}ic{{i}ddd}ic{i}ddcc{d}dcddc{i}{i}iiic{d}{d}c{{d}iii}ic{{i}dddddd}iiiiiic{i}{i}iiic{i}{i}dddc{d}{d}iiic{i}iiic{{d}ii}ddc{{i}ddd}ic{i}ddcdcc{d}dddc{{d}iiii}dddddc{{i}dd}iiiic{d}dddddc{i}dddcc{{d}iii}ddddddc{{i}dddd}iiiiic{{d}iiii}dddddc{{i}ddd}iiiiiicdddcddddc{{d}iii}ic{{i}dddd}iiiiic{i}iiic{d}c{{d}iii}iic{{i}ddd}iic{i}iiicdddciic{{d}ii}ddddc{{i}d}dc{d}ciiiiiic

Crashes TIO but works in theory.

\$\endgroup\$
1
\$\begingroup\$

Vyxal, 678 bytes

`We're no strangers to ⟑λ
λß ¬λ λλ «ṫ λ¬ so do I
A ƛ‡ ðʁ's λ⟨ I'm ʀ¨ of
λß wouldn't λẎ λ× λø λ¶ λṁ ⌐ḭ
I λ¾ ₂Ḣ ×↓ λ• λ₴ I'm ∵µ
İ≬ ƛ∵ λ• €ṙ
#@
λ∧ if λ• ×¦ me λ₴ I'm ∵µ
›⌐'t ×↓ me λ•'re ⟑↲ ġ• to λ¡
#
#
 
(Ooh, ⟇∵ λ• up)
(Ooh, ⟇∵ λ• up)
(Ooh)$⟇∵, ∨⋎ ṙƈ ⟇∵
(⟇› λ• up)
(Ooh)$⟇∵, ∨⋎ ṙƈ ⟇∵
(⟇› λ• up)
 
We've ¬λ ƛṖ λṁ λ⟑ so ¬□
λ⌐ »‹'s λ⌈ aching λė
λß're ⟑↲ ∪ǐ to ∨¶ it
•∇ we ∧ɽ ¬λ λ⟨'s λ⌈ ∨µ on
We ¬λ λλ ∧∵ λ¬ we're ṙƈ ∨¯ it
 
I λ¾ ₂Ḣ ×↓ λ• λ₴ I'm ∵µ
İ≬ ƛ∵ λ• €ṙ
#
#
#`\@`
 
We've »² ƛṖ λṁ λ⟑ so ¬□
λ⌐ »‹'s λ⌈ aching λė
λß're ⟑↲ ∪ǐ to ∨¶ it
•∇ we ∧ɽ ¬λ λ⟨'s λ⌈ ∨µ on
We ¬λ λλ ∧∵ λ¬ we're ṙƈ ∨¯ it`V\#` $⟇∵ λ• up$⟇» λ• ∧ċ$÷Ḣ ⟑Ṡ λ¬ ḭ⟇ λ•$ƛ∵ λ• √↓$∨¶ goodbye$×↓ a ṙ↓ λ¬ ṫ» λ•`V\$`
∨꘍ ṙƈ `V

Try it Online!

Basic compression; compresses a couple of the main verses separately, then replaces them after decompression.

\$\endgroup\$
1
\$\begingroup\$

Excel, 756 bytes

=LET(h," how I'm feeling
",j,"
I just wanna tell you"&h&"Gotta make you understand",n,"
Never gonna ",c,"
"&n&"give you up"&n&"let you down"&n&"run around and desert you"&n&"make you cry"&n&"say goodbye"&n&"tell a lie and hurt you",w,"

We've know",e," each other for so long
Your heart's been aching but
You're too shy to say it
Inside we both know what's been going on
We know the game and we're gonna play it
",g,"ive you up)
(Ooh",v,"give, never gonna give
","We're no strangers to love
You know the rules and so do I
A full commitment's what I'm thinking of
You wouldn't get this from any other guy"&j&c&w&"n"&e&"And if you ask me"&h&"Don't tell me you're too blind to see"&c&c&"

(Ooh, g"&g&", g"&g&")"&n&v&"(G"&g&")"&n&v&"(Give you up)"&w&e&j&c&c&c)

Link to Spreadsheet

\$\endgroup\$
1
\$\begingroup\$

Python, 603 bytes

_="pr8t(\"We: n5str>g9s35love4?rules0s5d5I.A fuBcommitment's@hat I'm3h8kFof4@ouldn't get3his from >y<guy%.=n#And if;ask me+Don't3eBme*:3o5bl8d35see!!.727&&2=#%!!\")!$/;up$let;down$run around0des9t*$Ecry$say goodbye$teBa lie0hurt*# each<for s5long4r hear6achFbut4:3o5shy35sC.Inside@e [email protected]?game0we:1plC$.Nev91%.I just@>na3ell*+Gotta Eund9st>d!&2(Ooh)$/, nev91/.(Give* you+ how I'm feel8g.- know.\\n/give0 >d 1 gonna 2;up).3 t4.You5o 6t's been 7(Ooh, /8in9er:'re;* < oth9 =We've->an?-3he @ wBll Cay itEmake;F8g "
for Y in"FECB@?>=<;:9876543210/.-+*&%$#!":_=_.split(Y);_=_.pop().join(_)
exec(_)

Basically just wrote a statement that prints the entire song lyrics, then compressed it with Naruyoko's Python 3 compressor, which is a super useful tool.

\$\endgroup\$
1
\$\begingroup\$

Lexurgy, 1190 bytes

Preliminary version; uses Lexurgy's ability to easily substitute strings to replace a template string defined in a with lyrics as defined in b.

a:
* => |a|c|b|c|c|d|b|d|c|c|c|
b:
c => Never\ gonna\ give\ you\ up\
Never\ gonna\ let\ you\ down\
Never\ gonna\ run\ around\ and\ desert\ you\
Never\ gonna\ make\ you\ cry\
Never\ gonna\ say\ goodbye\
Never\ gonna\ tell\ a\ lie\ and\ hurt\ you\
\
 / \| _ \|
d => \(Ooh\,\ give\ you\ up\)\
\(Ooh\,\ give\ you\ up\)\
\(Ooh\)\
Never\ gonna\ give\,\ never\ gonna\ give\
\(Give\ you\ up\)\
\(Ooh\)\
Never\ gonna\ give\,\ never\ gonna\ give\
\(Give\ you\ up\)\
\
 / \| _ \|
a => We're\ no\ strangers\ to\ love\
You\ know\ the\ rules\ and\ so\ do\ I\
A\ full\ commitment's\ what\ I'm\ thinking\ of\
You\ wouldn't\ get\ this\ from\ any\ other\ guy\
I\ just\ wanna\ tell\ you\ how\ I'm\ feeling\
Gotta\ make\ you\ understand\
\
 / \| _ \|
b => We've\ known\ each\ other\ for\ so\ long\
Your\ heart's\ been\ aching\ but\
You're\ too\ shy\ to\ say\ it\
Inside\ we\ both\ know\ what's\ been\ going\ on\
We\ know\ the\ game\ and\ we're\ gonna\ play\ it\
And\ if\ you\ ask\ me\ how\ I'm\ feeling\
Don't\ tell\ me\ you're\ too\ blind\ to\ see\
\
 / \| _ \|
d => \I\ just\ wanna\ tell\ you\ how\ I\'m\ feeling\
Gotta\ make\ you\ understand\
\
 / \| _ \|
c:
\|=>*
\$\endgroup\$
0
\$\begingroup\$

iX2Web, 2778 bytes

Just had to make an iX2Web solution ;)

**iX200196 64378DMwlX ZSdyZSBuby BzdHJhbmdl cnMgdG8gbG 92ZbZZb3Ug a25vdyB0aG UgcnVsZXMg YW5kIHNvIG RvIEm2QSBm dWxsIGNvbW 1pdG1lbnQn cyB3aGF0IE knbSB0aGlu a2luZyBvZr ZZb3Ugd291 bGRuJ3QgZ2 V0IHRoaXMg ZnJvbSBhbn kgb3RoZXIg Z3V5tkkgan VzdCB3YW5u YSB0ZWxsIH lvdSBob3cg SSdtIGZlZW xpbme2R290 dGEgbWFrZS B5b3UgdW5k ZXJzdGFuZL a2TmV2ZXIg Z29ubmEgZ2 l2ZSB5b3Ug dXC2TmV2ZX IgZ29ubmEg bGV0IHlvdS Bkb3dutk5l dmVyIGdvbm 5hIHJ1biBh cm91bmQgYW 5kIGRlc2Vy dCB5b3W2Tm V2ZXIgZ29u bmEgbWFrZS B5b3UgY3J5 tk5ldmVyIG dvbm5hIHNh eSBnb29kYn lltk5ldmVy IGdvbm5hIH RlbGwgYSBs aWUgYW5kIG h1cnQgeW91 trZXZSd2ZS Brbm93biBl YWNoIG90aG VyIGZvciBz byBsb25ntl lvdXIgaGVh cnQncyBiZW VuIGFjaGlu ZyBidXS2WW 91J3JlIHRv byBzaHkgdG 8gc2F5IGl0 tkluc2lkZS B3ZSBib3Ro IGtub3cgd2 hhdCdzIGJl ZW4gZ29pbm cgb262V2Ug a25vdyB0aG UgZ2FtZSBh bmQgd2Uncm UgZ29ubmEg cGxheSBpdL ZBbmQgaWYg eW91IGFzay BtZSBob3cg SSdtIGZlZW xpbme2RG9u J3QgdGVsbC BtZSB5b3Un cmUgdG9vIG JsaW5kIHRv IHNlZba2Tm V2ZXIgZ29u bmEgZ2l2ZS B5b3UgdXC2 TmV2ZXIgZ2 9ubmEgbGV0 IHlvdSBkb3 dutk5ldmVy IGdvbm5hIH J1biBhcm91 bmQgYW5kIG Rlc2VydCB5 b3W2TmV2ZX IgZ29ubmEg bWFrZSB5b3 UgY3J5tk5l dmVyIGdvbm 5hIHNheSBn b29kYnlltk 5ldmVyIGdv bm5hIHRlbG wgYSBsaWUg YW5kIGh1cn QgeW91trZO ZXZlciBnb2 5uYSBnaXZl IHlvdSB1cL ZOZXZlciBn b25uYSBsZX QgeW91IGRv d262TmV2ZX IgZ29ubmEg cnVuIGFyb3 VuZCBhbmQg ZGVzZXJ0IH lvdbZOZXZl ciBnb25uYS BtYWtlIHlv dSBjcnm2Tm V2ZXIgZ29u bmEgc2F5IG dvb2RieWW2 TmV2ZXIgZ2 9ubmEgdGVs bCBhIGxpZS BhbmQgaHVy dCB5b3W2ti hPb2gsIGdp dmUgeW91IH VwKbYoT29o LCBnaXZlIH lvdSB1cCm2 KE9vaCm2Tm V2ZXIgZ29u bmEgZ2l2ZS wgbmV2ZXIg Z29ubmEgZ2 l2ZbYoR2l2 ZSB5b3UgdX AptihPb2gp tk5ldmVyIG dvbm5hIGdp dmUsIG5ldm VyIGdvbm5h IGdpdmW2KE dpdmUgeW91 IHVwKba2V2 UndmUga25v dyBlYWNoIG 90aGVyIGZv ciBzbyBsb2 5ntllvdXIg aGVhcnQncy BiZWVuIGFj aGluZyBidX S2WW91J3Jl IHRvbyBzaH kgdG8gc2F5 IGl0tkluc2 lkZSB3ZSBi b3RoIGtub3 cgd2hhdCdz IGJlZW4gZ2 9pbmcgb262 V2Uga25vdy B0aGUgZ2Ft ZSBhbmQgd2 UncmUgZ29u bmEgcGxheS BpdLa2SSBq dXN0IHdhbm 5hIHRlbGwg eW91IGhvdy BJJ20gZmVl bGluZ7ZHb3 R0YSBtYWtl IHlvdSB1bm RlcnN0YW5k trZOZXZlci Bnb25uYSBn aXZlIHlvdS B1cLZOZXZl ciBnb25uYS BsZXQgeW91 IGRvd262Tm V2ZXIgZ29u bmEgcnVuIG Fyb3VuZCBh bmQgZGVzZX J0IHlvdbZO ZXZlciBnb2 5uYSBtYWtl IHlvdSBjcn m2TmV2ZXIg Z29ubmEgc2 F5IGdvb2Ri eWW2TmV2ZX IgZ29ubmEg dGVsbCBhIG xpZSBhbmQg aHVydCB5b3 W2tk5ldmVy IGdvbm5hIG dpdmUgeW91 IHVwtk5ldm VyIGdvbm5h IGxldCB5b3 UgZG93brZO ZXZlciBnb2 5uYSBydW4g YXJvdW5kIG FuZCBkZXNl cnQgeW91tk 5ldmVyIGdv bm5hIG1ha2 UgeW91IGNy ebZOZXZlci Bnb25uYSBz YXkgZ29vZG J5ZbZOZXZl ciBnb25uYS B0ZWxsIGEg bGllIGFuZC BodXJ0IHlv dba2TmV2ZX IgZ29ubmEg Z2l2ZSB5b3 UgdXC2TmV2 ZXIgZ29ubm EgbGV0IHlv dSBkb3dutk 5ldmVyIGdv bm5hIHJ1bi Bhcm91bmQg YW5kIGRlc2 VydCB5b3W2 TmV2ZXIgZ2 9ubmEgbWFr ZSB5b3UgY3 J5tk5ldmVy IGdvbm5hIH NheSBnb29k Ynlltk5ldm VyIGdvbm5h IHRlbGwgYS BsaWUgYW5k IGh1cnQgeW 91fF8wCTAN Cg===*
\$\endgroup\$
0
\$\begingroup\$

Swift, 697 bytes

import Foundation
var s="We'r!n$str+gers*$love2 6*h!rules 4s$d$I\nA full commitmen8wha&I'm*hink3 of2 wouldn'&get*his from +y70uyJ%\n\nFnH\nAnd if .ask m!<Don't5m!1=blind*$see%%\n\n@@EE\nFH\nJ%%%"
for(a,b)in zip("JHFECB@?%=<:987654#>-0/.13&2+!*$","\nI jus&w+na5.<Gotta mak-nd/st+d; each7/ for s$long2r hear: ach3 but2=shy*$9it\nInsid!w!both 6 wha: go3 on\nW!6*h!gam!4we'r!goBplay it;We'v!6;?)#C, nev0oBC\n(Giv-p)\n;give;nna ;?, giv-p)\n;(Ooh;\n#giv-p#le&.down#run around 4des/&1#mak!.cry#9goodbye>5a li!4hur&1;'re*o$;how I'm feel3\n;8been;say ;t's ; oth;know;*ell ;+d ;> ;\nNev0onna;!.u;/ g;er;1 ;you;ing;t ;\nYou;an;e ; t;o ;".split{$0==";"}){s=s.replacingOccurrences(of:"\(a)",with:b)}
print(s)

Try it online!

Explanation

import Foundation                               // Import `replacingOccurrences`
var s = "<...>"                                 // The compressed text
for(a,b)in zip("<...>","<...>".split{$0==";"}){ // For every character in the first string,
  s=s.replacingOccurrences(of:"\(a)",with:b)    // replace all occurences of it with its
}                                               // replacement in the second string
print(s)                                        // Print the resulting text
\$\endgroup\$
0
\$\begingroup\$

Python 3 (2066 2065 Bytes)

e=chr;l="Jr'er ab fgenatref gb ybir\nLbh xabj gur ehyrf naq fb qb V\nN shyy pbzzvgzrag'f jung V'z guvaxvat bs\nLbh jbhyqa'g trg guvf sebz nal bgure thl\nV whfg jnaan gryy lbh ubj V'z srryvat\nTbggn znxr lbh haqrefgnaq\n\nArire tbaan tvir lbh hc\nArire tbaan yrg lbh qbja\nArire tbaan eha nebhaq naq qrfreg lbh\nArire tbaan znxr lbh pel\nArire tbaan fnl tbbqolr\nArire tbaan gryy n yvr naq uheg lbh\n\nJr'ir xabja rnpu bgure sbe fb ybat\nLbhe urneg'f orra npuvat ohg\nLbh'er gbb ful gb fnl vg\nVafvqr jr obgu xabj jung'f orra tbvat ba\nJr xabj gur tnzr naq jr'er tbaan cynl vg\nNaq vs lbh nfx zr ubj V'z srryvat\nQba'g gryy zr lbh'er gbb oyvaq gb frr\n\nArire tbaan tvir lbh hc\nArire tbaan yrg lbh qbja\nArire tbaan eha nebhaq naq qrfreg lbh\nArire tbaan znxr lbh pel\nArire tbaan fnl tbbqolr\nArire tbaan gryy n yvr naq uheg lbh\n\nArire tbaan tvir lbh hc\nArire tbaan yrg lbh qbja\nArire tbaan eha nebhaq naq qrfreg lbh\nArire tbaan znxr lbh pel\nArire tbaan fnl tbbqolr\nArire tbaan gryy n yvr naq uheg lbh\n\n(Bbu, tvir lbh hc)\n(Bbu, tvir lbh hc)\n(Bbu)\nArire tbaan tvir, arire tbaan tvir\n(Tvir lbh hc)\n(Bbu)\nArire tbaan tvir, arire tbaan tvir\n(Tvir lbh hc)\n\nJr'ir xabj rnpu bgure sbe fb ybat\nLbhe urneg'f orra npuvat ohg\nLbh'er gbb ful gb fnl vg\nVafvqr jr obgu xabj jung'f orra tbvat ba\nJr xabj gur tnzr naq jr'er tbaan cynl vg\n\nV whfg jnaan gryy lbh ubj V'z srryvat\nTbggn znxr lbh haqrefgnaq\n\nArire tbaan tvir lbh hc\nArire tbaan yrg lbh qbja\nArire tbaan eha nebhaq naq qrfreg lbh\nArire tbaan znxr lbh pel\nArire tbaan fnl tbbqolr\nArire tbaan gryy n yvr naq uheg lbh\n\nArire tbaan tvir lbh hc\nArire tbaan yrg lbh qbja\nArire tbaan eha nebhaq naq qrfreg lbh\nArire tbaan znxr lbh pel\nArire tbaan fnl tbbqolr\nArire tbaan gryy n yvr naq uheg lbh\n\nArire tbaan tvir lbh hc\nArire tbaan yrg lbh qbja\nArire tbaan eha nebhaq naq qrfreg lbh\nArire tbaan znxr lbh pel\nArire tbaan fnl tbbqolr\nArire tbaan gryy n yvr naq uheg lbh";d={}
for c in (65,97):
    for i in range(26):d[e(c+i)]=e((i+13)%26+c)
print(''.join([d.get(c,c)for c in l]))
\$\endgroup\$
1 2
3

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

Not the answer you're looking for? Browse other questions tagged or ask your own question.