sh + coreutils, 289290
Albeit longer than my other submission, this one is straightforward and pretty much ungolfed, so i included it anyway.
grep -Ei "^na( na)*$"|wc -w|awk '{s="Song: ";a="\nArtist: ";p=s"Africa"a"Toto"}$1==8{p="Batmanp=s"Batman Theme"a"Neal Hefti\n"s"Na Na Hey Hey Kiss Him Goodbye"a"Steam"}$1>9{p=s"Katamari Damacy"a"Yuu Miyake"}$1>10{p=s"Hey Jude"a"The Beatles"}$1>11{p=s"Land Of 1000 Dances"a"Wilson Pickett"}{print p}'
#How it works: If the input is valid, print it as is. If not, print nothing.
grep -Ei "^na( na)*$"
Count the words.
wc -w
Simple look up table, Song:
and Artist:
are kept in variables.
awk '
{s="Song: ";a="\nArtist: ";p=s"Africa"a"Toto"}
$1==8{p="Batmanp=s"Batman Theme"a"Neal Hefti\n"s"Na Na Hey Hey Kiss Him Goodbye"a"Steam"}
$1>9{p=s"Katamari Damacy"a"Yuu Miyake"}
$1>10{p=s"Hey Jude"a"The Beatles"}
$1>11{p=s"Land Of 1000 Dances"a"Wilson Pickett"}
{print p}
'