Most components generate sensors. The job of sensors.yaml is for you to combine other devices/entities/sensors into your own sensors. It’s not the place to define what other component’s sensors are supposed to be.
Like you noticed, you need to define it all in configuration.yaml.
The octoprint platform will generate your sensors from here. The only thing for octoprint you would put in the sensors.yaml would be templates to convert things should you desire.
For example, here is what I have to convert F to C for my sensors.
If you use packages, you can put the whole configuration for octoprint inside a package together with other stuff.
You could also add this to configuration.yaml octoprint: !include octoprint.yaml and create a file octoprint.yaml in the same directory as configuration.yaml and put the config in there.
The things you like to include (spotify, speedtest and octoprint) are not sensors and don’t belong in the sensor: part of the configuration. However, some of them may create automatically some sensors when you configure them.
I recommend reading up on packages from the link above and about splitting up configuration as well to get a better understanding.
If you don’t use packages, then you need to have an include for each category, so as you said one for octoprint, one for speedtest etc.
With packages you could include them all in one package or in multiple packages. E.g. I have a package security system, which holds all sensors, binary_sensors, input_booleans, integrations etc. that belong to security.