It's really true. One might think that mutual intelligibility (ability for speakers of one to make themselves fully understood by speakers of the other) would be the standard for differentiating languages from dialects, but the distinction really ends up just being political. The spoken forms of Hindi and Urdu are entirely mutually intelligible but have two separate names.
Many varieties of Arabic and Chinese are mutually unintelligible but are called "dialects" of one Arabic or Chinese language, presumably to promote a unified Arab or Chinese identity. Speakers of Moroccan Arabic and Levantine Arabic or of Mandarin and Cantonese can't understand each other any better than speakers of Spanish and Italian can, but we don't call Spanish and Italian dialects of Modern Latin!
It gets even weirder when you have a dialect continuum, like with Polish-Russian-Ukrainian. Russian is somewhat mutually intelligible with both Polish and Ukrainian, but Polish and Ukrainian are not themselves mutually intelligible! So even if politics didn't play a role in the distinction between language and dialect, it would be hard if not impossible to come up with a universal distinction.