thewoksoflife.com
Open in
urlscan Pro
2606:4700:20::ac43:46d1
Public Scan
URL:
https://thewoksoflife.com/chinese-roast-duck/
Submission Tags: falconsandbox
Submission: On October 02 via api from US — Scanned from DE
Submission Tags: falconsandbox
Submission: On October 02 via api from US — Scanned from DE
Form analysis
9 forms found in the DOMGET https://thewoksoflife.com/
<form class="search-form" method="get" action="https://thewoksoflife.com/" role="search"><label class="search-form-label screen-reader-text" for="searchform-1">Search</label><input class="search-form-input" type="search" name="s" id="searchform-1"
placeholder="Search"><input class="search-form-submit" type="submit" value="Search">
<meta content="https://thewoksoflife.com/?s={s}">
<div class="search-submit-icon"><span class="icon-font icon-search"></span></div>
</form>
GET https://thewoksoflife.com/
<form class="search-form" method="get" action="https://thewoksoflife.com/" role="search"><label class="search-form-label screen-reader-text" for="searchform-2">Search</label><input class="search-form-input" type="search" name="s" id="searchform-2"
placeholder="Search"><input class="search-form-submit" type="submit" value="Search">
<meta content="https://thewoksoflife.com/?s={s}">
<div class="search-submit-icon"><span class="icon-font icon-search"></span></div>
</form>
POST https://thewoksoflife.com/wp-admin/admin-ajax.php?action=wpdAddSubscription
<form action="https://thewoksoflife.com/wp-admin/admin-ajax.php?action=wpdAddSubscription" method="post" id="wpdiscuz-subscribe-form">
<div class="wpdiscuz-subscribe-form-intro">Notify of </div>
<div class="wpdiscuz-subscribe-form-option" style="width:40%;">
<select class="wpdiscuz_select" name="wpdiscuzSubscriptionType">
<option value="post">new follow-up comments</option>
<option value="all_comment">new replies to my comments</option>
</select>
</div>
<div class="wpdiscuz-item wpdiscuz-subscribe-form-email">
<input class="email" type="email" name="wpdiscuzSubscriptionEmail" required="required" value="" placeholder="Email">
</div>
<div class="wpdiscuz-subscribe-form-button">
<input id="wpdiscuz_subscription_button" class="wpd-prim-button wpd_not_clicked" type="submit" value="›" name="wpdiscuz_subscription_button">
</div>
<input type="hidden" id="wpdiscuz_subscribe_form_nonce" name="wpdiscuz_subscribe_form_nonce" value="d23f455b0f"><input type="hidden" name="_wp_http_referer" value="/chinese-roast-duck/">
</form>
POST
<form method="post" enctype="multipart/form-data" data-uploading="false" class="wpd_comm_form wpd_main_comm_form">
<div class="wpd-field-comment">
<div class="wpdiscuz-item wc-field-textarea">
<div class="wpdiscuz-textarea-wrap wpd-txt">
<div class="wpd-avatar">
<img src="data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2056%2056'%3E%3C/svg%3E" width="56" height="56" alt="guest" class="avatar avatar-56 wp-user-avatar wp-user-avatar-56 photo avatar-default"
data-lazy-src="https://thewoksoflife.com/wp-content/uploads/2022/06/cropped-TWOL-favicon-3-60x60.png"><noscript><img src="https://thewoksoflife.com/wp-content/uploads/2022/06/cropped-TWOL-favicon-3-60x60.png" width="56" height="56"
alt="guest" class="avatar avatar-56 wp-user-avatar wp-user-avatar-56 photo avatar-default"></noscript>
</div>
<div class="wpd-textarea-wrap">
<div id="wpd-editor-char-counter-0_0" class="wpd-editor-char-counter"></div>
<label style="display: none;" for="wc-textarea-0_0">Label</label>
<textarea id="wc-textarea-0_0" placeholder="Join the discussion" aria-label="Join the discussion" name="wc_comment" class="wc_comment wpd-field"></textarea>
</div>
<div class="wpd-editor-buttons-right">
</div>
</div>
</div>
</div>
<div class="wpd-form-foot">
<div class="wpdiscuz-textarea-foot">
<div class="comment-form-wprm-rating">
<label for="wprm-comment-rating-1079840800">Rate this recipe:</label> <span class="wprm-rating-stars">
<fieldset class="wprm-comment-ratings-container" data-original-rating="0" data-current-rating="0">
<legend>Rate this recipe:</legend>
<input aria-label="Don't rate this recipe" name="wprm-comment-rating" value="0" type="radio" onclick="WPRecipeMaker.rating.onClick(this)" style="margin-left: -31px !important; width: 34px !important; height: 34px !important;"
checked="checked"><span aria-hidden="true" style="width: 170px !important; height: 34px !important;"><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" width="97.142857142857px"
height="16px" viewBox="0 0 145.71428571429 29.142857142857">
<defs>
<polygon class="wprm-star-empty" id="wprm-star-empty-0" fill="none" stroke="#222222" stroke-width="2" stroke-linecap="square" stroke-miterlimit="10" points="12,2.6 15,9 21.4,9 16.7,13.9 18.6,21.4 12,17.6 5.4,21.4 7.3,13.9 2.6,9 9,9"
stroke-linejoin="miter"></polygon>
</defs>
<use xlink:href="#wprm-star-empty-0" x="2.5714285714286" y="2.5714285714286"></use>
<use xlink:href="#wprm-star-empty-0" x="31.714285714286" y="2.5714285714286"></use>
<use xlink:href="#wprm-star-empty-0" x="60.857142857143" y="2.5714285714286"></use>
<use xlink:href="#wprm-star-empty-0" x="90" y="2.5714285714286"></use>
<use xlink:href="#wprm-star-empty-0" x="119.14285714286" y="2.5714285714286"></use>
</svg></span><br><input aria-label="Rate this recipe 1 out of 5 stars" name="wprm-comment-rating" value="1" type="radio" onclick="WPRecipeMaker.rating.onClick(this)" style="width: 34px !important; height: 34px !important;"><span
aria-hidden="true" style="width: 170px !important; height: 34px !important;"><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" width="97.142857142857px" height="16px"
viewBox="0 0 145.71428571429 29.142857142857">
<defs>
<polygon class="wprm-star-empty" id="wprm-star-empty-1" fill="none" stroke="#222222" stroke-width="2" stroke-linecap="square" stroke-miterlimit="10" points="12,2.6 15,9 21.4,9 16.7,13.9 18.6,21.4 12,17.6 5.4,21.4 7.3,13.9 2.6,9 9,9"
stroke-linejoin="miter"></polygon>
<path class="wprm-star-full" id="wprm-star-full-1" fill="#222222"
d="M12.712,1.942l2.969,6.015l6.638,0.965c0.651,0.095,0.911,0.895,0.44,1.354l-4.804,4.682l1.134,6.612c0.111,0.649-0.57,1.143-1.152,0.837L12,19.286l-5.938,3.122C5.48,22.714,4.799,22.219,4.91,21.57l1.134-6.612l-4.804-4.682c-0.471-0.459-0.211-1.26,0.44-1.354l6.638-0.965l2.969-6.015C11.579,1.352,12.421,1.352,12.712,1.942z">
</path>
</defs>
<use xlink:href="#wprm-star-full-1" x="2.5714285714286" y="2.5714285714286"></use>
<use xlink:href="#wprm-star-empty-1" x="31.714285714286" y="2.5714285714286"></use>
<use xlink:href="#wprm-star-empty-1" x="60.857142857143" y="2.5714285714286"></use>
<use xlink:href="#wprm-star-empty-1" x="90" y="2.5714285714286"></use>
<use xlink:href="#wprm-star-empty-1" x="119.14285714286" y="2.5714285714286"></use>
</svg></span><br><input aria-label="Rate this recipe 2 out of 5 stars" name="wprm-comment-rating" value="2" type="radio" onclick="WPRecipeMaker.rating.onClick(this)" style="width: 34px !important; height: 34px !important;"><span
aria-hidden="true" style="width: 170px !important; height: 34px !important;"><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" width="97.142857142857px" height="16px"
viewBox="0 0 145.71428571429 29.142857142857">
<defs>
<polygon class="wprm-star-empty" id="wprm-star-empty-2" fill="none" stroke="#222222" stroke-width="2" stroke-linecap="square" stroke-miterlimit="10" points="12,2.6 15,9 21.4,9 16.7,13.9 18.6,21.4 12,17.6 5.4,21.4 7.3,13.9 2.6,9 9,9"
stroke-linejoin="miter"></polygon>
<path class="wprm-star-full" id="wprm-star-full-2" fill="#222222"
d="M12.712,1.942l2.969,6.015l6.638,0.965c0.651,0.095,0.911,0.895,0.44,1.354l-4.804,4.682l1.134,6.612c0.111,0.649-0.57,1.143-1.152,0.837L12,19.286l-5.938,3.122C5.48,22.714,4.799,22.219,4.91,21.57l1.134-6.612l-4.804-4.682c-0.471-0.459-0.211-1.26,0.44-1.354l6.638-0.965l2.969-6.015C11.579,1.352,12.421,1.352,12.712,1.942z">
</path>
</defs>
<use xlink:href="#wprm-star-full-2" x="2.5714285714286" y="2.5714285714286"></use>
<use xlink:href="#wprm-star-full-2" x="31.714285714286" y="2.5714285714286"></use>
<use xlink:href="#wprm-star-empty-2" x="60.857142857143" y="2.5714285714286"></use>
<use xlink:href="#wprm-star-empty-2" x="90" y="2.5714285714286"></use>
<use xlink:href="#wprm-star-empty-2" x="119.14285714286" y="2.5714285714286"></use>
</svg></span><br><input aria-label="Rate this recipe 3 out of 5 stars" name="wprm-comment-rating" value="3" type="radio" onclick="WPRecipeMaker.rating.onClick(this)" style="width: 34px !important; height: 34px !important;"><span
aria-hidden="true" style="width: 170px !important; height: 34px !important;"><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" width="97.142857142857px" height="16px"
viewBox="0 0 145.71428571429 29.142857142857">
<defs>
<polygon class="wprm-star-empty" id="wprm-star-empty-3" fill="none" stroke="#222222" stroke-width="2" stroke-linecap="square" stroke-miterlimit="10" points="12,2.6 15,9 21.4,9 16.7,13.9 18.6,21.4 12,17.6 5.4,21.4 7.3,13.9 2.6,9 9,9"
stroke-linejoin="miter"></polygon>
<path class="wprm-star-full" id="wprm-star-full-3" fill="#222222"
d="M12.712,1.942l2.969,6.015l6.638,0.965c0.651,0.095,0.911,0.895,0.44,1.354l-4.804,4.682l1.134,6.612c0.111,0.649-0.57,1.143-1.152,0.837L12,19.286l-5.938,3.122C5.48,22.714,4.799,22.219,4.91,21.57l1.134-6.612l-4.804-4.682c-0.471-0.459-0.211-1.26,0.44-1.354l6.638-0.965l2.969-6.015C11.579,1.352,12.421,1.352,12.712,1.942z">
</path>
</defs>
<use xlink:href="#wprm-star-full-3" x="2.5714285714286" y="2.5714285714286"></use>
<use xlink:href="#wprm-star-full-3" x="31.714285714286" y="2.5714285714286"></use>
<use xlink:href="#wprm-star-full-3" x="60.857142857143" y="2.5714285714286"></use>
<use xlink:href="#wprm-star-empty-3" x="90" y="2.5714285714286"></use>
<use xlink:href="#wprm-star-empty-3" x="119.14285714286" y="2.5714285714286"></use>
</svg></span><br><input aria-label="Rate this recipe 4 out of 5 stars" name="wprm-comment-rating" value="4" type="radio" onclick="WPRecipeMaker.rating.onClick(this)" style="width: 34px !important; height: 34px !important;"><span
aria-hidden="true" style="width: 170px !important; height: 34px !important;"><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" width="97.142857142857px" height="16px"
viewBox="0 0 145.71428571429 29.142857142857">
<defs>
<polygon class="wprm-star-empty" id="wprm-star-empty-4" fill="none" stroke="#222222" stroke-width="2" stroke-linecap="square" stroke-miterlimit="10" points="12,2.6 15,9 21.4,9 16.7,13.9 18.6,21.4 12,17.6 5.4,21.4 7.3,13.9 2.6,9 9,9"
stroke-linejoin="miter"></polygon>
<path class="wprm-star-full" id="wprm-star-full-4" fill="#222222"
d="M12.712,1.942l2.969,6.015l6.638,0.965c0.651,0.095,0.911,0.895,0.44,1.354l-4.804,4.682l1.134,6.612c0.111,0.649-0.57,1.143-1.152,0.837L12,19.286l-5.938,3.122C5.48,22.714,4.799,22.219,4.91,21.57l1.134-6.612l-4.804-4.682c-0.471-0.459-0.211-1.26,0.44-1.354l6.638-0.965l2.969-6.015C11.579,1.352,12.421,1.352,12.712,1.942z">
</path>
</defs>
<use xlink:href="#wprm-star-full-4" x="2.5714285714286" y="2.5714285714286"></use>
<use xlink:href="#wprm-star-full-4" x="31.714285714286" y="2.5714285714286"></use>
<use xlink:href="#wprm-star-full-4" x="60.857142857143" y="2.5714285714286"></use>
<use xlink:href="#wprm-star-full-4" x="90" y="2.5714285714286"></use>
<use xlink:href="#wprm-star-empty-4" x="119.14285714286" y="2.5714285714286"></use>
</svg></span><br><input aria-label="Rate this recipe 5 out of 5 stars" name="wprm-comment-rating" value="5" type="radio" onclick="WPRecipeMaker.rating.onClick(this)" id="wprm-comment-rating-1079840800"
style="width: 34px !important; height: 34px !important;"><span aria-hidden="true" style="width: 170px !important; height: 34px !important;"><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px"
y="0px" width="97.142857142857px" height="16px" viewBox="0 0 145.71428571429 29.142857142857">
<defs>
<path class="wprm-star-full" id="wprm-star-full-5" fill="#222222"
d="M12.712,1.942l2.969,6.015l6.638,0.965c0.651,0.095,0.911,0.895,0.44,1.354l-4.804,4.682l1.134,6.612c0.111,0.649-0.57,1.143-1.152,0.837L12,19.286l-5.938,3.122C5.48,22.714,4.799,22.219,4.91,21.57l1.134-6.612l-4.804-4.682c-0.471-0.459-0.211-1.26,0.44-1.354l6.638-0.965l2.969-6.015C11.579,1.352,12.421,1.352,12.712,1.942z">
</path>
</defs>
<use xlink:href="#wprm-star-full-5" x="2.5714285714286" y="2.5714285714286"></use>
<use xlink:href="#wprm-star-full-5" x="31.714285714286" y="2.5714285714286"></use>
<use xlink:href="#wprm-star-full-5" x="60.857142857143" y="2.5714285714286"></use>
<use xlink:href="#wprm-star-full-5" x="90" y="2.5714285714286"></use>
<use xlink:href="#wprm-star-full-5" x="119.14285714286" y="2.5714285714286"></use>
</svg></span>
</fieldset>
</span>
</div>
<div class="wpdiscuz-button-actions"></div>
</div>
<div class="wpd-form-row">
<div class="wpd-form-col-left">
<div class="wpdiscuz-item wc_name-wrapper wpd-has-icon">
<div class="wpd-field-icon"><i class="fas fa-user"></i>
</div>
<input id="wc_name-0_0" value="" required="required" aria-required="true" class="wc_name wpd-field" type="text" name="wc_name" placeholder="Name*" maxlength="50" pattern=".{3,50}" title="">
<label for="wc_name-0_0" class="wpdlb">Name*</label>
</div>
<div class="wpdiscuz-item wc_email-wrapper wpd-has-icon">
<div class="wpd-field-icon"><i class="fas fa-at"></i>
</div>
<input id="wc_email-0_0" value="" required="required" aria-required="true" class="wc_email wpd-field" type="email" name="wc_email" placeholder="Email*">
<label for="wc_email-0_0" class="wpdlb">Email*</label>
</div>
</div>
<div class="wpd-form-col-right">
<div class="wc-field-submit">
<input id="wpd-field-submit-0_0" class="wc_comm_submit wpd_not_clicked wpd-prim-button" type="submit" name="submit" value="Post Comment" aria-label="Post Comment">
</div>
</div>
<div class="clearfix"></div>
</div>
</div>
<input type="hidden" class="wpdiscuz_unique_id" value="0_0" name="wpdiscuz_unique_id">
<p style="display: none;"><input type="hidden" id="akismet_comment_nonce" name="akismet_comment_nonce" value="c793987762"></p>
<p style="display: none !important;" class="akismet-fields-container" data-prefix="ak_"><label>Δ<textarea name="ak_hp_textarea" cols="45" rows="8" maxlength="100"></textarea></label><input type="hidden" id="ak_js_1" name="ak_js" value="104">
<script type="rocketlazyloadscript">document.getElementById( "ak_js_1" ).setAttribute( "value", ( new Date() ).getTime() );</script>
</p>
</form>
POST
<form method="post" enctype="multipart/form-data" data-uploading="false" class="wpd_comm_form wpd-secondary-form-wrapper">
<div class="wpd-field-comment">
<div class="wpdiscuz-item wc-field-textarea">
<div class="wpdiscuz-textarea-wrap wpd-txt">
<div class="wpd-avatar">
<img src="data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2056%2056'%3E%3C/svg%3E" width="56" height="56" alt="guest" class="avatar avatar-56 wp-user-avatar wp-user-avatar-56 photo avatar-default"
data-lazy-src="https://thewoksoflife.com/wp-content/uploads/2022/06/cropped-TWOL-favicon-3-60x60.png"><noscript><img src="https://thewoksoflife.com/wp-content/uploads/2022/06/cropped-TWOL-favicon-3-60x60.png" width="56" height="56"
alt="guest" class="avatar avatar-56 wp-user-avatar wp-user-avatar-56 photo avatar-default"></noscript>
</div>
<div class="wpd-textarea-wrap">
<div id="wpd-editor-char-counter-wpdiscuzuniqueid" class="wpd-editor-char-counter"></div>
<label style="display: none;" for="wc-textarea-wpdiscuzuniqueid">Label</label>
<textarea id="wc-textarea-wpdiscuzuniqueid" placeholder="Join the discussion" aria-label="Join the discussion" name="wc_comment" class="wc_comment wpd-field"></textarea>
</div>
<div class="wpd-editor-buttons-right">
</div>
</div>
</div>
</div>
<div class="wpd-form-foot">
<div class="wpdiscuz-textarea-foot">
<div class="comment-form-wprm-rating">
<label for="wprm-comment-rating-1486073266">Rate this recipe:</label> <span class="wprm-rating-stars">
<fieldset class="wprm-comment-ratings-container" data-original-rating="0" data-current-rating="0">
<legend>Rate this recipe:</legend>
<input aria-label="Don't rate this recipe" name="wprm-comment-rating" value="0" type="radio" onclick="WPRecipeMaker.rating.onClick(this)" style="margin-left: -31px !important; width: 34px !important; height: 34px !important;"
checked="checked"><span aria-hidden="true" style="width: 170px !important; height: 34px !important;"><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" width="97.142857142857px"
height="16px" viewBox="0 0 145.71428571429 29.142857142857">
<defs>
<polygon class="wprm-star-empty" id="wprm-star-empty-0" fill="none" stroke="#222222" stroke-width="2" stroke-linecap="square" stroke-miterlimit="10" points="12,2.6 15,9 21.4,9 16.7,13.9 18.6,21.4 12,17.6 5.4,21.4 7.3,13.9 2.6,9 9,9"
stroke-linejoin="miter"></polygon>
</defs>
<use xlink:href="#wprm-star-empty-0" x="2.5714285714286" y="2.5714285714286"></use>
<use xlink:href="#wprm-star-empty-0" x="31.714285714286" y="2.5714285714286"></use>
<use xlink:href="#wprm-star-empty-0" x="60.857142857143" y="2.5714285714286"></use>
<use xlink:href="#wprm-star-empty-0" x="90" y="2.5714285714286"></use>
<use xlink:href="#wprm-star-empty-0" x="119.14285714286" y="2.5714285714286"></use>
</svg></span><br><input aria-label="Rate this recipe 1 out of 5 stars" name="wprm-comment-rating" value="1" type="radio" onclick="WPRecipeMaker.rating.onClick(this)" style="width: 34px !important; height: 34px !important;"><span
aria-hidden="true" style="width: 170px !important; height: 34px !important;"><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" width="97.142857142857px" height="16px"
viewBox="0 0 145.71428571429 29.142857142857">
<defs>
<polygon class="wprm-star-empty" id="wprm-star-empty-1" fill="none" stroke="#222222" stroke-width="2" stroke-linecap="square" stroke-miterlimit="10" points="12,2.6 15,9 21.4,9 16.7,13.9 18.6,21.4 12,17.6 5.4,21.4 7.3,13.9 2.6,9 9,9"
stroke-linejoin="miter"></polygon>
<path class="wprm-star-full" id="wprm-star-full-1" fill="#222222"
d="M12.712,1.942l2.969,6.015l6.638,0.965c0.651,0.095,0.911,0.895,0.44,1.354l-4.804,4.682l1.134,6.612c0.111,0.649-0.57,1.143-1.152,0.837L12,19.286l-5.938,3.122C5.48,22.714,4.799,22.219,4.91,21.57l1.134-6.612l-4.804-4.682c-0.471-0.459-0.211-1.26,0.44-1.354l6.638-0.965l2.969-6.015C11.579,1.352,12.421,1.352,12.712,1.942z">
</path>
</defs>
<use xlink:href="#wprm-star-full-1" x="2.5714285714286" y="2.5714285714286"></use>
<use xlink:href="#wprm-star-empty-1" x="31.714285714286" y="2.5714285714286"></use>
<use xlink:href="#wprm-star-empty-1" x="60.857142857143" y="2.5714285714286"></use>
<use xlink:href="#wprm-star-empty-1" x="90" y="2.5714285714286"></use>
<use xlink:href="#wprm-star-empty-1" x="119.14285714286" y="2.5714285714286"></use>
</svg></span><br><input aria-label="Rate this recipe 2 out of 5 stars" name="wprm-comment-rating" value="2" type="radio" onclick="WPRecipeMaker.rating.onClick(this)" style="width: 34px !important; height: 34px !important;"><span
aria-hidden="true" style="width: 170px !important; height: 34px !important;"><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" width="97.142857142857px" height="16px"
viewBox="0 0 145.71428571429 29.142857142857">
<defs>
<polygon class="wprm-star-empty" id="wprm-star-empty-2" fill="none" stroke="#222222" stroke-width="2" stroke-linecap="square" stroke-miterlimit="10" points="12,2.6 15,9 21.4,9 16.7,13.9 18.6,21.4 12,17.6 5.4,21.4 7.3,13.9 2.6,9 9,9"
stroke-linejoin="miter"></polygon>
<path class="wprm-star-full" id="wprm-star-full-2" fill="#222222"
d="M12.712,1.942l2.969,6.015l6.638,0.965c0.651,0.095,0.911,0.895,0.44,1.354l-4.804,4.682l1.134,6.612c0.111,0.649-0.57,1.143-1.152,0.837L12,19.286l-5.938,3.122C5.48,22.714,4.799,22.219,4.91,21.57l1.134-6.612l-4.804-4.682c-0.471-0.459-0.211-1.26,0.44-1.354l6.638-0.965l2.969-6.015C11.579,1.352,12.421,1.352,12.712,1.942z">
</path>
</defs>
<use xlink:href="#wprm-star-full-2" x="2.5714285714286" y="2.5714285714286"></use>
<use xlink:href="#wprm-star-full-2" x="31.714285714286" y="2.5714285714286"></use>
<use xlink:href="#wprm-star-empty-2" x="60.857142857143" y="2.5714285714286"></use>
<use xlink:href="#wprm-star-empty-2" x="90" y="2.5714285714286"></use>
<use xlink:href="#wprm-star-empty-2" x="119.14285714286" y="2.5714285714286"></use>
</svg></span><br><input aria-label="Rate this recipe 3 out of 5 stars" name="wprm-comment-rating" value="3" type="radio" onclick="WPRecipeMaker.rating.onClick(this)" style="width: 34px !important; height: 34px !important;"><span
aria-hidden="true" style="width: 170px !important; height: 34px !important;"><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" width="97.142857142857px" height="16px"
viewBox="0 0 145.71428571429 29.142857142857">
<defs>
<polygon class="wprm-star-empty" id="wprm-star-empty-3" fill="none" stroke="#222222" stroke-width="2" stroke-linecap="square" stroke-miterlimit="10" points="12,2.6 15,9 21.4,9 16.7,13.9 18.6,21.4 12,17.6 5.4,21.4 7.3,13.9 2.6,9 9,9"
stroke-linejoin="miter"></polygon>
<path class="wprm-star-full" id="wprm-star-full-3" fill="#222222"
d="M12.712,1.942l2.969,6.015l6.638,0.965c0.651,0.095,0.911,0.895,0.44,1.354l-4.804,4.682l1.134,6.612c0.111,0.649-0.57,1.143-1.152,0.837L12,19.286l-5.938,3.122C5.48,22.714,4.799,22.219,4.91,21.57l1.134-6.612l-4.804-4.682c-0.471-0.459-0.211-1.26,0.44-1.354l6.638-0.965l2.969-6.015C11.579,1.352,12.421,1.352,12.712,1.942z">
</path>
</defs>
<use xlink:href="#wprm-star-full-3" x="2.5714285714286" y="2.5714285714286"></use>
<use xlink:href="#wprm-star-full-3" x="31.714285714286" y="2.5714285714286"></use>
<use xlink:href="#wprm-star-full-3" x="60.857142857143" y="2.5714285714286"></use>
<use xlink:href="#wprm-star-empty-3" x="90" y="2.5714285714286"></use>
<use xlink:href="#wprm-star-empty-3" x="119.14285714286" y="2.5714285714286"></use>
</svg></span><br><input aria-label="Rate this recipe 4 out of 5 stars" name="wprm-comment-rating" value="4" type="radio" onclick="WPRecipeMaker.rating.onClick(this)" style="width: 34px !important; height: 34px !important;"><span
aria-hidden="true" style="width: 170px !important; height: 34px !important;"><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" width="97.142857142857px" height="16px"
viewBox="0 0 145.71428571429 29.142857142857">
<defs>
<polygon class="wprm-star-empty" id="wprm-star-empty-4" fill="none" stroke="#222222" stroke-width="2" stroke-linecap="square" stroke-miterlimit="10" points="12,2.6 15,9 21.4,9 16.7,13.9 18.6,21.4 12,17.6 5.4,21.4 7.3,13.9 2.6,9 9,9"
stroke-linejoin="miter"></polygon>
<path class="wprm-star-full" id="wprm-star-full-4" fill="#222222"
d="M12.712,1.942l2.969,6.015l6.638,0.965c0.651,0.095,0.911,0.895,0.44,1.354l-4.804,4.682l1.134,6.612c0.111,0.649-0.57,1.143-1.152,0.837L12,19.286l-5.938,3.122C5.48,22.714,4.799,22.219,4.91,21.57l1.134-6.612l-4.804-4.682c-0.471-0.459-0.211-1.26,0.44-1.354l6.638-0.965l2.969-6.015C11.579,1.352,12.421,1.352,12.712,1.942z">
</path>
</defs>
<use xlink:href="#wprm-star-full-4" x="2.5714285714286" y="2.5714285714286"></use>
<use xlink:href="#wprm-star-full-4" x="31.714285714286" y="2.5714285714286"></use>
<use xlink:href="#wprm-star-full-4" x="60.857142857143" y="2.5714285714286"></use>
<use xlink:href="#wprm-star-full-4" x="90" y="2.5714285714286"></use>
<use xlink:href="#wprm-star-empty-4" x="119.14285714286" y="2.5714285714286"></use>
</svg></span><br><input aria-label="Rate this recipe 5 out of 5 stars" name="wprm-comment-rating" value="5" type="radio" onclick="WPRecipeMaker.rating.onClick(this)" id="wprm-comment-rating-1486073266"
style="width: 34px !important; height: 34px !important;"><span aria-hidden="true" style="width: 170px !important; height: 34px !important;"><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px"
y="0px" width="97.142857142857px" height="16px" viewBox="0 0 145.71428571429 29.142857142857">
<defs>
<path class="wprm-star-full" id="wprm-star-full-5" fill="#222222"
d="M12.712,1.942l2.969,6.015l6.638,0.965c0.651,0.095,0.911,0.895,0.44,1.354l-4.804,4.682l1.134,6.612c0.111,0.649-0.57,1.143-1.152,0.837L12,19.286l-5.938,3.122C5.48,22.714,4.799,22.219,4.91,21.57l1.134-6.612l-4.804-4.682c-0.471-0.459-0.211-1.26,0.44-1.354l6.638-0.965l2.969-6.015C11.579,1.352,12.421,1.352,12.712,1.942z">
</path>
</defs>
<use xlink:href="#wprm-star-full-5" x="2.5714285714286" y="2.5714285714286"></use>
<use xlink:href="#wprm-star-full-5" x="31.714285714286" y="2.5714285714286"></use>
<use xlink:href="#wprm-star-full-5" x="60.857142857143" y="2.5714285714286"></use>
<use xlink:href="#wprm-star-full-5" x="90" y="2.5714285714286"></use>
<use xlink:href="#wprm-star-full-5" x="119.14285714286" y="2.5714285714286"></use>
</svg></span>
</fieldset>
</span>
</div>
<div class="wpdiscuz-button-actions"></div>
</div>
<div class="wpd-form-row">
<div class="wpd-form-col-left">
<div class="wpdiscuz-item wc_name-wrapper wpd-has-icon">
<div class="wpd-field-icon"><i class="fas fa-user"></i>
</div>
<input id="wc_name-wpdiscuzuniqueid" value="" required="required" aria-required="true" class="wc_name wpd-field" type="text" name="wc_name" placeholder="Name*" maxlength="50" pattern=".{3,50}" title="">
<label for="wc_name-wpdiscuzuniqueid" class="wpdlb">Name*</label>
</div>
<div class="wpdiscuz-item wc_email-wrapper wpd-has-icon">
<div class="wpd-field-icon"><i class="fas fa-at"></i>
</div>
<input id="wc_email-wpdiscuzuniqueid" value="" required="required" aria-required="true" class="wc_email wpd-field" type="email" name="wc_email" placeholder="Email*">
<label for="wc_email-wpdiscuzuniqueid" class="wpdlb">Email*</label>
</div>
</div>
<div class="wpd-form-col-right">
<div class="wc-field-submit">
<input id="wpd-field-submit-wpdiscuzuniqueid" class="wc_comm_submit wpd_not_clicked wpd-prim-button" type="submit" name="submit" value="Post Comment" aria-label="Post Comment">
</div>
</div>
<div class="clearfix"></div>
</div>
</div>
<input type="hidden" class="wpdiscuz_unique_id" value="wpdiscuzuniqueid" name="wpdiscuz_unique_id">
<p style="display: none;"><input type="hidden" id="akismet_comment_nonce" name="akismet_comment_nonce" value="c793987762"></p>
<p style="display: none !important;" class="akismet-fields-container" data-prefix="ak_"><label>Δ<textarea name="ak_hp_textarea" cols="45" rows="8" maxlength="100"></textarea></label><input type="hidden" id="ak_js_2" name="ak_js" value="19">
<script type="rocketlazyloadscript">document.getElementById( "ak_js_2" ).setAttribute( "value", ( new Date() ).getTime() );</script>
</p>
</form>
POST
<form id="mc4wp-form-1" class="mc4wp-form mc4wp-form-12107 mc4wp-form-basic" method="post" data-id="12107" data-name="Default sign-up form">
<div class="mc4wp-form-fields">
<p><input type="text" name="FNAME" placeholder="First Name" required=""></p>
<p><input type="email" id="mc4wp_email" name="EMAIL" placeholder="Your email address" required=""></p>
<p><input type="submit" value="GET IT NOW"></p>
</div><label style="display: none !important;">Leave this field empty if you're human: <input type="text" name="_mc4wp_honeypot" value="" tabindex="-1" autocomplete="off"></label><input type="hidden" name="_mc4wp_timestamp"
value="1727747835"><input type="hidden" name="_mc4wp_form_id" value="12107"><input type="hidden" name="_mc4wp_form_element_id" value="mc4wp-form-1">
<div class="mc4wp-response"></div>
</form>
POST
<form id="mc4wp-form-2" class="mc4wp-form mc4wp-form-12107 mc4wp-form-basic" method="post" data-id="12107" data-name="Default sign-up form">
<div class="mc4wp-form-fields">
<p><input type="text" name="FNAME" placeholder="First Name" required=""></p>
<p><input type="email" id="mc4wp_email" name="EMAIL" placeholder="Your email address" required=""></p>
<p><input type="submit" value="GET IT NOW"></p>
</div><label style="display: none !important;">Leave this field empty if you're human: <input type="text" name="_mc4wp_honeypot" value="" tabindex="-1" autocomplete="off"></label><input type="hidden" name="_mc4wp_timestamp"
value="1727747835"><input type="hidden" name="_mc4wp_form_id" value="12107"><input type="hidden" name="_mc4wp_form_element_id" value="mc4wp-form-2">
<div class="mc4wp-response"></div>
</form>
GET https://thewoksoflife.com/
<form class="search-form" method="get" action="https://thewoksoflife.com/" role="search"><label class="search-form-label screen-reader-text" for="searchform-11">Search</label><input class="search-form-input" type="search" name="s" id="searchform-11"
placeholder="Search"><input class="search-form-submit" type="submit" value="Search">
<meta content="https://thewoksoflife.com/?s={s}">
<div class="search-submit-icon"><span class="icon-font icon-search"></span></div>
</form>
Name: mc-embedded-subscribe-form — POST https://thewoksoflife.us7.list-manage.com/subscribe/post?u=c0ff269a59d4081b24338d690&id=02de1ed282
<form action="https://thewoksoflife.us7.list-manage.com/subscribe/post?u=c0ff269a59d4081b24338d690&id=02de1ed282" method="post" id="mc-embedded-subscribe-form" name="mc-embedded-subscribe-form" class="validate" target="_blank">
<input type="text" value="" name="FNAME" placeholder="first name..." class="required" id="mce-FNAME" aria-labelledby="mce-FNAME" required="">
<input type="email" value="" name="EMAIL" placeholder="email address..." class="required email" id="mce-EMAIL" aria-labelledby="mce-EMAIL" required="">
<input type="submit" value="DOWNLOAD NOW" name="subscribe" id="mc-embedded-subscribe" class="button" <div="">
<div class="content__gdpr">
<fieldset class="mc_fieldset gdprRequired mc-field-group" name="interestgroup_field">
<label class="checkbox subfield checkbox-container" for="gdpr_2">I consent to receive emails from The Woks of Life. <input type="checkbox" id="gdpr_2" name="gdpr[2]" value="Y" class="av-checkbox required" required="">
<span class="checkmark"></span>
</label>
</fieldset>
</div>
</form>
Text Content
* Skip to primary navigation * Skip to privacy navigation * Skip to recipes navigation * Skip to main content * Skip to primary sidebar Facebook Instagram Pinterest YouTube Search The Woks of Life a culinary genealogy Main Menu Display Search Bar Surprise Me! Search * Recipes * Recipe Index * All Posts by Date * Our Cookbook: NOW AVAILABLE! * Videos * How-To * Cooking Methods * Cooking Tools * Wok Guide * Garden/Farm * Culture * Ingredients * Chinese Ingredients Glossary * Sauces, Wines, Vinegars & Oils * Spices & Seasonings * Dried, Cured & Pickled Ingredients * Noodles & Wrappers * Rice, Grains, Flours & Starches * Tofu, Bean Curd & Seitan * Vegetables & Fungi * Fresh Herbs & Aromatics * Life & Travel * Family Life * Travel With Us * About Us * Contact * Press * Work with Us * Send Us A Message * Facebook Instagram Pinterest YouTube JOIN OUR NEWSLETTER AND RECEIVE OUR FREE TOP 25 RECIPES BOOK! Subscribe Tap here to receive our FREE top 25 recipe book! Home Recipes Chicken & Poultry Chinese Roast Duck CHINESE ROAST DUCK by: Bill 25 Comments Jump to Recipe Posted:1/11/2024Updated:4/18/2024 “A Chinese Roast Duck.” Those roast ducks glistening suspended in Chinatown windows across the globe are iconic. They’re a culinary masterpiece—admittedly an intimidating one to pull off at home. As you can imagine, we’ve gotten so many questions over the years—“do we have a Cantonese roast duck recipe?” As of last fall, when our cookbook came out, the answer has been a resounding YES! Understandably, you’ve probably got lots and lots of questions, so we decided to post this recipe and do a deeper dive on the ins and outs of making a Chinese roast duck at home. We’ve got step-by-step photos—and a full VIDEO to walk you through it. CHINESE ROAST DUCK: DIFFERENT TYPES! Most people who come to us are looking for a “Chinese Roast Duck.” There are two kinds of Chinese roast duck, which differ a lot in their flavor, preparation, and what regions of China they come from: Chinese Roast Duck Finally, a recipe for those incredible Chinese roast ducks hanging in Chinatown windows! It's the best roast duck we've had—worth the effort! (Music: Some/Hara Noda/epidemicsound.com) More Videos 0 seconds of 3 minutes, 9 secondsVolume 0% Press shift question mark to access a list of keyboard shortcuts Keyboard ShortcutsEnabledDisabled Play/PauseSPACE Increase Volume↑ Decrease Volume↓ Seek Forward→ Seek Backward← Captions On/Offc Fullscreen/Exit Fullscreenf Mute/Unmutem Decrease Caption Size- Increase Caption Size+ or = Seek %0-9 Next Up Postpartum Pig Feet Papaya Soup 02:38 facebook twitter Email pinterest Linkhttps://thewoksoflife.com/chinese-roast-duck/ Copied Live 00:00 03:09 03:09 1. Peking duck: Peking duck doesn’t actually involve much seasoning, because the star of the show is the crispy skin. Served with mandarin pancakes or lotus leaf buns, hoisin sauce, scallions, cucumbers, and sometimes cantaloupe shreds, it’s an iconic dish, but not what we’re talking about today. This dish is a famous Beijing / northern Chinese delicacy. When Kaitlin was young, this was her often requested birthday meal that we would eat at our favorite restaurant in New Jersey (sadly, it changed hands a few times and is now closed). 2. Cantonese roast duck: This is what has brought us here today. It’s the Chinese roast duck that we eat most often, and a crown jewel in the genre of Hong Kong-style roast meats or siu mei, which includes other favorites like Cantonese crispy roast pork (siu yuk), Char siu, and Soy Sauce Chicken. It’s got tons more flavor than a Peking Duck, which instead relies on hoisin sauce as a condiment. There are layers and layers of flavor from a water/vinegar bath and two marinades for the cavity—one that is a seasoning paste and one that is a cooked, cooled sauce. There are flavors of five spice, scallion, garlic, ginger, bean sauce, oyster sauce, and fermented bean curd. In other words, one umami heavy hitter after another!!! BEST CHINESE ROAST DUCK RECIPE When I think about this recipe, I can’t help but do a little dance, because it’s SO tasty. I spent many, many hours (and ducks) perfecting this recipe, and it’s designed to be extremely tasty—i.e., plenty of salt, five spice, sand ginger powder (the secret ingredient!), ground bean sauce, and so many other yummy things. Watch our complete recipe tutorial over on our Youtube channel. And don’t forget to like and subscribe if you enjoy our cooking videos :) In fact, it’s THE best Cantonese roast duck we’ve ever eaten. It’s probably rivaled only by the excellent roast meat we had in Hong Kong at the legendary Joy Hing, a Cantonese siu mei spot that has been open since the later part of the Qing Dynasty. (Okay, so the Qing Dynasty ended in 1914, but that’s still crazy to think about, considering the Qing Dynasty began in 1636!!!!) My buddy Dennis and my cousin Ed each tested this recipe while I was developing it—so I know that it’s possible to do at home! Both told me that it was definitely worth the effort. GET MORE INFO FROM OUR COOKBOOK! This recipe was originally shared in our cookbook, The Woks of Life: Recipes to Know and Love from a Chinese American Family. We wanted to make the recipe available on the blog to encourage people to make it, but if you have the cookbook, there are also step-by-step photos for carving the duck. You can purchase it from your favorite bookseller! If you’re in the U.S., get your copy from any of the retailers below, or your local bookstore! Pearl River Mart Mala Market Strand Books Bookshop.org Books A Million IndieBound Barnes & Noble Amazon Target Want a signed copy? The following independent bookstores have limited numbers. Check to see if they still have one in stock, and get it shipped to you: Now Serving (LA) Book Larder (Seattle) Omnivore Books (SF) Kitchen Arts & Letters (NYC) Yu & Me Books (NYC) If you live outside the U.S., check Amazon in your home country, or try the links below, where we’ve seen the book available internationally. It’s also available as an eBook! Australian Retailers Blackwell’s (UK) Wordery Better World Books WHERE TO BUY A WHOLE DUCK Depending on where you find it, a whole Pekin duck (the most common American breed of duck) can be a bit pricey. In NYC Chinatown, a whole roast duck is about $45. So, is this a money saving recipe? Truthfully—not necessarily. Is this a recipe for the ultimate discerning cook who wants only the tastiest, most flavorsome results, and a little extracurricular kitchen challenge? Yes. That said, let’s move on to the finer points of buying a whole duck. The duck breed you’re looking for is the Pekin duck (easy enough to remember, given the fame of Peking duck). You’ll want the plumpest duck you can get your hands on, because sometimes we’ve gotten a bit unlucky with a skinny duck, and this recipe is simply too much work if you’re not going to get a lot of meat off the bird. It can sometimes be difficult to find a duck with the head intact, but rest assured, this recipe can be made just as easily with a duck that has no head. You just need to take a little extra care to make sure that the neck cavity is well-sealed, using the same method as you do with the tail cavity. WHERE WE BUY WHOLE DUCKS: * Your local Chinese grocery store (this can be hit or miss—check the frozen section too). * If you live in Chinatown, head to a local butcher or meat market like 47 Division St, one of the oldest butchers in NYC Chinatown! * SayWeee.com usually has whole ducks, but they sell out often. * Find a local farm. We’re lucky to live close to Goffle Poultry Farms, which produces Pekin ducks that are “whole,” but without the head. SPECIAL EQUIPMENT You’ll need an air pump—something electric like what you would use for an air mattress or inflatable cushion. Here are some options here OR here. You’ll also need skewers—long and extra sturdy bamboo skewers work well, but long, thin (not flat) metal skewers are better. (You can also substitute butcher’s twine and a trussing needle, but this takes a bit more skill. You’ll have to make sure you get a tight seal.) Optionally, you may also want some flat-edge tweezers to get rid of straggler pin feathers. SERVING & STORING CANTONESE ROAST DUCK This duck is so tasty, there are really no condiments needed. Just a big bowl of jasmine rice and a side of leafy green vegetables! This is ideal for serving 4 people if you are just cooking the duck, rice, and vegetables. It can stretch to up to 6 people, but that would be with 1-2 other dishes on the table, or a couple of smaller mouths to feed in the mix! We’d be astounded if this Cantonese roast duck hangs around your fridge for very long. But if you’re worried about not being able to eat it fast enough, we recommend freezing the cut pieces in an airtight container for 1-2 months. It won’t be ideal for eating over rice, but you can make an absolutely delicious soup or duck noodle soup with napa cabbage. For this reason, it’s best to prioritize eating the breast and legs, and saving bonier pieces for soup. CANTONESE ROAST DUCK RECIPE INSTRUCTIONS 1. TRIM AND CLEAN THE DUCK: Trim any excess fat from the cavity of the duck, leaving the skin intact. Remove the wing tips using a sharp cleaver or kitchen shears. If you have a whole duck, remove the feet at the joints between the feet and legs. Traditionally, Chinese roast ducks come with the head on, but you can remove the head if you prefer. Leave the entire neck—it’s good for roasting and leaving it on makes the inflation process easier in later steps. Use tweezers to remove any pinfeathers and remove any of the remaining internal organs. (There may still be parts of the lung in the upper cavity or the kidneys next to the cavity opening.) Then rinse the outside and cavity of the duck. Pat both the outside and cavity dry with a paper towel. (Disinfect your sink and work surfaces after this process.) 2. SEASON THE DUCK CAVITY: Combine the salt, five- spice powder, sugar, and sand ginger powder. Rub the cavity of the duck with the Shaoxing wine, followed by the dry spice mixture, until thoroughly coated. Refrigerate for 1 hour, uncovered. 3. MAKE THE COOKED MARINADE: In a medium bowl, combine the chee hou sauce, warm water, ground bean sauce, hoisin sauce, oyster sauce, and red fermented bean curd. Heat the oil in a saucepan over medium-low heat. Add the ginger and cook for 20 to 30 seconds, until fragrant. Stir in the garlic, scallion (both white and green parts), bay leaves, star anise, cinnamon stick, and orange peel. Cook for another 20 to 30 seconds. Add the sauce mixture you made earlier, and bring to a simmer over medium heat, stirring often. Once simmering, remove from the heat and let cool completely. 4. MARINATE AND SEAL THE CAVITY: After the duck has sat in the fridge for 1 hour, pour the cooled marinade into the cavity. Use your hands to coat the entire cavity with the marinade, taking care to keep the outside of the duck clean. Use a metal skewer to carefully seal the cavity and make it completely airtight. At the base of the tail, insert the skewer crosswise through the flaps of skin on either side of the cavity, poking the skewer through so that only about 1 inch of the sharp end is sticking out the other side. Turn the skewer over the skin back the way it came from, and insert the skewer again, just above where you initially inserted it. Repeat, weaving the skewer across the skin around the cavity until you’ve sealed it completely. Push any remaining length of the skewer into the cavity. (You can also perform these steps with butcher’s twine and a trussing needle; just make sure you get a tight seal.) 5. INFLATE THE DUCK: Now for the part that makes this a distinctively Chinese duck recipe! Insert a clean plastic tube attached to a small electric air pump between the folds of skin on the neck and close your hand around the tube and neck to create a seal. There should be a cut on the neck where the duck was slaughtered, where you can insert the tube. If your duck does not have the neck still attached, and the opening at the neck is very large, seal a portion of the opening using skewers or butcher’s twine before inserting the tube. Pump air in until you see the skin separating from the meat, all the way down to the drumsticks. As the air is pumped under the skin, it will look like an inflated balloon (albeit a lumpy one). Maintain a tight seal; it will deflate if the air is released. If the seal over the cavity (where you used the metal skewer earlier) opens, use your other hand (or ask someone to help!) to hold it closed so that the duck inflates. In stubborn areas where the skin is still sticking to the meat, use your fingers to pull the skin up off the meat (especially around the breast), and then reinflate. Thorough separation of the skin from the meat is key to even roasting. Flip the duck over and repeat this process. When the duck has been completely inflated on both sides, it’s time to tie it off. Grab someone to help you with this step to make it easier! With the pump still running, take a 6- to 8-inch length of kitchen string and tie a knot around the neck of the duck. Do your best to seal in as much air as possible. 6. APPLY THE WATER AND VINEGAR BATHS: Bring 4 cups of the water to a boil. Turn off the heat. Place a rack crosswise over the top of a deep roasting pan or wok. Place the duck on top of the rack. One ladle at a time, pour half the boiled water evenly over the duck. You’ll see the skin immediately shrink and tighten up as the hot water is applied. Carefully flip the duck over and repeat with the remaining boiling water. Set the duck aside on a sheet pan and discard the water. Next, make the vinegar bath, which will give the duck that signature dark color after roasting. In a medium saucepan over medium-high heat, heat the remaining 2 cups water, along with the red vinegar, maltose, and salt. Bring to a simmer, stirring to dissolve the salt, and remove from the heat. Place the duck back on the rack (over the roasting pan or wok) breast side down. Carefully ladle all the hot vinegar solution over the duck to coat it completely, just as you did with the boiling water. Make sure to cover all the exposed skin. Set the duck on the sheet pan once again and pour the used vinegar solution into a bowl. Then repeat this procedure with the duck back on the rack breast side up, pouring the reused hot vinegar liquid over this side of the duck. Any missed areas won’t have that signature Chinese roast duck color, so thoroughness is important! 7. AIR-DRY AND MARINATE OVERNIGHT: Leave the duck to air-dry for 30 minutes. Then place the duck breast side down on a clean, dry sheet pan or roasting pan, and refrigerate overnight, uncovered. 8. ROAST THE DUCK: 4 hours before serving, take the duck out of the fridge. Flip it breast side up, and let it sit for 2 hours at room temperature. (A cold duck won’t roast evenly.) Position a rack in the center of the oven, then preheat the oven to 350°F. Line a large roasting pan with heavy- duty foil, with a roasting rack on top (a V-shaped rack is ideal). Place the duck on the rack breast side down and use a paper towel to wipe away any marinade that may have leaked onto the skin (it will burn in the oven or result in uneven coloring). Add the 1⁄2 cup hot water to the bottom of the pan to prevent any drippings from smoking as the duck roasts. Roast breast side down for 25 minutes. Rotate the pan 180 degrees and continue to roast for another 25 minutes. At this point, the skin should be a uniform reddish, dark brown. Remove the duck from the oven and use clean kitchen towels or heat resistant cooking gloves to flip the duck over so it is breast side up. Roast for 20 minutes, then rotate the pan 180 degrees and roast for another 20 minutes, or until the duck is a uniform dark brown color. Remove the duck from the oven, tent it with a piece of aluminum foil, and let it rest for 20 minutes. 9. CARVE AND SERVE: When ready to serve, remove the skewer sealing the cavity. Carefully pour all the fat and juices into a fat separator. Then pour the juices through a fine-mesh strainer into a bowl to serve with the duck. (Reserve the rendered duck fat for other uses.) Using a sharp cleaver, cut the duck in half lengthwise from the top of the breast down through to one side of the backbone. Remove any aromatics in the cavity and discard. Next, take the half of the duck with the backbone still attached and make a lengthwise cut along the other side of the backbone to remove it. Cut off the wings and leg quarters. Chop the wings in half at the joint. Chop each drumstick into two pieces, and chop the thighs crosswise into three pieces. Then, chop the remaining duck into bite-size pieces, using your cleaver to drive through the soft bones. Serve with the reserved sauce on the side. Looking for more authentic recipes? Subscribe to our email list and be sure to follow us on Pinterest, Facebook, Instagram, and Youtube! 5 from 8 votes CHINESE ROAST DUCK Finally, a recipe for those incredible Chinese roast ducks hanging in Chinatown windows! It's the best roast duck we've ever had—well worth the effort! by: Bill serves: 6 Prep: 1 day day 4 hours hours Cook: 2 hours hours Total: 1 day day 6 hours hours Print * Rate INGREDIENTS * ▢ 1 Long Island (Pekin) duckling (about 5-6 pounds/2.5kg) * ▢ ½ cup hot water for the roasting pan FOR SEASONING THE DUCK CAVITY: * ▢ 1½ tablespoons fine sea salt * ▢ 2½ teaspoons five-spice powder * ▢ 2 teaspoons sugar * ▢ 1 teaspoon sand ginger powder or galangal powder * ▢ 2 tablespoons Shaoxing wine FOR THE COOKED MARINADE: * ▢ 2 tablespoons chee hou sauce * ▢ 2 tablespoons warm water * ▢ 1 tablespoon ground bean sauce * ▢ 1 tablespoon hoisin sauce * ▢ 1 tablespoon oyster sauce * ▢ 1 tablespoon red fermented bean curd (a mix of solids and liquid) * ▢ 2 teaspoons neutral oil (such as vegetable, canola, peanut, or avocado oil) * ▢ 2 slices fresh ginger (⅛-inch/3mm thick) * ▢ 2 medium garlic cloves (sliced) * ▢ 1 scallion (white and green parts cut into 2-inch/5cm pieces and smashed) * ▢ 2 dried bay leaves * ▢ 2 star anise (segments broken apart) * ▢ 1 Chinese cassia cinnamon stick (about 3 inches/7-8cm long, broken into small pieces) * ▢ 1 piece dried mandarin orange peel (a 2-inch/5cm piece, broken into a few small pieces) FOR THE WATER AND VINEGAR BATH: * ▢ 6 cups water * ▢ 3 tablespoons Chinese red vinegar (preferably Koon Chun brand) * ▢ 2 tablespoons maltose (or corn syrup) * ▢ 1½ teaspoons fine sea salt US Customary – Metric Cook ModePrevent screen from going dark INSTRUCTIONS TRIM AND CLEAN THE DUCK: * Trim any excess fat from the cavity of the duck, leaving the skin intact. Remove the wing tips using a sharp cleaver or kitchen shears. If you have a whole duck, remove the feet at the joints between the feet and legs. * Traditionally, Chinese roast ducks come with the head on, but you can remove the head if you prefer. Leave the entire neck—it’s good for roasting and leaving it on makes the inflation process easier in later steps. * Use tweezers to remove any pinfeathers and remove any of the remaining internal organs (there may still be parts of the lung in the upper cavity or the kidneys next to the cavity opening). Then rinse the outside and cavity of the duck, and pat both the outside and cavity dry with a paper towel. (Disinfect your sink and work surfaces after this process.) SEASON THE DUCK CAVITY: * Combine the salt, five- spice powder, sugar, and sand ginger powder. Rub the cavity of the duck with the Shaoxing wine, followed by the dry spice mixture, until thoroughly coated. Refrigerate for 1 hour, uncovered. MAKE THE COOKED MARINADE: * In a medium bowl, combine the chee hou sauce, warm water, ground bean sauce, hoisin sauce, oyster sauce, and red fermented bean curd. Heat the oil in a saucepan over medium-low heat. * Add the ginger and cook for 20 to 30 seconds, until fragrant. Stir in the garlic, scallion (both white and green parts), bay leaves, star anise, cinnamon stick, and orange peel. Cook for another 20 to 30 seconds. Add the sauce mixture you made earlier, and bring to a simmer over medium heat, stirring often. Once simmering, remove from the heat and let cool completely. MARINATE AND SEAL THE CAVITY: * After the duck has sat in the fridge for 1 hour, pour the cooled marinade into the cavity. Use your hands to coat the entire cavity with the marinade, taking care to keep the outside of the duck clean. * Use a metal skewer to carefully seal the cavity and make it completely airtight. At the base of the tail, insert the skewer crosswise through the flaps of skin on either side of the cavity, poking the skewer through so that only about 1 inch of the sharp end is sticking out the other side. * Turn the skewer over the skin back the way it came from, and insert the skewer again, just above where you initially inserted it. Repeat, weaving the skewer across the skin around the cavity until you’ve sealed it completely. Push any remaining length of the skewer into the cavity. * (You can also perform these steps with butcher’s twine and a trussing needle; just make sure you get a tight seal.) INFLATE THE DUCK: * Now for the part that makes this a distinctively Chinese duck recipe! Insert a clean plastic tube attached to a small electric air pump between the folds of skin on the neck and close your hand around the tube and neck to create a seal. There should be a cut on the neck where the duck was slaughtered, where you can insert the tube. If your duck does not have the neck still attached, and the opening at the neck is very large, seal a portion of the opening using skewers or butcher’s twine before inserting the tube. * Pump air in until you see the skin separating from the meat, all the way down to the drumsticks. As the air is pumped under the skin, it will look like an inflated balloon (albeit a lumpy one). Maintain a tight seal; it will deflate if the air is released. * If the seal over the cavity (where you used the metal skewer earlier) opens, use your other hand (or ask someone to help!) to hold it closed so that the duck inflates. In stubborn areas where the skin is still sticking to the meat, use your fingers to pull the skin up off the meat (especially around the breast), and then reinflate. Thorough separation of the skin from the meat is key to even roasting. Flip the duck over and repeat this process. * When the duck has been completely inflated on both sides, it’s time to tie it off. Grab someone to help you with this step to make it easier! With the pump still running, take a 6- to 8-inch/15-20cm length of kitchen string and tie a knot around the neck of the duck. Do your best to seal in as much air as possible. APPLY THE WATER AND VINEGAR BATHS: * Bring 4 cups of the water to a boil. Turn off the heat. Place a rack crosswise over the top of a deep roasting pan or wok and place the duck on top of the rack. One ladle at a time, pour half the boiled water evenly over the duck. You’ll see the skin immediately shrink and tighten up as the hot water is applied. Carefully flip the duck over and repeat with the remaining boiling water. Set the duck aside on a sheet pan and discard the water. * Next, make the vinegar bath, which will give the duck that signature dark color after roasting. In a medium saucepan over medium-high heat, heat the remaining 2 cups water, along with the red vinegar, maltose, and salt. Bring to a simmer, stirring to dissolve the salt, and remove from the heat. * Place the duck back on the rack (over the roasting pan or wok) breast side down, and carefully ladle all the hot vinegar solution over the duck to coat it completely, just as you did with the boiling water. Make sure to cover all the exposed skin. * Set the duck on the sheet pan once again and pour the used vinegar solution into a bowl. Then repeat this procedure with the duck back on the rack breast side up, pouring the reused hot vinegar liquid over this side of the duck. Any missed areas won’t have that signature Chinese roast duck color, so thoroughness is important! AIR-DRY AND MARINATE OVERNIGHT: * Leave the duck to air-dry for 30 minutes. Then place the duck breast side down on a clean, dry sheet pan or roasting pan, and refrigerate overnight, uncovered. ROAST THE DUCK: * 4 hours before serving, take the duck out of the fridge, flip it breast side up, and let it sit for 2 hours at room temperature. (A cold duck won’t roast evenly.) * Position a rack in the center of the oven, then preheat the oven to 350°F/175°C. Line a large roasting pan with heavy- duty foil, with a roasting rack on top (a V-shaped rack is ideal). Place the duck on the rack breast side down and use a paper towel to wipe away any marinade that may have leaked onto the skin (it will burn in the oven or result in uneven coloring). Add the 1/2 cup hot water to the bottom of the pan to prevent any drippings from smoking as the duck roasts. * Roast breast side down for 25 minutes. Rotate the pan 180 degrees and continue to roast for another 25 minutes. At this point, the skin should be a uniform reddish, dark brown. Remove the duck from the oven and use clean kitchen towels or heat resistant cooking gloves to flip the duck over so it is breast side up. * Roast for 20 minutes, then rotate the pan 180 degrees and roast for another 20 minutes, or until the duck is a uniform dark brown color. Remove the duck from the oven, tent it with a piece of aluminum foil, and let it rest for 20 minutes. CARVE AND SERVE: * When ready to serve, remove the skewer sealing the cavity and carefully pour all the fat and juices into a fat separator. Then pour the juices through a fine-mesh strainer into a bowl to serve with the duck. (Reserve the rendered duck fat for other uses.) * Using a sharp cleaver, cut the duck in half lengthwise from the top of the breast down through to one side of the backbone. Remove any aromatics in the cavity and discard. Next, take the half of the duck with the backbone still attached and make a lengthwise cut along the other side of the backbone to remove it. Cut off the wings and leg quarters. Chop the wings in half at the joint, chop each drumstick into two pieces, and chop the thighs crosswise into three pieces. Then, chop the remaining duck into bite-size pieces, using your cleaver to drive through the soft bones. Serve with the reserved sauce on the side. NUTRITION FACTS Calories: 455kcal (23%) Carbohydrates: 8g (3%) Protein: 50g (100%) Fat: 23g (35%) Saturated Fat: 6g (30%) Polyunsaturated Fat: 4g Monounsaturated Fat: 11g Trans Fat: 0.01g Cholesterol: 208mg (69%) Sodium: 2752mg (115%) Potassium: 54mg (2%) Fiber: 1g (4%) Sugar: 4g (4%) Vitamin A: 29IU (1%) Vitamin C: 4mg (5%) Calcium: 51mg (5%) Iron: 5mg (28%) NUTRITIONAL INFO DISCLAIMER TheWoksofLife.com is written and produced for informational purposes only. While we do our best to provide nutritional information as a general guideline to our readers, we are not certified nutritionists, and the values provided should be considered estimates. Factors such as brands purchased, natural variations in fresh ingredients, etc. will change the nutritional information in any recipe. Various online calculators also provide different results, depending on their sources. To obtain accurate nutritional information for a recipe, use your preferred nutrition calculator to determine nutritional information with the actual ingredients and quantities used. Did You Make This?Tag us on Instagram @thewoksoflife, subscribe to our email list, and be sure to follow us on social for more recipes! @thewoksoflife YOU MAY ALSO LIKE… * Peking Duck Grilled Cheese * Chinese Braised Duck Legs * Chinese Baijiu * Roast Pork with Chinese Vegetables * * * * ABOUT BILL Bill is the dad of The Woks of Life family. He grew up in upstate New York, working through high school and college in restaurants with his father, a chef. Rose from modest beginnings as a Burger King sandwich assembler to Holiday Inn busboy and line cook, to cooking at the family's Chinese restaurant, while also learning the finer points of Cantonese cooking from his immigrant parents. Specializes in all things traditional Cantonese and American Chinese takeout. Previous Post When is Chinese New Year 2024? Next Post Dumpling Filling Recipes Subscribe Notify of new follow-up comments new replies to my comments Label Rate this recipe: Rate this recipe: Name* Email* Δ Label Rate this recipe: Rate this recipe: Name* Email* Δ This site uses Akismet to reduce spam. Learn how your comment data is processed. 25 Comments Newest Oldest Most Voted Inline Feedbacks View all comments Load More Comments PRIMARY SIDEBAR WELCOME! We’re Sarah, Kaitlin, Judy, and Bill– a family of four cooks sharing our home-cooked and restaurant-style recipes. Our Story 25 Top Recipes TOP 25 RECIPES FREE EBOOK Subscribe for the latest updates on new recipes, and get started with our family's Top 25 Recipe eBook! Get It Now Cooking Tools Wok Guide Ingredients 101 Kitchen Wisdom Surprise Me! SIGN UP FOR EMAIL UPDATES & RECEIVE OUR TOP 25 RECIPES EBOOK! Leave this field empty if you're human: OUR FAMILY FAVORITES bill's pick BEEF AND BROCCOLI judy's pick ASIAN MILK BREAD sarah's pick CHICKEN ADOBO kaitlin's pick MAPO TOFU SIGN UP FOR EMAIL UPDATES & RECEIVE OUR TOP 25 RECIPES EBOOK! Leave this field empty if you're human: “I am proud to say that your genealogy has been the sole tutorial for my Asian-inspired culinary adventures for years; probably since you began. Time and again, my worldwide web pursuits for solid recipes that I know my family will eat has landed me back here.” BETH, COMMUNITY MEMBER SINCE 2013 Search Facebook Instagram Pinterest YouTube © 2013–2024 The Woks of Life * Privacy Policy * Disclaimer Site Credits Site design by Melissa Rose Design Logo & Illustrations by Sasa Khalisa Developed by Once Coupled Back To Top Opens in a new window Opens an external site Opens an external site in a new window Update Privacy Preferences A Raptive Partner Site GET UPDATES ON NEW RECIPES & OUR FREE RECIPE EBOOK! I consent to receive emails from The Woks of Life. wpDiscuz Insert