The Liberty of Obedience

00:00
00:00

Paul says you have to work the gift of salvation into every nook and cranny of your life, and that you do that through spiritual disciplines. That’s how you change. 
But the modern mind finds some of these disciplines more appetizing than others. The idea of meditation is sort of cool. But obedience? That’s not very appetizing. And yet, this discipline tells us that you don’t get changed unless you’re willing to come in under the authority of God.
Let’s look at what Psalm 119 shows us about 1) what’s wrong with trying to be your own ultimate spiritual authority, and 2) how you can put yourself under God’s authority in a way that’s transforming and not stifling.
This sermon was preached by Dr. Timothy Keller at Redeemer Presbyterian Church on April 14, 2002. Series: Psalms: Disciples of Grace. Scripture: Psalm 119:32-49.
Today's podcast is brought to you by Gospel in Life, the site for all sermons, books, study guides and resources from Timothy Keller and Redeemer Presbyterian Church. If you've enjoyed listening to this podcast and would like to support the ongoing efforts of this ministry, you can do so by visiting https://gospelinlife.com/give and making a one-time or recurring donation.

Released on 4 Nov 2024

Share this page...
SettingsRequest history8.3.17PHP Version199msRequest Duration3MBMemory UsageGET podcasts/{podcast}/episodes/{episode}
status
200 OK
full_url
https://premier.amperative.site/podcasts/timothy-keller-sermons-podcast-by-gospel-in-life/episodes/t...
action_name
podcasts.episodes.show
controller_action
App\Http\Controllers\PodcastEpisodesController@show
Theme
Open Button Position
Hide Empty Tabs
Autoshow
Reset to defaults
status
200 OK
full_url
https://premier.amperative.site/podcasts/timothy-keller-sermons-podcast-by-gospel-in-life/episodes/t...
action_name
podcasts.episodes.show
controller_action
App\Http\Controllers\PodcastEpisodesController@show
uri
GET podcasts/{podcast}/episodes/{episode}
scope_bindings
true
controller
App\Http\Controllers\PodcastEpisodesController@show
file
app/Http/Controllers/PodcastEpisodesController.php:20-36
middleware
web
duration
198ms
peak_memory
6MB
response
text/html; charset=UTF-8
request_format
html
request_query
[]
request_request
[]
request_headers
0 of 0
array:15 [ "host" => array:1 [ 0 => "premier.amperative.site" ] "connection" => array:1 [ 0 => "keep-alive" ] "pragma" => array:1 [ 0 => "no-cache" ] "cache-control" => array:1 [ 0 => "no-cache" ] "sec-ch-ua" => array:1 [ 0 => ""Chromium";v="130", "HeadlessChrome";v="130", "Not?A_Brand";v="99"" ] "sec-ch-ua-mobile" => array:1 [ 0 => "?0" ] "sec-ch-ua-platform" => array:1 [ 0 => ""Windows"" ] "upgrade-insecure-requests" => array:1 [ 0 => "1" ] "user-agent" => array:1 [ 0 => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)" ] "accept" => array:1 [ 0 => "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7" ] "sec-fetch-site" => array:1 [ 0 => "none" ] "sec-fetch-mode" => array:1 [ 0 => "navigate" ] "sec-fetch-user" => array:1 [ 0 => "?1" ] "sec-fetch-dest" => array:1 [ 0 => "document" ] "accept-encoding" => array:1 [ 0 => "gzip, deflate, br, zstd" ] ]
request_cookies
[]
response_headers
0 of 0
array:3 [ "content-type" => array:1 [ 0 => "text/html; charset=UTF-8" ] "cache-control" => array:1 [ 0 => "no-cache, private" ] "date" => array:1 [ 0 => "Fri, 27 Jun 2025 07:29:52 GMT" ] ]
session_attributes
0 of 0
array:1 [ "_token" => "wHAQqugPZAichgZVrM1D4VTWmZFMf26faf2pnUsv" ]
    • Booting (56.07ms)time
    • Application (143ms)time
    • Routing (3.48ms)
    • 1 x Application (71.78%)
      143ms
      1 x Booting (28.21%)
      56.07ms
      1 x Routing (1.75%)
      3.48ms
      62 templates were rendered
      • 1x templates.podcast-episodes.showshow.blade.php#?blade
      • 1x livewire.section-podcast-playersection-podcast-player.blade.php#?blade
      • 1x components.sections.header-playerheader-player.blade.php#?blade
      • 1x components.sections.header-topheader-top.blade.php#?blade
      • 35x components.iconicon.blade.php#?blade
      • 1x components.player.tracktrack.blade.php#?blade
      • 1x components.modals.modal-confirmationmodal-confirmation.blade.php#?blade
      • 3x components.modals.generic-1generic-1.blade.php#?blade
      • 1x components.sharethissharethis.blade.php#?blade
      • 3x components.cards.episodeepisode.blade.php#?blade
      • 1x components.modals.model-show-signupmodel-show-signup.blade.php#?blade
      • 1x components.recommendations.index-bespokeindex-bespoke.blade.php#?blade
      • 1x components.promotional-blockspromotional-blocks.blade.php#?blade
      • 1x components.sections.footerfooter.blade.php#?blade
      • 2x components.form.inputinput.blade.php#?blade
      • 2x components.form.input-groupinput-group.blade.php#?blade
      • 1x components.layouts.mastermaster.blade.php#?blade
      • 1x components.faviconfavicon.blade.php#?blade
      • 1x components.social-metasocial-meta.blade.php#?blade
      • 1x components.modals.searchsearch.blade.php#?blade
      • 1x components.toast-controllertoast-controller.blade.php#?blade
      • 1x components.modals.model-show-thank-youmodel-show-thank-you.blade.php#?blade
      uri
      GET podcasts/{podcast}/episodes/{episode}
      middleware
      web
      scope_bindings
      true
      controller
      App\Http\Controllers\PodcastEpisodesController@show
      as
      podcasts.episodes.show
      file
      app/Http/Controllers/PodcastEpisodesController.php:20-36
      26 statements were executed (14 duplicates)Show only duplicates70.49ms
      • RedirectMiddleware.php#49premier1.09msselect * from `redirects` where `is_regex` = 1 and `redirects`.`deleted_at` is null
        Bindings
        • 0: 1
        Backtrace
        • app/Http/Middleware/RedirectMiddleware.php:49
        • vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php:180
        • vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php:116
        • vendor/laravel/framework/src/Illuminate/Routing/Router.php:797
        • vendor/laravel/framework/src/Illuminate/Routing/Router.php:776
      • RedirectMiddleware.php#79premier830μsselect * from `redirects` where `is_regex` = 0 and `match` = '/podcasts/timothy-keller-sermons-podcast-by-gospel-in-life/episodes/the-liberty-of-obedience' and `is_active` = 1 and `redirects`.`deleted_at` is null limit 1
        Bindings
        • 0: 0
        • 1: /podcasts/timothy-keller-sermons-podcast-by-gospel-in-life/episodes/the-liberty-of-obedience
        • 2: 1
        Backtrace
        • app/Http/Middleware/RedirectMiddleware.php:79
        • vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php:180
        • vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php:116
        • vendor/laravel/framework/src/Illuminate/Routing/Router.php:797
        • vendor/laravel/framework/src/Illuminate/Routing/Router.php:776
      • DatabaseSessionHandler.php#97premier890μsselect * from `sessions` where `id` = 'UfnhxL39MvQOa5U0HHejxsAhSx9SWVAAAe3px19L' limit 1
        Bindings
        • 0: UfnhxL39MvQOa5U0HHejxsAhSx9SWVAAAe3px19L
        Backtrace
        • vendor/laravel/framework/src/Illuminate/Session/DatabaseSessionHandler.php:97
        • vendor/laravel/framework/src/Illuminate/Session/Store.php:113
        • vendor/laravel/framework/src/Illuminate/Session/Store.php:101
        • vendor/laravel/framework/src/Illuminate/Session/Store.php:85
        • vendor/laravel/framework/src/Illuminate/Session/Middleware/StartSession.php:147
      • ContentFamilyTrait.php#42premier840μsselect * from `podcasts` where `slug` = 'timothy-keller-sermons-podcast-by-gospel-in-life' and `is_active` = 1 and `podcasts`.`deleted_at` is null limit 1
        Bindings
        • 0: timothy-keller-sermons-podcast-by-gospel-in-life
        • 1: 1
        Backtrace
        • app/Models/Traits/ContentFamilyTrait.php:42
        • vendor/laravel/framework/src/Illuminate/Routing/ImplicitRouteBinding.php:61
        • vendor/laravel/framework/src/Illuminate/Routing/Router.php:947
        • vendor/laravel/framework/src/Illuminate/Routing/Middleware/SubstituteBindings.php:41
        • vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php:180
      • ContentFamilyTrait.php#59premier40.08msselect * from `podcast_episodes` where `podcast_episodes`.`podcast_id` = 40 and `podcast_episodes`.`podcast_id` is not null and `slug` = 'the-liberty-of-obedience' and `podcast_episodes`.`deleted_at` is null order by `published_at` desc limit 1
        Bindings
        • 0: 40
        • 1: the-liberty-of-obedience
        Backtrace
        • app/Models/Traits/ContentFamilyTrait.php:59
        • vendor/laravel/framework/src/Illuminate/Routing/ImplicitRouteBinding.php:56
        • vendor/laravel/framework/src/Illuminate/Routing/Router.php:947
        • vendor/laravel/framework/src/Illuminate/Routing/Middleware/SubstituteBindings.php:41
        • vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php:180
      • PromotionalBlockCacheMiddleware.php#24premier890μsselect * from `promotional_blocks` where (`display_from` is null or `display_from` < '2025-06-27 08:29:52') and (`display_to` is null or `display_to` > '2025-06-27 08:29:52')
        Bindings
        • 0: 2025-06-27 08:29:52
        • 1: 2025-06-27 08:29:52
        Backtrace
        • app/Http/Middleware/PromotionalBlockCacheMiddleware.php:24
        • vendor/laravel/framework/src/Illuminate/Cache/Repository.php:397
        • vendor/laravel/framework/src/Illuminate/Cache/CacheManager.php:408
        • app/Http/Middleware/PromotionalBlockCacheMiddleware.php:23
        • vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php:180
      • PodcastEpisodesController.php#22premier360μsselect exists(select * from `brands` where `brands`.`id` is null and `brands`.`deleted_at` is null) as `exists`
        Backtrace
        • app/Http/Controllers/PodcastEpisodesController.php:22
        • vendor/laravel/framework/src/Illuminate/Routing/Controller.php:54
        • vendor/laravel/framework/src/Illuminate/Routing/ControllerDispatcher.php:43
        • vendor/laravel/framework/src/Illuminate/Routing/Route.php:259
        • vendor/laravel/framework/src/Illuminate/Routing/Route.php:205
      • PodcastEpisode.php#195premier760μsselect exists(select * from `musicables` where `musicables`.`musicable_type` = 'App\Models\PodcastEpisode' and `musicables`.`musicable_id` = 23098 and `musicables`.`musicable_id` is not null) as `exists`
        Bindings
        • 0: App\Models\PodcastEpisode
        • 1: 23098
        Backtrace
        • app/Models/PodcastEpisode.php:195
        • app/Http/Livewire/SectionPodcastPlayer.php:104
        • app/Http/Livewire/SectionPodcastPlayer.php:43
        • vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php:36
        • vendor/laravel/framework/src/Illuminate/Container/Util.php:41
      • PodcastEpisode.php#102premier700μsselect * from `podcasts` where `podcasts`.`id` = 40 and `podcasts`.`deleted_at` is null limit 1
        Bindings
        • 0: 40
        Backtrace
        • app/Models/PodcastEpisode.php:102
        • app/Models/PodcastEpisode.php:195
        • app/Http/Livewire/SectionPodcastPlayer.php:104
        • app/Http/Livewire/SectionPodcastPlayer.php:43
        • vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php:36
      • Podcast.php#215premier680μsselect exists(select * from `music_genres` inner join `musicables` on `music_genres`.`id` = `musicables`.`music_genre_id` where `musicables`.`musicable_id` = 40 and `musicables`.`musicable_type` = 'App\Models\Podcast' and `music_genres`.`deleted_at` is null) as `exists`
        Bindings
        • 0: 40
        • 1: App\Models\Podcast
        Backtrace
        • app/Models/Podcast.php:215
        • app/Models/PodcastEpisode.php:195
        • app/Http/Livewire/SectionPodcastPlayer.php:104
        • app/Http/Livewire/SectionPodcastPlayer.php:43
        • vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php:36
      • SectionPodcastPlayer.php#108premier520μsselect * from `listenable_progress_items` where `listenable_progress_items`.`listenable_type` = 'App\Models\PodcastEpisode' and `listenable_progress_items`.`listenable_id` = 23098 and `listenable_progress_items`.`listenable_id` is not null and `user_id` is null limit 1
        Bindings
        • 0: App\Models\PodcastEpisode
        • 1: 23098
        Backtrace
        • app/Http/Livewire/SectionPodcastPlayer.php:108
        • app/Http/Livewire/SectionPodcastPlayer.php:43
        • vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php:36
        • vendor/laravel/framework/src/Illuminate/Container/Util.php:41
        • vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php:93
      • SectionPodcastPlayer.php#168premier8.88msselect * from `podcast_episodes` where `podcast_id` = 40 and `published_at` < '2024-11-04 11:00:00' and `podcast_episodes`.`deleted_at` is null order by `published_at` desc limit 1
        Bindings
        • 0: 40
        • 1: 2024-11-04 11:00:00
        Backtrace
        • app/Http/Livewire/SectionPodcastPlayer.php:168
        • app/Http/Livewire/SectionPodcastPlayer.php:45
        • vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php:36
        • vendor/laravel/framework/src/Illuminate/Container/Util.php:41
        • vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php:93
      • SectionPodcastPlayer.php#178premier6.89msselect * from `podcast_episodes` where `podcast_id` = 40 and `published_at` > '2024-11-04 11:00:00' and `podcast_episodes`.`deleted_at` is null order by `published_at` asc limit 3
        Bindings
        • 0: 40
        • 1: 2024-11-04 11:00:00
        Backtrace
        • app/Http/Livewire/SectionPodcastPlayer.php:178
        • app/Http/Livewire/SectionPodcastPlayer.php:46
        • vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php:36
        • vendor/laravel/framework/src/Illuminate/Container/Util.php:41
        • vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php:93
      • PodcastEpisode.php#195premier560μsselect exists(select * from `musicables` where `musicables`.`musicable_type` = 'App\Models\PodcastEpisode' and `musicables`.`musicable_id` = 23098 and `musicables`.`musicable_id` is not null) as `exists`
        Bindings
        • 0: App\Models\PodcastEpisode
        • 1: 23098
        Backtrace
        • app/Models/PodcastEpisode.php:195
        • view::livewire.section-podcast-player:4
        • vendor/livewire/livewire/src/ComponentConcerns/RendersLivewireComponents.php:84
        • vendor/livewire/livewire/src/ComponentConcerns/RendersLivewireComponents.php:59
        • vendor/laravel/framework/src/Illuminate/View/View.php:195
      • Podcast.php#215premier650μsselect exists(select * from `music_genres` inner join `musicables` on `music_genres`.`id` = `musicables`.`music_genre_id` where `musicables`.`musicable_id` = 40 and `musicables`.`musicable_type` = 'App\Models\Podcast' and `music_genres`.`deleted_at` is null) as `exists`
        Bindings
        • 0: 40
        • 1: App\Models\Podcast
        Backtrace
        • app/Models/Podcast.php:215
        • app/Models/PodcastEpisode.php:195
        • view::livewire.section-podcast-player:4
        • vendor/livewire/livewire/src/ComponentConcerns/RendersLivewireComponents.php:84
        • vendor/livewire/livewire/src/ComponentConcerns/RendersLivewireComponents.php:59
      • Setting.php#20premier520μsselect * from `settings` where `setting_key` = 'web_donation_link' limit 1
        Bindings
        • 0: web_donation_link
        Backtrace
        • app/Models/Setting.php:20
        • app/Helpers/Settings.php:6
        • vendor/livewire/livewire/src/ComponentConcerns/RendersLivewireComponents.php:84
        • vendor/livewire/livewire/src/ComponentConcerns/RendersLivewireComponents.php:59
        • vendor/laravel/framework/src/Illuminate/View/View.php:195
      • Setting.php#20premier440μsselect * from `settings` where `setting_key` = 'web_donation_link' limit 1
        Bindings
        • 0: web_donation_link
        Backtrace
        • app/Models/Setting.php:20
        • app/Helpers/Settings.php:6
        • vendor/livewire/livewire/src/ComponentConcerns/RendersLivewireComponents.php:84
        • vendor/livewire/livewire/src/ComponentConcerns/RendersLivewireComponents.php:59
        • vendor/laravel/framework/src/Illuminate/View/View.php:195
      • Setting.php#20premier470μsselect * from `settings` where `setting_key` = 'web_donation_link' limit 1
        Bindings
        • 0: web_donation_link
        Backtrace
        • app/Models/Setting.php:20
        • app/Helpers/Settings.php:6
        • vendor/livewire/livewire/src/ComponentConcerns/RendersLivewireComponents.php:84
        • vendor/livewire/livewire/src/ComponentConcerns/RendersLivewireComponents.php:59
        • vendor/laravel/framework/src/Illuminate/View/View.php:195
      • PodcastEpisode.php#195premier590μsselect exists(select * from `musicables` where `musicables`.`musicable_type` = 'App\Models\PodcastEpisode' and `musicables`.`musicable_id` = 23098 and `musicables`.`musicable_id` is not null) as `exists`
        Bindings
        • 0: App\Models\PodcastEpisode
        • 1: 23098
        Backtrace
        • app/Models/PodcastEpisode.php:195
        • app/Http/Livewire/SectionPodcastPlayer.php:132
        • vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php:36
        • vendor/laravel/framework/src/Illuminate/Container/Util.php:41
        • vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php:93
      • Podcast.php#215premier610μsselect exists(select * from `music_genres` inner join `musicables` on `music_genres`.`id` = `musicables`.`music_genre_id` where `musicables`.`musicable_id` = 40 and `musicables`.`musicable_type` = 'App\Models\Podcast' and `music_genres`.`deleted_at` is null) as `exists`
        Bindings
        • 0: 40
        • 1: App\Models\Podcast
        Backtrace
        • app/Models/Podcast.php:215
        • app/Models/PodcastEpisode.php:195
        • app/Http/Livewire/SectionPodcastPlayer.php:132
        • vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php:36
        • vendor/laravel/framework/src/Illuminate/Container/Util.php:41
      • PodcastEpisode.php#102premier470μsselect * from `podcasts` where `podcasts`.`id` = 40 and `podcasts`.`deleted_at` is null limit 1
        Bindings
        • 0: 40
        Backtrace
        • app/Models/PodcastEpisode.php:102
        • app/Models/Traits/ThumbnailImage.php:26
        • app/Models/Traits/ThumbnailImage.php:66
        • view::livewire.section-podcast-player:168
        • vendor/livewire/livewire/src/ComponentConcerns/RendersLivewireComponents.php:84
      • PodcastEpisode.php#102premier540μsselect * from `podcasts` where `podcasts`.`id` = 40 and `podcasts`.`deleted_at` is null limit 1
        Bindings
        • 0: 40
        Backtrace
        • app/Models/PodcastEpisode.php:102
        • app/Models/Traits/ThumbnailImage.php:26
        • app/Models/Traits/ThumbnailImage.php:66
        • view::livewire.section-podcast-player:168
        • vendor/livewire/livewire/src/ComponentConcerns/RendersLivewireComponents.php:84
      • PodcastEpisode.php#102premier510μsselect * from `podcasts` where `podcasts`.`id` = 40 and `podcasts`.`deleted_at` is null limit 1
        Bindings
        • 0: 40
        Backtrace
        • app/Models/PodcastEpisode.php:102
        • app/Models/Traits/ThumbnailImage.php:26
        • app/Models/Traits/ThumbnailImage.php:66
        • view::livewire.section-podcast-player:168
        • vendor/livewire/livewire/src/ComponentConcerns/RendersLivewireComponents.php:84
      • Setting.php#20premier730μsselect * from `settings` where `setting_key` = 'web_login_modal_title' limit 1
        Bindings
        • 0: web_login_modal_title
        Backtrace
        • app/Models/Setting.php:20
        • app/Helpers/Settings.php:6
        • vendor/laravel/framework/src/Illuminate/Filesystem/Filesystem.php:110
        • vendor/laravel/framework/src/Illuminate/View/Engines/PhpEngine.php:58
        • vendor/livewire/livewire/src/ComponentConcerns/RendersLivewireComponents.php:69
      • Setting.php#20premier610μsselect * from `settings` where `setting_key` = 'web_login_modal_subtitle' limit 1
        Bindings
        • 0: web_login_modal_subtitle
        Backtrace
        • app/Models/Setting.php:20
        • app/Helpers/Settings.php:6
        • vendor/laravel/framework/src/Illuminate/Filesystem/Filesystem.php:110
        • vendor/laravel/framework/src/Illuminate/View/Engines/PhpEngine.php:58
        • vendor/livewire/livewire/src/ComponentConcerns/RendersLivewireComponents.php:69
      • Setting.php#20premier380μsselect * from `settings` where `setting_key` = 'web_donation_link' limit 1
        Bindings
        • 0: web_donation_link
        Backtrace
        • app/Models/Setting.php:20
        • app/Helpers/Settings.php:6
        • vendor/laravel/framework/src/Illuminate/Filesystem/Filesystem.php:110
        • vendor/laravel/framework/src/Illuminate/View/Engines/PhpEngine.php:58
        • vendor/livewire/livewire/src/ComponentConcerns/RendersLivewireComponents.php:69
      App\Models\Setting
      6Setting.php#?
      App\Models\Podcast
      5Podcast.php#?
      App\Models\PodcastEpisode
      5PodcastEpisode.php#?
      section-podcast-player #Rcce0pkvIsDkPl6nuwew
      array:5 [ "data" => array:10 [ "podcast" => App\Models\Podcast {#2051 #connection: "mysq...
          _token
          wHAQqugPZAichgZVrM1D4VTWmZFMf26faf2pnUsv
          ClearShow all
          Date ↕MethodURLData
          #12025-06-27 08:29:52GET/podcasts/timothy-keller-sermons-podcast-by-gospel-in-life/episodes/the-liberty-of-obedience6226161