bpy: How do you find the corners of a camera frustum?
Pass the scene to view frame
Think you got there in the end, here is @ideasman42's script modified to add empties to 5 points of frustum, for each camera object in scene.
All the info re resolution will come with the passed as keyword scene, else it defaults to None.
&gt;&gt;&gt; C.scene.camera.data.view_frame(
view_frame()
Camera.view_frame(scene=None)
Return 4 points for the cameras frame (before object transformation)

Test script:
import bpy


def camera_as_planes(scene, obj):
    &quot;&quot;&quot;
    Return planes in world-space which represent the camera view bounds.
    &quot;&quot;&quot;
    from mathutils.geometry import normal
    print(obj.name)
    camera = obj.data
    # normalize to ignore camera scale
    matrix = obj.matrix_world.normalized()
    frame = [matrix @ v for v in camera.view_frame(scene=scene)]
    origin = matrix.to_translation()
    frame.append(origin)
    for p in frame:
        bpy.ops.object.empty_add(location=p)

# test call
scene = bpy.context.scene
cams = [o for o in scene.objects if o.type == 'CAMERA']
for cam in cams:
    camera_as_planes(scene, cam)