I don't know the video or specific algorithm you might be referring to, but the first approach I would try would be with a random walker algorithm, where the walkers are not allowed to move into existing tiles (or out of the bounds of the map). If the walker "traps" itself or reaches the exit, then start over, following the same previous path until there is a valid tile to branch into, and continue from there. You can add the constraint of not allowing 4 way rooms, but if you don't allow 3 way rooms either that would be difficult to always arrive at a specific end tile, and it may not be solvable at if there is a requirement for every tile to be filled in. Repeat until all possible tiles are filled or unreachable.
This should result in a map where all tiles are reachable from both the entrance and exit. By keeping track of the number of existing exits from each room, additional constraints can be added, like only one exit for the entrance and exit rooms.
So at each step, generate a list of valid tiles/exits to walk to, and pick one randomly, until there are no more valid exits. Then start over from the beginning until a valid exit is found to make a branch.
The blue x on the second iteration represents the constraint where the first room can only have 1 exit, so a branch cannot be made there. The red x on the third iteration is the constraint that a room cannot have 4 exits, so it can't branch there and continues until it finds a valid tile to branch into.