custom field value as shortcode parameter

I never worked with this plugin, just downloaded it from repository and found that they provide a filter for id value.

Add this filter callback function to your functions.php file.
[download id="auto"] – will use id from your post meta (hardcoded meta name)
[download id="123"] – will use id 123

function download_shortcode_custom_id($id, $atts = []){
     if(!is_numeric($id) && $id = 'auto' ):
        //change 'temp' post meta name with your own
        $post_meta = get_post_meta(get_queried_object_id(), 'temp', true);
        $post_meta ? $id = $post_meta : null;
     endif;
     return $id;
}

add_filter('dlm_shortcode_download_id', 'download_shortcode_custom_id', 10, 2);

As a second option you can set your post meta name as id value
[download id="temp"] – will use this post meta name to retrieve an id
[download id="123"] – will use id 123

function download_shortcode_custom_id($id, $atts = []){
     if( !is_numeric($id) ):
        $post_meta = get_post_meta(get_queried_object_id(), $id, true);
        $post_meta ? $id = $post_meta : null;
     endif;
     return $id;
}

add_filter('dlm_shortcode_download_id', 'download_shortcode_custom_id', 10, 2);