I want to share this to hopefully make somebody else's trip smoother than ours. First useful TRANSPORT INFO PARAPAT-BUKKITINGGI - our personal experience below.
*Do NOT use a transport agent called Hans in Parapat (he has an office at the bus station and operates from a bar next to the boat harbour to Samosir island). Read below to know why.
*Book your ticket in advance, bus is usually full. Locals recommended to use Traveloka app. Seat numbers go from 1 to 36. If you get something higher it does NOT exist and you will be stuck in the toilet/smoking room.
*Parapat bus station is called "terminal sosor saba parapat" on google maps.
*You can take a small local minibus to get there, just stop it in the street. Should be 5 or 10k.
*Bus passes at 17:00-18:00, depends on the day. It comes from Medang.
*Pack a blanket (it's cold) and be ready to regular stops for praying and fixing the engine.
Here is what happened to us:
We (2) needed to go from Parapat (lake Toba) to Bukkitinggi and since we couldn't find a way to do it ourselves, booked the tickets through an agent (namely, Hans). A part from the fact that this guy wanted us to pay for the tranfer to the bus stop that was originally included in the price, we payed full price (300k) and got seat numbers that did not exist (39-40). We were stuck for more than 15 hours on the smoking room, a separated small compartment at the back of the bus, with the engine noise, the toilet, smaller seats (not reclinable) and pretty dirty. For sure those seats were way cheaper than the others, meaning that Hans booked for us cheaper "seats" and kept more money for himself. Of course the guy never replied to our complaints during or after the ride.
Some locals recommended to take the tickets with Traveloka app. If you get real seats (seat numbers from 1 to 36) it is actually a standard bus, as comfortable as a regular bus in Europe can get, so the trip is not that bad. Feasible, just long.
Hope this helps!